diff --git a/Sources/Core/AWSClientRuntime/AWSClientConfiguration.swift b/Sources/Core/AWSClientRuntime/AWSClientConfiguration.swift index 49f75f68edf..b9f5db3ef88 100644 --- a/Sources/Core/AWSClientRuntime/AWSClientConfiguration.swift +++ b/Sources/Core/AWSClientRuntime/AWSClientConfiguration.swift @@ -6,7 +6,7 @@ import ClientRuntime public protocol AWSRuntimeConfiguration { - var credentialsProvider: CredentialsProvider { get set } + var credentialsProvider: CredentialsProviding { get set } var region: String? { get set } var signingRegion: String? {get set} var regionResolver: RegionResolver? {get set} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProvider+Factory.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProvider+Factory.swift deleted file mode 100644 index b044595caae..00000000000 --- a/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProvider+Factory.swift +++ /dev/null @@ -1,399 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import AwsCommonRuntimeKit -import ClientRuntime -import Foundation - -// MARK: - Helpers - -private extension CredentialsProvider { - static var bootstrap: ClientBootstrap { SDKDefaultIO.shared.clientBootstrap } - static var tlsContext: TLSContext { SDKDefaultIO.shared.tlsContext } -} - -// MARK: - Custom - -public extension CredentialsProvider { - /// Creates a credentials provider that uses the provided the object confirming to `CredentialsProviding` to source the credentials. - /// - /// - Parameter provider: An object confirming to `CredentialsProviding` to source the credentials. - /// - /// - Returns: A credentials provider that uses the provided the object confirming to `CredentialsProviding` to source the credentials. - static func custom(_ provider: CredentialsProviding) -> Self { - .makeWithCRTCredentialsProvider(identifier: "Custom") { _ in - try CRTCredentialsProvider( - provider: CredentialsProviderCRTAdapter(credentialsProvider: provider) - ) - } - } -} - -// MARK: - Static Credentials Provider - -public extension CredentialsProvider { - /// Creates a credentials provider for a fixed set of credentials - /// - /// - Parameter credentials: The credentials that this provider will provide. - /// - /// - Returns: A credentials provider for a fixed set of credentials - static func fromStatic(_ credentials: Credentials) throws -> CredentialsProvider { - .makeWithCRTCredentialsProvider(identifier: "Static") { _ in - try CRTCredentialsProvider(source: .static( - accessKey: credentials.accessKey, - secret: credentials.secret, - sessionToken: credentials.sessionToken - )) - } - } -} - -// MARK: - Environment Credentials Provider - -public extension CredentialsProvider { - /// Creates a credentials provider that sources credentials from the following environment variables: - /// - `AWS_ACCESS_KEY_ID` - /// - `AWS_SECRET_ACCESS_KEY` - /// - `AWS_SESSION_TOKEN` - static func fromEnv() throws -> Self { - .makeWithCRTCredentialsProvider(identifier: "Environment") { _ in - try CRTCredentialsProvider(source: .environment()) - } - } -} - -// MARK: - Profile Credentials Provider - -public extension CredentialsProvider { - /// Options to configure the profile credentials provider - struct ProfileOptions { - /// The profile name to use. If not provided it will be resolved internally via the `AWS_PROFILE` environment variable or defaulted to `default` if not configured. - public let profileName: String? - /// The path to the configuration file to use. If not provided it will be resolved internally via the `AWS_CONFIG_FILE` environment variable or defaulted to `~/.aws/config` if not configured. - public let configFilePath: String? - /// The path to the shared credentials file to use. If not provided it will be resolved internally via the `AWS_SHARED_CREDENTIALS_FILE` environment variable or defaulted `~/.aws/credentials` if not configured. - public let credentialsFilePath: String? - - /// Creates options to configure the profile credentials provider - /// - /// - Parameters: - /// - profileName: The profile name to use. If not provided it will be resolved internally via the `AWS_PROFILE` environment variable or defaulted to `default` if not configured. - /// - configFilePath: The path to the configuration file to use. If not provided it will be resolved internally via the `AWS_CONFIG_FILE` environment variable or defaulted to `~/.aws/config` if not configured. - /// - credentialsFilePath: The path to the shared credentials file to use. If not provided it will be resolved internally via the `AWS_SHARED_CREDENTIALS_FILE` environment variable or defaulted `~/.aws/credentials` if not configured. - public init( - profileName: String? = nil, - configFilePath: String? = nil, - credentialsFilePath: String? = nil - ) { - self.profileName = profileName - self.configFilePath = configFilePath - self.credentialsFilePath = credentialsFilePath - } - } - - /// A credentials provider that gets credentials from a profile in `~/.aws/config` or the shared credentials file `~/.aws/credentials`. - /// The locations of these files are configurable via environment variables or via `ProfileOptions`. - /// - /// This provider supports several credentials formats: - /// ### Credentials defined explicitly within the file - /// ```ini - /// [default] - /// aws_access_key_id = my-access-key - /// aws_secret_access_key = my-secret - /// ``` - /// - /// ### Assumed role credentials loaded from a credential source - /// ```ini - /// [default] - /// role_arn = arn:aws:iam:123456789:role/RoleA - /// credential_source = Environment - /// ``` - /// - /// ### Assumed role credentials from a source profile - /// ```ini - /// [default] - /// role_arn = arn:aws:iam:123456789:role/RoleA - /// source_profile = base - /// - /// [profile base] - /// aws_access_key_id = my-access-key - /// aws_secret_access_key = my-secret - /// ``` - /// - /// For more complex configurations see [Configuration and credential file settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) - /// - /// - Parameter options: Options that configure the credentials provider. - /// - /// - Returns: A credentials provider that gets credentials from a profile. - static func fromProfile(_ options: ProfileOptions = .init()) throws -> Self { - .makeWithCRTCredentialsProvider(identifier: "Profile") { dependencies in - let fileBasedConfiguration = try await dependencies.fileBasedConfigurationStore._fileBasedConfiguration( - configFilePath: options.configFilePath, - credentialsFilePath: options.credentialsFilePath - ) - - return try CRTCredentialsProvider(source: .profile( - bootstrap: bootstrap, - fileBasedConfiguration: fileBasedConfiguration, - profileFileNameOverride: options.profileName - )) - } - } -} - -// MARK: - STS Assume Role - -public extension CredentialsProvider { - /// Options to configure a STS assume role credential provider - struct STSOptions { - /// The underlying credentials provider to be used to sign the requests made to STS - public let credentialsProvider: CredentialsProvider - - /// The ARN of the target role to assume, e.g. `arn:aws:iam:123456789:role/example` - public let roleArn: String - - /// The name to associate with the session. This is used to uniquely identify a session when the same role is assumed by different principals - /// or for different reasons. In cross-account scenarios, the session name is visible to, and can be logged by the account that owns the role. - /// The role session name is also in the ARN of the assumed role principal. - public let sessionName: String - - /// The expiry duration of the STS credentials. Defaults to 15 minutes if not set. - public let durationSeconds: TimeInterval - - /// Creates options to connfigure a STS assume role credential provider - /// - /// - Parameters: - /// - credentialsProvider: The underlying credentials provider to be used to sign the requests made to STS - /// - roleArn: The ARN of the target role to assume, e.g. `arn:aws:iam:123456789:role/example` - /// - sessionName: The name to associate with the session. - /// - durationSeconds: The expiry duration of the STS credentials. Defaults to 15 minutes if not set. - public init( - credentialsProvider: CredentialsProvider, - roleArn: String, - sessionName: String, - durationSeconds: TimeInterval = .minutes(15) - ) { - self.credentialsProvider = credentialsProvider - self.roleArn = roleArn - self.sessionName = sessionName - self.durationSeconds = durationSeconds - } - } - - /// Creates a credential provider that uses another provider to assume a role from the AWS Security Token Service (STS). - /// - /// When asked to provide credentials, this provider will first invoke the inner credentials provider to get AWS credentials for STS. - /// Then, it will call STS to get assumed credentials for the desired role. - /// - /// For more information see [Assume role credential provider](https://docs.aws.amazon.com/sdkref/latest/guide/feature-assume-role-credentials.html) - /// - /// - Parameter options: Options that configure the credentials provider. - /// - /// - Returns: A credential provider that uses another provider to assume a role from the AWS Security Token Service (STS). - static func fromSTS(_ options: STSOptions) throws -> CredentialsProvider { - .makeWithCRTCredentialsProvider(identifier: "STS Assume Role") { configuration in - var provider = options.credentialsProvider - try await provider.configure(configuration) - - let adapter = CredentialsProviderCRTAdapter(credentialsProvider: provider) - - return try CRTCredentialsProvider(source: .sts( - bootstrap: bootstrap, - tlsContext: tlsContext, - credentialsProvider: .init(provider: adapter), - roleArn: options.roleArn, - sessionName: options.sessionName, - duration: options.durationSeconds - )) - } - } -} - -// MARK: - STS Web Identity - -public extension CredentialsProvider { - /// Options to configure a STS Web Identity credential provider - struct WebIdentityOptions { - /// The path to the configuration file to use. If not provided it will be resolved internally via the `AWS_CONFIG_FILE` environment variable or defaulted to `~/.aws/config` if not configured. - public let configFilePath: String? - /// The path to the shared credentials file to use. If not provided it will be resolved internally via the `AWS_SHARED_CREDENTIALS_FILE` environment variable or defaulted `~/.aws/credentials` if not configured. - public let credentialsFilePath: String? - - /// Creates options to configure a STS Web Identity credential provider - /// - /// - Parameters: - /// - configFilePath: The path to the configuration file to use. If not provided it will be resolved internally via the `AWS_CONFIG_FILE` environment variable or defaulted to `~/.aws/config` if not configured. - /// - credentialsFilePath: The path to the shared credentials file to use. If not provided it will be resolved internally via the `AWS_SHARED_CREDENTIALS_FILE` environment variable or defaulted `~/.aws/credentials` if not configured. - public init( - configFilePath: String? = nil, - credentialsFilePath: String? = nil - ) { - self.configFilePath = configFilePath - self.credentialsFilePath = credentialsFilePath - } - } - - /// Creates a credential provider that exchanges a Web Identity Token for credentials from the AWS Security Token Service (STS). - /// - /// It depends on the following values sourced from either environment variables or the configuration file" - /// - region: `AWS_DEFAULT_REGION` environment variable or `region` in a configuration file - /// - role arn: `AWS_ROLE_ARN` environment variable or `role_arn` in a configuration file - /// - role session name: `AWS_ROLE_SESSION_NAME` environment variable or `role_session_name` in a configuration file - /// - token file path: `AWS_WEB_IDENTITY_TOKEN_FILE` environment variable or `web_identity_token_file` in a configuration file - /// - /// For more information see [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) - /// - /// - Parameter options: Options that configure the credentials provider. - /// - /// - Returns: A credential provider that exchanges a Web Identity Token for credentials from the AWS Security Token Service (STS). - static func fromWebIdentity(_ options: WebIdentityOptions = .init()) throws -> CredentialsProvider { - .makeWithCRTCredentialsProvider(identifier: "STS Web Identity") { dependencies in - let fileBasedConfiguration = try await dependencies.fileBasedConfigurationStore._fileBasedConfiguration( - configFilePath: options.configFilePath, - credentialsFilePath: options.credentialsFilePath - ) - - return try CRTCredentialsProvider(source: .stsWebIdentity( - bootstrap: bootstrap, - tlsContext: tlsContext, - fileBasedConfiguration: fileBasedConfiguration, - shutdownCallback: nil - )) - } - } -} - -// MARK: - Container - -// TODO uncomment when CRT fixes https://github.com/awslabs/aws-crt-swift/issues/174 -// public extension CredentialsProvider { -// -// struct ContainerOptions { -// public let pathAndQuery: String -// public let host: String? -// public let authToken: String? -// -// public init( -// pathAndQuery: String, -// host: String? = nil, -// authToken: String? = nil -// ) { -// self.pathAndQuery = pathAndQuery -// self.host = host -// self.authToken = authToken -// } -// } -// -// /// Creates a credential provider that sources credentials from a local metadata service. -// /// It will attempt to load credentials from the specified HTTP endpoint through a GET request -// /// -// /// This provider is frequently used with an AWS-provided credentials service such as Amazon Container Service (ECS). -// /// However, it is possible to use environment variables to configure this provider to use any local metadata service. -// /// -// /// - AWS_CONTAINER_CREDENTIALS_FULL_URI -// /// - Contains the full HTTP URL endpoint for the SDK to use when making a request for credentials. This includes both the scheme and the host. -// /// -// /// - AWS_CONTAINER_CREDENTIALS_RELATIVE_URI -// /// - Specifies the relative HTTP URL endpoint for the SDK to use when making a request for credentials. -// /// -// /// - AWS_CONTAINER_AUTHORIZATION_TOKEN -// /// - If this variable is set, the SDK will set the Authorization header on the HTTP request with the environment variable's value. -// /// -// /// For more information on configuring a container credential provider see [Container credential provider](https://docs.aws.amazon.com/sdkref/latest/guide/feature-container-credentials.html) -// /// -// /// For more information on configuring ECS credentials see [IAM Roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) -// /// -// /// - Parameter options: Options that configure the credentials provider. -// /// -// /// - Returns: A credential provider that sources credentials from a local metadata service. -// static func fromContaienr(_ options: ContainerOptions) throws -> CredentialsProvider { -// .makeWithCRTCredentialsProvider { _ in -// try CRTCredentialsProvider(source: .ecs( -// bootstrap: bootstrap, -// authToken: options.authToken, -// pathAndQuery: options.pathAndQuery, -// host: options.host -// )) -// } -// } -// } - -// MARK: - Cached - -public extension CredentialsProvider { - /// Options to configure a cached credentials provider - struct CachedOptions { - /// The source credentials provider to get the credentials. - public let source: CredentialsProvider - - /// The number of seconds that must pass before new credentials will be fetched again. - /// If the credentials are queried during this time period, then the cached credentials are returned. - public let refreshTime: TimeInterval - - /// Creates options to configure a cached credentials provider - /// - /// - Parameters: - /// - source: The source credentials provider to get the credentials. - /// - refreshTime: The number of seconds that must pass before new credentials will be fetched again. - public init( - source: CredentialsProvider, - refreshTime: TimeInterval - ) { - self.source = source - self.refreshTime = refreshTime - } - } - - /// Creates a credentials provider that caches the credentials sourced from the provided credentials provider. - /// Credentials sourced through this provider will be cached within it until their expiration time. - /// When the cached credentials expire, new credentials will be fetched when next queried. - /// - /// - Parameter options: Options that configure the credentials provider. - /// - /// - Returns: A credentials provider that caches the credentials sourced from the provided credentials provider. - static func fromCached(_ options: CachedOptions) throws -> CredentialsProvider { - .makeWithCRTCredentialsProvider(identifier: "Cached") { configuration in - var provider = options.source - try await provider.configure(configuration) - - let adapter = CredentialsProviderCRTAdapter(credentialsProvider: provider) - - return try CRTCredentialsProvider(source: .cached( - source: .init(provider: adapter), - refreshTime: options.refreshTime - )) - } - } -} - -// MARK: - Default Chain - -public extension CredentialsProvider { - /// Creates a credential provider that uses the default AWS credential provider chain used by most AWS SDKs. - /// This is provider is by default when no credential provider is provided when creating a service client. - /// - /// The chain resolves in the following order: - /// 1. Environment - /// 2. Profile - /// 3. Web Identity Tokens (STS Web Identity) - /// 4. ECS (IAM roles for tasks) - /// 5. EC2 Instance Metadata (IMDSv2) - /// - /// The credentials retrieved from the chain are cached for 15 minutes. - /// - /// - Returns: A credential provider that uses the default AWS credential provider chain used by most AWS SDKs. - static func fromDefaultChain() throws -> CredentialsProvider { - .makeWithCRTCredentialsProvider(identifier: "Default Chain") { dependencies in - let fileBasedConfiguration = try await dependencies.fileBasedConfigurationStore._fileBasedConfiguration() - - return try CRTCredentialsProvider(source: .defaultChain( - bootstrap: bootstrap, - fileBasedConfiguration: fileBasedConfiguration - )) - } - } -} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProvider.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProvider.swift deleted file mode 100644 index 1469bf3dd47..00000000000 --- a/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProvider.swift +++ /dev/null @@ -1,117 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import ClientRuntime - -public typealias AWSCredentialsProvider = CredentialsProvider - -/// An object responsible for providing credentials for an AWS service -/// Direct initialization is not supported. -/// Create instances using its static functions. -public struct CredentialsProvider { - @_spi(Internal) - public struct Configuration { - public let fileBasedConfigurationStore: CRTFiledBasedConfigurationStore - - public init(fileBasedConfigurationStore: CRTFiledBasedConfigurationStore) { - self.fileBasedConfigurationStore = fileBasedConfigurationStore - } - } - - private var configuredProvider: CredentialsProviding? - private var configureProvider: ((Configuration) async throws -> CredentialsProviding)? - - /// A string that identifies the credential provider - /// This is useful for debugging and tests to verify type of credentials provider - let identifier: String - - init( - identifier: String, - _ configureProvider: @escaping (Configuration) async throws -> CredentialsProviding - ) { - self.identifier = identifier - self.configureProvider = configureProvider - } - - @_spi(Internal) - mutating public func configure(_ configuration: Configuration) async throws { - guard let configureProvider = self.configureProvider else { - throw ClientError.authError( - "The credential provider is already configured and can only be configured once." - ) - } - self.configuredProvider = try await configureProvider(configuration) - self.configureProvider = nil - } -} - -extension CredentialsProvider: CredentialsProviding { - /// Returns credentials for authenticating with an AWS service - /// This with throw if the credentials provider isn't owned by a service client configuration. - public func getCredentials() async throws -> Credentials { - guard let configuredProvider = self.configuredProvider else { - throw ClientError.authError(""" - Unsupported access. \ - Please use the credentials provider instance from the service client configuration for example: \ - `client.config.credentialsProvider` - """) - } - - return try await configuredProvider.getCredentials() - } -} - -@_spi(Internal) -public extension CredentialsProvider { - /// Resolves the credential provider to use for a service client - /// - /// This uses the credential provider passed or the default chain provider if `nil`. - /// It then configures the provider. - /// This provides configuration options from the service client such as a file based configuration store (which is used to get the default file based configuration) - /// - /// - Parameters: - /// - credentialsProvider: An explicit credential provider to use or `nil` - /// - configuration: The configuration used to configure the credentials provider - /// - /// - Returns: A new configured credentials provider ready to be used by a service client. - static func resolvedProvider( - _ credentialsProvider: CredentialsProvider?, - configuration: Configuration - ) async throws -> CredentialsProvider { - var resolvedCredentialsProvider = try credentialsProvider ?? .fromDefaultChain() - try await resolvedCredentialsProvider.configure(configuration) - return resolvedCredentialsProvider - } -} - -extension CredentialsProvider { - /// Creates a credentials provider that sources credentials from a CRT credentials provider - /// - /// This is used to create credential providers from the CRT providers and allows us to inject in internal dependencies that we want to keep hidden. - /// For example, this pattern allows us to inject in the filebased configuration store from the client instance, which is used to retireve and cache file base configurations. - /// - /// - Parameter makeCRTProvider: A function that creates a credentials provider conforming to `CRTCredentialsProvding` given CredentialsProvider.options - /// - /// - Returns: A credentials provider using the provider returned by `makeCRTProvider` to source the credentials. - static func makeWithCRTCredentialsProvider( - identifier: String, - _ makeCRTProvider: @escaping (Configuration) async throws -> CRTCredentialsProviding - ) -> Self { - self.init(identifier: identifier) { configuration in - let crtProvider = try await makeCRTProvider(configuration) - return CRTCredentialsProviderAdapter(crtProvider) - } - } -} - -extension CredentialsProvider { - /// Returns the underlying `CRTCredentialsProvider` if it has one. - /// This returns `nil` if there is no underlying provider or if the underlying provider is not a `CRTCredentialsProvider`. - func underlyingCRTCredentialsProvider() -> CRTCredentialsProvider? { - configuredProvider as? CRTCredentialsProvider - } -} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProviding.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProviding.swift deleted file mode 100644 index fc4dd44b95f..00000000000 --- a/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProviding.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import ClientRuntime - -/// A type that can provide credentials for authenticating with an AWS service -public protocol CredentialsProviding { - /// Returns credentials for authenticating with an AWS service - func getCredentials() async throws -> Credentials -} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/CachedCredentialsProvider.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/CachedCredentialsProvider.swift new file mode 100644 index 00000000000..7aaa5fa3e79 --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/CachedCredentialsProvider.swift @@ -0,0 +1,32 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit +import ClientRuntime +import Foundation + +/// A credentials provider that caches the credentials sourced from the provided credentials provider. +public struct CachedCredentialsProvider: CredentialsSourcedByCRT { + let crtCredentialsProvider: CRTCredentialsProvider + + /// Creates a credentials provider that caches the credentials sourced from the provided credentials provider. + /// Credentials sourced through this provider will be cached within it until their expiration time. + /// When the cached credentials expire, new credentials will be fetched when next queried. + /// + /// - Parameters: + /// - source: The source credentials provider to get the credentials. + /// - refreshTime: The number of seconds that must pass before new credentials will be fetched again. + public init( + source: CredentialsProviding, + refreshTime: TimeInterval + ) throws { + self.crtCredentialsProvider = try CRTCredentialsProvider(source: .cached( + source: try source.getCRTCredentialsProvider(), + refreshTime: refreshTime + )) + } +} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/CustomCredentialsProvider.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/CustomCredentialsProvider.swift new file mode 100644 index 00000000000..7e7569c59a8 --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/CustomCredentialsProvider.swift @@ -0,0 +1,26 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit +import ClientRuntime +import Foundation + +/// Creates a credentials provider that uses the provided the object confirming to `CredentialsProviding` to source the credentials. +struct CustomCredentialsProvider: CredentialsSourcedByCRT { + let crtCredentialsProvider: CRTCredentialsProvider + + /// Creates a credentials provider that uses the provided the object confirming to `CredentialsProviding` to source the credentials. + /// + /// - Parameter provider: An object confirming to `CredentialsProviding` to source the credentials. + /// + /// - Returns: A credentials provider that uses the provided the object confirming to `CredentialsProviding` to source the credentials. + init(_ provider: CredentialsProviding) throws { + self.crtCredentialsProvider = try CRTCredentialsProvider( + provider: CredentialsProvidingCRTAdapter(credentialsProvider: provider) + ) + } +} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/DefaultChainCredentialsProvider.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/DefaultChainCredentialsProvider.swift new file mode 100644 index 00000000000..2ac6d52c1cb --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/DefaultChainCredentialsProvider.swift @@ -0,0 +1,39 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit +import ClientRuntime +import Foundation + +/// A credential provider that uses the default AWS credential provider chain used by most AWS SDKs. +/// This is provider is by default when no credential provider is provided when creating a service client. +/// +/// The chain resolves in the following order: +/// 1. Environment +/// 2. Profile +/// 3. Web Identity Tokens (STS Web Identity) +/// 4. ECS (IAM roles for tasks) +/// 5. EC2 Instance Metadata (IMDSv2) +/// +/// The credentials retrieved from the chain are cached for 15 minutes. +public struct DefaultChainCredentialsProvider: CredentialsSourcedByCRT { + let crtCredentialsProvider: CRTCredentialsProvider + + /// Creates a credential provider that uses the default AWS credential provider chain used by most AWS SDKs. + public init() throws { + let fileBasedConfig = try CRTFileBasedConfiguration() + try self.init(fileBasedConfig: fileBasedConfig) + } + + @_spi(FileBasedConfig) + public init(fileBasedConfig: CRTFileBasedConfiguration) throws { + self.crtCredentialsProvider = try CRTCredentialsProvider(source: .defaultChain( + bootstrap: SDKDefaultIO.shared.clientBootstrap, + fileBasedConfiguration: fileBasedConfig + )) + } +} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/EnvironmentCredentialsProvider.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/EnvironmentCredentialsProvider.swift new file mode 100644 index 00000000000..1c618266570 --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/EnvironmentCredentialsProvider.swift @@ -0,0 +1,26 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit +import ClientRuntime +import Foundation + +/// A credentials provider that sources credentials from the following environment variables: +/// - `AWS_ACCESS_KEY_ID` +/// - `AWS_SECRET_ACCESS_KEY` +/// - `AWS_SESSION_TOKEN` +public struct EnvironmentCredentialsProvider: CredentialsSourcedByCRT { + let crtCredentialsProvider: CRTCredentialsProvider + + /// Creates a credentials provider that sources credentials from the following environment variables: + /// - `AWS_ACCESS_KEY_ID` + /// - `AWS_SECRET_ACCESS_KEY` + /// - `AWS_SESSION_TOKEN` + public init() throws { + self.crtCredentialsProvider = try CRTCredentialsProvider(source: .environment()) + } +} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/ProfileCredentialsProvider.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/ProfileCredentialsProvider.swift new file mode 100644 index 00000000000..22ade78a202 --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/ProfileCredentialsProvider.swift @@ -0,0 +1,66 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit +import ClientRuntime +import Foundation + +/// A credentials provider that gets credentials from a profile in `~/.aws/config` or the shared credentials file `~/.aws/credentials`. +/// The profile name and the locations of these files are configurable via the initializer and environment variables +/// +/// This provider supports several credentials formats: +/// ### Credentials defined explicitly within the file +/// ```ini +/// [default] +/// aws_access_key_id = my-access-key +/// aws_secret_access_key = my-secret +/// ``` +/// +/// ### Assumed role credentials loaded from a credential source +/// ```ini +/// [default] +/// role_arn = arn:aws:iam:123456789:role/RoleA +/// credential_source = Environment +/// ``` +/// +/// ### Assumed role credentials from a source profile +/// ```ini +/// [default] +/// role_arn = arn:aws:iam:123456789:role/RoleA +/// source_profile = base +/// +/// [profile base] +/// aws_access_key_id = my-access-key +/// aws_secret_access_key = my-secret +/// ``` +/// +/// For more complex configurations see [Configuration and credential file settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) +public struct ProfileCredentialsProvider: CredentialsSourcedByCRT { + let crtCredentialsProvider: CRTCredentialsProvider + + /// Creates a credentials provider that gets credentials from a profile in `~/.aws/config` or the shared credentials file `~/.aws/credentials`. + /// + /// - Parameters: + /// - profileName: The profile name to use. If not provided it will be resolved internally via the `AWS_PROFILE` environment variable or defaulted to `default` if not configured. + /// - configFilePath: The path to the configuration file to use. If not provided it will be resolved internally via the `AWS_CONFIG_FILE` environment variable or defaulted to `~/.aws/config` if not configured. + /// - credentialsFilePath: The path to the shared credentials file to use. If not provided it will be resolved internally via the `AWS_SHARED_CREDENTIALS_FILE` environment variable or defaulted `~/.aws/credentials` if not configured. + public init( + profileName: String? = nil, + configFilePath: String? = nil, + credentialsFilePath: String? = nil + ) throws { + let fileBasedConfig = try CRTFileBasedConfiguration( + configFilePath: configFilePath, + credentialsFilePath: credentialsFilePath + ) + self.crtCredentialsProvider = try CRTCredentialsProvider(source: .profile( + bootstrap: SDKDefaultIO.shared.clientBootstrap, + fileBasedConfiguration: fileBasedConfig, + profileFileNameOverride: profileName + )) + } +} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/STSAssumeRoleCredentialsProvider.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/STSAssumeRoleCredentialsProvider.swift new file mode 100644 index 00000000000..8debaaa300f --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/STSAssumeRoleCredentialsProvider.swift @@ -0,0 +1,43 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit +import ClientRuntime +import Foundation + +/// A credential provider that uses another provider to assume a role from the AWS Security Token Service (STS). +/// +/// When asked to provide credentials, this provider will first invoke the inner credentials provider to get AWS credentials for STS. +/// Then, it will call STS to get assumed credentials for the desired role. +/// +/// For more information see [Assume role credential provider](https://docs.aws.amazon.com/sdkref/latest/guide/feature-assume-role-credentials.html) +public struct STSAssumeRoleCredentialsProvider: CredentialsSourcedByCRT { + let crtCredentialsProvider: CRTCredentialsProvider + + /// Creates a credential provider that uses another provider to assume a role from the AWS Security Token Service (STS). + /// + /// - Parameters: + /// - credentialsProvider: The underlying credentials provider to be used to sign the requests made to STS + /// - roleArn: The ARN of the target role to assume, e.g. `arn:aws:iam:123456789:role/example` + /// - sessionName: The name to associate with the session. This is used to uniquely identify a session when the same role is assumed by different principals or for different reasons. In cross-account scenarios, the session name is visible to, and can be logged by the account that owns the role. The role session name is also in the ARN of the assumed role principal. + /// - durationSeconds: The expiry duration of the STS credentials. Defaults to 15 minutes if not set. + public init( + credentialsProvider: CredentialsProviding, + roleArn: String, + sessionName: String, + durationSeconds: TimeInterval = .minutes(15) + ) throws { + self.crtCredentialsProvider = try CRTCredentialsProvider(source: .sts( + bootstrap: SDKDefaultIO.shared.clientBootstrap, + tlsContext: SDKDefaultIO.shared.tlsContext, + credentialsProvider: try credentialsProvider.getCRTCredentialsProvider(), + roleArn: roleArn, + sessionName: sessionName, + duration: durationSeconds + )) + } +} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/STSWebIdentityCredentialsProvider.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/STSWebIdentityCredentialsProvider.swift new file mode 100644 index 00000000000..ef521eaa8b2 --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/STSWebIdentityCredentialsProvider.swift @@ -0,0 +1,44 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit +import ClientRuntime +import Foundation + +/// Creates a credential provider that exchanges a Web Identity Token for credentials from the AWS Security Token Service (STS). +/// +/// It depends on the following values sourced from either environment variables or the configuration file" +/// - region: `AWS_DEFAULT_REGION` environment variable or `region` in a configuration file +/// - role arn: `AWS_ROLE_ARN` environment variable or `role_arn` in a configuration file +/// - role session name: `AWS_ROLE_SESSION_NAME` environment variable or `role_session_name` in a configuration file +/// - token file path: `AWS_WEB_IDENTITY_TOKEN_FILE` environment variable or `web_identity_token_file` in a configuration file +/// +/// For more information see [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) +public struct STSWebIdentityCredentialsProvider: CredentialsSourcedByCRT { + let crtCredentialsProvider: CRTCredentialsProvider + + /// Creates a credential provider that exchanges a Web Identity Token for credentials from the AWS Security Token Service (STS). + /// + /// - Parameters: + /// - configFilePath: The path to the configuration file to use. If not provided it will be resolved internally via the `AWS_CONFIG_FILE` environment variable or defaulted to `~/.aws/config` if not configured. + /// - credentialsFilePath: The path to the shared credentials file to use. If not provided it will be resolved internally via the `AWS_SHARED_CREDENTIALS_FILE` environment variable or defaulted `~/.aws/credentials` if not configured. + public init( + configFilePath: String? = nil, + credentialsFilePath: String? = nil + ) throws { + let fileBasedConfig = try CRTFileBasedConfiguration( + configFilePath: configFilePath, + credentialsFilePath: credentialsFilePath + ) + self.crtCredentialsProvider = try CRTCredentialsProvider(source: .stsWebIdentity( + bootstrap: SDKDefaultIO.shared.clientBootstrap, + tlsContext: SDKDefaultIO.shared.tlsContext, + fileBasedConfiguration: fileBasedConfig, + shutdownCallback: nil + )) + } +} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/StaticCredentialsProvider.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/StaticCredentialsProvider.swift new file mode 100644 index 00000000000..dfbee212aa9 --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviders/StaticCredentialsProvider.swift @@ -0,0 +1,30 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit +import ClientRuntime +import Foundation + +/// A credentials provider that provides a fixed set of credentials +public struct StaticCredentialsProvider: CredentialsSourcedByCRT { + private let credentials: Credentials + let crtCredentialsProvider: CRTCredentialsProvider + + /// Creates a credentials provider for a fixed set of credentials + /// + /// - Parameter credentials: The credentials that this provider will provide. + /// + /// - Returns: A credentials provider for a fixed set of credentials + public init(_ credentials: Credentials) throws { + self.credentials = credentials + self.crtCredentialsProvider = try CRTCredentialsProvider(source: .static( + accessKey: credentials.accessKey, + secret: credentials.secret, + sessionToken: credentials.sessionToken + )) + } +} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProviding.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviding.swift new file mode 100644 index 00000000000..c749053a189 --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProviding.swift @@ -0,0 +1,23 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime + +/// A type that can provide credentials for authenticating with an AWS service +public protocol CredentialsProviding { + /// Returns credentials for authenticating with an AWS service + func getCredentials() async throws -> Credentials +} + +extension CredentialsProviding { + /// Returns the underlying `CRTCredentialsProvider`. + /// If `self` is not backed by a `CRTCredentialsProvider` then this wraps `self` in a `CustomCredentialsProvider` which will create a `CRTCredentialsProvider`. + func getCRTCredentialsProvider() throws -> CRTCredentialsProvider { + let providerSourcedByCRT = try self as? CredentialsSourcedByCRT ?? CustomCredentialsProvider(self) + return providerSourcedByCRT.crtCredentialsProvider + } +} diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProvider+CRT.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsProvidingCRTAdapter.swift similarity index 55% rename from Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProvider+CRT.swift rename to Sources/Core/AWSClientRuntime/Auth/CredentialsProvidingCRTAdapter.swift index f0aaa0978d6..e7011501b14 100644 --- a/Sources/Core/AWSClientRuntime/Auth/CredentialsProvider/CredentialsProvider+CRT.swift +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsProvidingCRTAdapter.swift @@ -10,22 +10,8 @@ import AwsCommonRuntimeKit typealias CRTCredentialsProviding = AwsCommonRuntimeKit.CredentialsProviding typealias CRTCredentialsProvider = AwsCommonRuntimeKit.CredentialsProvider -/// A credentials provider that adapts a CRT credentials provider to `CredentialsProviding` -struct CRTCredentialsProviderAdapter: CredentialsProviding { - let crtCredentialsProvider: CRTCredentialsProviding - - init(_ crtCredentialsProvider: CRTCredentialsProviding) { - self.crtCredentialsProvider = crtCredentialsProvider - } - - func getCredentials() async throws -> Credentials { - let crtCredentials = try await crtCredentialsProvider.getCredentials() - return try .init(crtCredentials: crtCredentials) - } -} - /// A credentials provider that adapts a credentials provider to `CRTCredentialsProvding` -struct CredentialsProviderCRTAdapter: CRTCredentialsProviding { +struct CredentialsProvidingCRTAdapter: CRTCredentialsProviding { let credentialsProvider: CredentialsProviding init(credentialsProvider: CredentialsProviding) { diff --git a/Sources/Core/AWSClientRuntime/Auth/CredentialsSourcedByCRT.swift b/Sources/Core/AWSClientRuntime/Auth/CredentialsSourcedByCRT.swift new file mode 100644 index 00000000000..fc56e635bb3 --- /dev/null +++ b/Sources/Core/AWSClientRuntime/Auth/CredentialsSourcedByCRT.swift @@ -0,0 +1,21 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit +import ClientRuntime +import Foundation + +protocol CredentialsSourcedByCRT: CredentialsProviding { + var crtCredentialsProvider: CRTCredentialsProvider { get } +} + +extension CredentialsSourcedByCRT { + public func getCredentials() async throws -> Credentials { + let crtCredentials = try await crtCredentialsProvider.getCredentials() + return try .init(crtCredentials: crtCredentials) + } +} diff --git a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/CRTFileBasedConfiguration.swift b/Sources/Core/AWSClientRuntime/FileBasedConfiguration/CRTFileBasedConfiguration.swift new file mode 100644 index 00000000000..1a23aa98325 --- /dev/null +++ b/Sources/Core/AWSClientRuntime/FileBasedConfiguration/CRTFileBasedConfiguration.swift @@ -0,0 +1,75 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import AwsCommonRuntimeKit + +@_spi(FileBasedConfig) public typealias CRTFileBasedConfiguration = AwsCommonRuntimeKit.FileBasedConfiguration +@_spi(FileBasedConfig) public typealias CRTFileBasedConfigurationSection = AwsCommonRuntimeKit.FileBasedConfiguration.Section +@_spi(FileBasedConfig) public typealias CRTFileBasedConfigurationSectionType = AwsCommonRuntimeKit.FileBasedConfiguration.SectionType +@_spi(FileBasedConfig) public typealias CRTFileBasedConfigurationProperty = AwsCommonRuntimeKit.FileBasedConfiguration.Section.Property + +extension CRTFileBasedConfigurationSectionType { + init(_ type: FileBasedConfigurationSectionType) { + switch type { + case .profile: + self = .profile + case .ssoSession: + self = .ssoSession + } + } +} + +@_spi(FileBasedConfig) +extension CRTFileBasedConfiguration: FileBasedConfiguration { + public static func make( + configFilePath: String? = nil, + credentialsFilePath: String? = nil + ) throws -> CRTFileBasedConfiguration { + let configFilePath = try configFilePath ?? CRTFileBasedConfiguration.resolveConfigPath(sourceType: .config) + let credentialsFilePath = try credentialsFilePath ?? CRTFileBasedConfiguration.resolveConfigPath(sourceType: .credentials) + return try CRTFileBasedConfiguration(configFilePath: configFilePath, credentialsFilePath: credentialsFilePath) + } + + public static func makeAsync( + configFilePath: String? = nil, + credentialsFilePath: String? = nil + ) async throws -> CRTFileBasedConfiguration { + let task = Task { + try CRTFileBasedConfiguration.make( + configFilePath: configFilePath, + credentialsFilePath: credentialsFilePath + ) + } + return try await task.value + } + + public func section( + for name: String, + type: FileBasedConfigurationSectionType + ) -> FileBasedConfigurationPropertyProviding? { + self.getSection(name: name, sectionType: .init(type)) + } +} + +@_spi(FileBasedConfig) +extension CRTFileBasedConfigurationSection: FileBasedConfigurationSection { + public func property(for name: FileBasedConfigurationKey) -> FileBasedConfigurationProperty? { + guard let property = getProperty(name: name.rawValue) else { return nil } + if property.subPropertyCount > 0 { + return .subsection(property) + } else { + return .string(property.value) + } + } +} + +@_spi(FileBasedConfig) +extension CRTFileBasedConfigurationProperty: FileBasedConfigurationSubsection { + public func value(for name: FileBasedConfigurationKey) -> String? { + self.getSubProperty(name: name.rawValue) + } +} diff --git a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfiguration+CRT.swift b/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfiguration+CRT.swift deleted file mode 100644 index e47b0553507..00000000000 --- a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfiguration+CRT.swift +++ /dev/null @@ -1,55 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import AwsCommonRuntimeKit - -@_spi(Internal) public typealias CRTFileBasedConfiguration = AwsCommonRuntimeKit.FileBasedConfiguration -@_spi(Internal) public typealias CRTFileBasedConfigurationSection = AwsCommonRuntimeKit.FileBasedConfiguration.Section -@_spi(Internal) public typealias CRTFileBasedConfigurationSectionType - = AwsCommonRuntimeKit.FileBasedConfiguration.SectionType -@_spi(Internal) public typealias CRTFileBasedConfigurationProperty - = AwsCommonRuntimeKit.FileBasedConfiguration.Section.Property - -extension CRTFileBasedConfigurationSectionType { - init(_ type: FileBasedConfigurationSectionType) { - switch type { - case .profile: - self = .profile - case .ssoSession: - self = .ssoSession - } - } -} - -@_spi(Internal) -extension CRTFileBasedConfiguration: FileBasedConfiguration { - public func section( - for name: String, - type: FileBasedConfigurationSectionType - ) -> FileBasedConfigurationPropertyProviding? { - self.getSection(name: name, sectionType: .init(type)) - } -} - -@_spi(Internal) -extension CRTFileBasedConfigurationSection: FileBasedConfigurationSection { - public func property(for name: FileBasedConfigurationKey) -> FileBasedConfigurationProperty? { - guard let property = getProperty(name: name.rawValue) else { return nil } - if property.subPropertyCount > 0 { - return .subsection(property) - } else { - return .string(property.value) - } - } -} - -@_spi(Internal) -extension CRTFileBasedConfigurationProperty: FileBasedConfigurationSubsection { - public func value(for name: FileBasedConfigurationKey) -> String? { - self.getSubProperty(name: name.rawValue) - } -} diff --git a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfiguration.swift b/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfiguration.swift index fb7be71eace..affc9de7946 100644 --- a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfiguration.swift +++ b/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfiguration.swift @@ -5,57 +5,57 @@ // SPDX-License-Identifier: Apache-2.0 // -@_spi(Internal) public typealias FileBasedConfiguration = FileBasedConfigurationSectionProviding -@_spi(Internal) public typealias FileBasedConfigurationSection = FileBasedConfigurationPropertyProviding -@_spi(Internal) public typealias FileBasedConfigurationSubsection = FileBasedConfigurationValueProviding +@_spi(FileBasedConfig) public typealias FileBasedConfiguration = FileBasedConfigurationSectionProviding +@_spi(FileBasedConfig) public typealias FileBasedConfigurationSection = FileBasedConfigurationPropertyProviding +@_spi(FileBasedConfig) public typealias FileBasedConfigurationSubsection = FileBasedConfigurationValueProviding -@_spi(Internal) +@_spi(FileBasedConfig) public enum FileBasedConfigurationSectionType { case profile case ssoSession } -@_spi(Internal) +@_spi(FileBasedConfig) public struct FileBasedConfigurationSources: Hashable { let configPath: String let credentialPath: String } -@_spi(Internal) -public protocol FileBasedConfigurationProviding { - func fileBasedConfiguration(configFilePath: String?, credentialsFilePath: String?) async throws - -> FileBasedConfigurationSectionProviding? -} +@_spi(FileBasedConfig) +public typealias FileBasedConfigurationProviding = ( + _ configFilePath: String?, + _ credentialsFilePath: String? +) async throws -> FileBasedConfigurationSectionProviding? -@_spi(Internal) +@_spi(FileBasedConfig) public enum FileBasedConfigurationProperty { case string(String) case subsection(FileBasedConfigurationSubsection) } -@_spi(Internal) +@_spi(FileBasedConfig) public protocol FileBasedConfigurationSectionProviding { func section(for name: String, type: FileBasedConfigurationSectionType) -> FileBasedConfigurationSection? } -@_spi(Internal) +@_spi(FileBasedConfig) public extension FileBasedConfigurationSectionProviding { func section(for name: String) -> FileBasedConfigurationSection? { section(for: name, type: .profile) } } -@_spi(Internal) +@_spi(FileBasedConfig) public protocol FileBasedConfigurationPropertyProviding { func property(for name: FileBasedConfigurationKey) -> FileBasedConfigurationProperty? } -@_spi(Internal) +@_spi(FileBasedConfig) public protocol FileBasedConfigurationValueProviding { func value(for name: FileBasedConfigurationKey) -> String? } -@_spi(Internal) +@_spi(FileBasedConfig) public extension FileBasedConfigurationPropertyProviding { func string(for name: FileBasedConfigurationKey) -> String? { guard let value = property(for: name) else { return nil } diff --git a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfigurationKeys.swift b/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfigurationKeys.swift index 837a2d8919b..9f051212fe2 100644 --- a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfigurationKeys.swift +++ b/Sources/Core/AWSClientRuntime/FileBasedConfiguration/FileBasedConfigurationKeys.swift @@ -5,7 +5,7 @@ // SPDX-License-Identifier: Apache-2.0 // -@_spi(Internal) +@_spi(FileBasedConfig) public struct FileBasedConfigurationKey: RawRepresentable, ExpressibleByStringLiteral { public typealias RawValue = String public typealias StringLiteralType = String @@ -20,7 +20,7 @@ public struct FileBasedConfigurationKey: RawRepresentable, ExpressibleByStringLi } } -@_spi(Internal) +@_spi(FileBasedConfig) public extension FileBasedConfigurationKey { static var region: Self { "region" } } diff --git a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/Store/FileBasedConfiguratioStore+CRT.swift b/Sources/Core/AWSClientRuntime/FileBasedConfiguration/Store/FileBasedConfiguratioStore+CRT.swift deleted file mode 100644 index 7b48ac3e519..00000000000 --- a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/Store/FileBasedConfiguratioStore+CRT.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import AwsCommonRuntimeKit - -@_spi(Internal) -public typealias CRTFiledBasedConfigurationStore = FileBasedConfigurationStore - -@_spi(Internal) -public extension CRTFiledBasedConfigurationStore { - init() throws { - let cache = CRTFiledBasedConfigurationStore.Cache.init { sources in - let task = Task { - try CRTFileBasedConfiguration( - configFilePath: sources.configPath, - credentialsFilePath: sources.credentialPath - ) - } - - return try await task.value - } - - self.init( - cache: cache, - defaultConfigFilePath: try CRTFileBasedConfiguration.resolveConfigPath(sourceType: .config), - defaultCredentialsFilePath: try CRTFileBasedConfiguration.resolveConfigPath(sourceType: .credentials) - ) - } -} diff --git a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/Store/FileBasedConfigurationStore.swift b/Sources/Core/AWSClientRuntime/FileBasedConfiguration/Store/FileBasedConfigurationStore.swift deleted file mode 100644 index 9053a7f998a..00000000000 --- a/Sources/Core/AWSClientRuntime/FileBasedConfiguration/Store/FileBasedConfigurationStore.swift +++ /dev/null @@ -1,47 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import Foundation - -@_spi(Internal) -public struct FileBasedConfigurationStore { - typealias Cache = FunctionCache - private let cache: Cache - - public let defaultConfigFilePath: String - - public let defaultCredentialsFilePath: String - - init( - cache: Cache, - defaultConfigFilePath: String, - defaultCredentialsFilePath: String - ) { - self.cache = cache - self.defaultConfigFilePath = defaultConfigFilePath - self.defaultCredentialsFilePath = defaultCredentialsFilePath - } - - public func _fileBasedConfiguration( - configFilePath: String? = nil, - credentialsFilePath: String? = nil - ) async throws -> T { - let sources = FileBasedConfigurationSources( - configPath: configFilePath ?? defaultConfigFilePath, - credentialPath: credentialsFilePath ?? defaultCredentialsFilePath - ) - return try await cache.output(for: sources) - } -} - -@_spi(Internal) -extension FileBasedConfigurationStore: FileBasedConfigurationProviding { - public func fileBasedConfiguration(configFilePath: String?, credentialsFilePath: String?) async throws - -> FileBasedConfiguration? { - try await _fileBasedConfiguration(configFilePath: configFilePath, credentialsFilePath: credentialsFilePath) - } -} diff --git a/Sources/Core/AWSClientRuntime/Regions/DefaultRegionResolver.swift b/Sources/Core/AWSClientRuntime/Regions/DefaultRegionResolver.swift index 700828e69f1..9e98e391097 100644 --- a/Sources/Core/AWSClientRuntime/Regions/DefaultRegionResolver.swift +++ b/Sources/Core/AWSClientRuntime/Regions/DefaultRegionResolver.swift @@ -6,12 +6,12 @@ // import ClientRuntime -@_spi(Internal) +@_spi(FileBasedConfig) public struct DefaultRegionResolver: RegionResolver { public let providers: [RegionProvider] let logger: SwiftLogger - public init(fileBasedConfigurationProvider: FileBasedConfigurationProviding) throws { + public init(fileBasedConfigurationProvider: @escaping FileBasedConfigurationProviding) throws { self.providers = [ BundleRegionProvider(), EnvironmentRegionProvider(), @@ -41,3 +41,15 @@ public struct DefaultRegionResolver: RegionResolver { return nil } } + +public struct StaticRegionResolver: RegionResolver { + public let providers: [RegionProvider] = [] + private let region: String + public init(_ region: String) { + self.region = region + } + + public func resolveRegion() async -> String? { + return region + } +} diff --git a/Sources/Core/AWSClientRuntime/Regions/ProfileRegionProvider.swift b/Sources/Core/AWSClientRuntime/Regions/ProfileRegionProvider.swift index c4c88817c7e..538bf98e01b 100644 --- a/Sources/Core/AWSClientRuntime/Regions/ProfileRegionProvider.swift +++ b/Sources/Core/AWSClientRuntime/Regions/ProfileRegionProvider.swift @@ -14,7 +14,7 @@ struct ProfileRegionProvider: RegionProvider { let credentialsFilePath: String? init( - fileBasedConfigurationProvider: FileBasedConfigurationProviding, + fileBasedConfigurationProvider: @escaping FileBasedConfigurationProviding, profileName: String? = nil, configFilePath: String? = nil, credentialsFilePath: String? = nil @@ -27,9 +27,9 @@ struct ProfileRegionProvider: RegionProvider { } func resolveRegion() async throws -> String? { - guard let configuration = try await fileBasedConfigurationProvider.fileBasedConfiguration( - configFilePath: configFilePath, - credentialsFilePath: credentialsFilePath + guard let configuration = try await fileBasedConfigurationProvider( + configFilePath, + credentialsFilePath ) else { logger.debug("Failed to resolve region from configuration file. No configuration file found.") return nil diff --git a/Sources/Core/AWSClientRuntime/Signing/AWSSigningConfig.swift b/Sources/Core/AWSClientRuntime/Signing/AWSSigningConfig.swift index 8d80118229f..564e8d81eb9 100644 --- a/Sources/Core/AWSClientRuntime/Signing/AWSSigningConfig.swift +++ b/Sources/Core/AWSClientRuntime/Signing/AWSSigningConfig.swift @@ -10,7 +10,7 @@ import Foundation public struct AWSSigningConfig { public let credentials: AWSCredentials? - public let credentialsProvider: AWSCredentialsProvider? + public let credentialsProvider: CredentialsProviding? public let expiration: TimeInterval public let signedBodyHeader: AWSSignedBodyHeader public let signedBodyValue: AWSSignedBodyValue @@ -24,7 +24,7 @@ public struct AWSSigningConfig { public init( credentials: AWSCredentials? = nil, - credentialsProvider: AWSCredentialsProvider? = nil, + credentialsProvider: CredentialsProviding? = nil, expiration: TimeInterval = 0, signedBodyHeader: AWSSignedBodyHeader = .none, signedBodyValue: AWSSignedBodyValue, @@ -60,7 +60,7 @@ extension AWSSigningConfig { region: region, date: date, credentials: try credentials.map { try CRTCredentials(credentials: $0) }, - credentialsProvider: credentialsProvider?.underlyingCRTCredentialsProvider(), + credentialsProvider: try credentialsProvider?.getCRTCredentialsProvider(), expiration: expiration, signedBodyHeader: signedBodyHeader.toCRTType(), signedBodyValue: signedBodyValue.toCRTType(), diff --git a/Sources/Core/AWSClientRuntime/Signing/SigV4Config.swift b/Sources/Core/AWSClientRuntime/Signing/SigV4Config.swift index 197c0de3c29..845cde8f86d 100644 --- a/Sources/Core/AWSClientRuntime/Signing/SigV4Config.swift +++ b/Sources/Core/AWSClientRuntime/Signing/SigV4Config.swift @@ -8,7 +8,7 @@ import Foundation public struct SigV4Config { - let credentialsProvider: AWSCredentialsProvider? + let credentialsProvider: CredentialsProviding? let signingService: String? let signatureType: AWSSignatureType let useDoubleURIEncode: Bool @@ -20,7 +20,7 @@ public struct SigV4Config { let signingAlgorithm: AWSSigningAlgorithm public init( - credentialsProvider: AWSCredentialsProvider? = nil, + credentialsProvider: CredentialsProviding? = nil, signingService: String? = nil, signatureType: AWSSignatureType = .requestHeaders, useDoubleURIEncode: Bool = true, diff --git a/Sources/Core/AWSClientRuntime/Utils/Cache/FunctionCache.swift b/Sources/Core/AWSClientRuntime/Utils/Cache/FunctionCache.swift deleted file mode 100644 index f777a069a81..00000000000 --- a/Sources/Core/AWSClientRuntime/Utils/Cache/FunctionCache.swift +++ /dev/null @@ -1,80 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import Foundation - -/// A cache that provides function memoization. -/// The cache stores the outputs of the provided function call and returns the cached output when given the same input again. -/// If the function call throws an error, its not cached. -actor FunctionCache { - typealias Function = (Input) async throws -> Output - private let f: Function - - // Future Improvement: - // Allow for the cache type and instance to be injected in, - // this would allow composers to specify the type of backing cache that they need. - // For example, some uses cases might call for something like NSCache that will auto-evict - // resources when the system is low on memory. - private var cache = [Input: Output]() - private var activeTasks = [Input: Task]() - - /// Creates a function cache that will store the outputs of the provided function. - init(_ f: @escaping Function) { - self.f = f - } -} - -extension FunctionCache { - /// Returns the `Output` by retrieving the value from the cache or executing the function using the provided input. - /// If an output exists in the cache for the provided input, it returns that. - /// Otherwise it executes the function (provided in the initailizer), stores the output in the cache, and then returns it. - /// - /// Only one function execution will occur for the same input, even if concurrent calls are made the same input. - /// - /// - Parameter input: The input uses to retrieve the output from the cache or passed to the function for execution. - /// - Returns: The `Output` by retrieving the value from the cache or executing the function using the provided input. - func output(for input: Input) async throws -> Output { - // Check if we have a task already scheduled for the input - if let existingTask = activeTasks[input] { - // We have an existing task scheduled for the input, so await its value - return try await existingTask.value - } - - // Check if we have an output cached for the input - if let existingOutput = cache[input] { - // We have an output cached for the input, so return that - return existingOutput - } - - // Create a task that handles performing the work - // It will execute the function and store the output in the cache. - let task = Task { - do { - // Execute the function passing in the input - let output = try await f(input) - // Insert the output into the cache - cache[input] = output - // Untrack the task - activeTasks[input] = nil - // Return the output - return output - } catch { - // Untrack the task - activeTasks[input] = nil - throw error - } - } - - // Keep track of the task - // This allows us to use this same task if another call is made with the same input - // before the function finishes executing. - activeTasks[input] = task - - // Await the task and return it's value - return try await task.value - } -} diff --git a/Sources/Services/AWSACM/ACMClient.swift b/Sources/Services/AWSACM/ACMClient.swift index 7d18810113a..ea4a23ecfc6 100644 --- a/Sources/Services/AWSACM/ACMClient.swift +++ b/Sources/Services/AWSACM/ACMClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ACMClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ACMClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ACMClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ACMClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ACMClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ACMClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ACMClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ACMClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ACMClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSACM/ACMClientProtocol.swift b/Sources/Services/AWSACM/ACMClientProtocol.swift index 7c7eb1137ed..a36871e2c28 100644 --- a/Sources/Services/AWSACM/ACMClientProtocol.swift +++ b/Sources/Services/AWSACM/ACMClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Certificate Manager You can use Certificate Manager (ACM) to manage SSL/TLS certificates for your Amazon Web Services-based websites and applications. For more information about using ACM, see the [Certificate Manager User Guide](https://docs.aws.amazon.com/acm/latest/userguide/). diff --git a/Sources/Services/AWSACMPCA/ACMPCAClient.swift b/Sources/Services/AWSACMPCA/ACMPCAClient.swift index dcb586a9c95..8a48247e727 100644 --- a/Sources/Services/AWSACMPCA/ACMPCAClient.swift +++ b/Sources/Services/AWSACMPCA/ACMPCAClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ACMPCAClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ACMPCAClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ACMPCAClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ACMPCAClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ACMPCAClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ACMPCAClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ACMPCAClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ACMPCAClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ACMPCAClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSACMPCA/ACMPCAClientProtocol.swift b/Sources/Services/AWSACMPCA/ACMPCAClientProtocol.swift index e4ab0a5a7be..79a50f220b2 100644 --- a/Sources/Services/AWSACMPCA/ACMPCAClientProtocol.swift +++ b/Sources/Services/AWSACMPCA/ACMPCAClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the Amazon Web Services Private Certificate Authority API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types involved in creating and managing a private certificate authority (CA) for your organization. The documentation for each action shows the API request parameters and the JSON response. Alternatively, you can use one of the Amazon Web Services SDKs to access an API that is tailored to the programming language or platform that you prefer. For more information, see [Amazon Web Services SDKs](https://aws.amazon.com/tools/#SDKs). Each Amazon Web Services Private CA API operation has a quota that determines the number of times the operation can be called per second. Amazon Web Services Private CA throttles API requests at different rates depending on the operation. Throttling means that Amazon Web Services Private CA rejects an otherwise valid request because the request exceeds the operation's quota for the number of requests per second. When a request is throttled, Amazon Web Services Private CA returns a [ThrottlingException](https://docs.aws.amazon.com/acm-pca/latest/APIReference/CommonErrors.html) error. Amazon Web Services Private CA does not guarantee a minimum request rate for APIs. To see an up-to-date list of your Amazon Web Services Private CA quotas, or to request a quota increase, log into your Amazon Web Services account and visit the [Service Quotas](https://console.aws.amazon.com/servicequotas/) console. diff --git a/Sources/Services/AWSAPIGateway/APIGatewayClient.swift b/Sources/Services/AWSAPIGateway/APIGatewayClient.swift index e68546bf50e..16db5357e0e 100644 --- a/Sources/Services/AWSAPIGateway/APIGatewayClient.swift +++ b/Sources/Services/AWSAPIGateway/APIGatewayClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class APIGatewayClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await APIGatewayClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try APIGatewayClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class APIGatewayClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class APIGatewayClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class APIGatewayClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("APIGatewayClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class APIGatewayClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("APIGatewayClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAPIGateway/APIGatewayClientProtocol.swift b/Sources/Services/AWSAPIGateway/APIGatewayClientProtocol.swift index 28c4dfdf48e..959d097ebf6 100644 --- a/Sources/Services/AWSAPIGateway/APIGatewayClientProtocol.swift +++ b/Sources/Services/AWSAPIGateway/APIGatewayClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon API Gateway Amazon API Gateway helps developers deliver robust, secure, and scalable mobile and web application back ends. API Gateway allows developers to securely connect mobile and web applications to APIs that run on AWS Lambda, Amazon EC2, or other publicly addressable web services that are hosted outside of AWS. diff --git a/Sources/Services/AWSARCZonalShift/ARCZonalShiftClient.swift b/Sources/Services/AWSARCZonalShift/ARCZonalShiftClient.swift index fc897eb2580..37211b67229 100644 --- a/Sources/Services/AWSARCZonalShift/ARCZonalShiftClient.swift +++ b/Sources/Services/AWSARCZonalShift/ARCZonalShiftClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ARCZonalShiftClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ARCZonalShiftClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ARCZonalShiftClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ARCZonalShiftClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ARCZonalShiftClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ARCZonalShiftClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ARCZonalShiftClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ARCZonalShiftClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ARCZonalShiftClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSARCZonalShift/ARCZonalShiftClientProtocol.swift b/Sources/Services/AWSARCZonalShift/ARCZonalShiftClientProtocol.swift index 425b566b5ce..3f2ce680bd0 100644 --- a/Sources/Services/AWSARCZonalShift/ARCZonalShiftClientProtocol.swift +++ b/Sources/Services/AWSARCZonalShift/ARCZonalShiftClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the API Reference Guide for the zonal shift feature of Amazon Route 53 Application Recovery Controller. This guide is for developers who need detailed information about zonal shift API actions, data types, and errors. Zonal shift is in preview release for Amazon Route 53 Application Recovery Controller and is subject to change. Zonal shift in Route 53 ARC enables you to move traffic for a load balancer resource away from an Availability Zone. Starting a zonal shift helps your application recover immediately, for example, from a developer's bad code deployment or from an AWS infrastructure failure in a single Availability Zone, reducing the impact and time lost from an issue in one zone. Supported AWS resources are automatically registered with Route 53 ARC. Resources that are registered for zonal shifts in Route 53 ARC are managed resources in Route 53 ARC. You can start a zonal shift for any managed resource in your account in a Region. At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off. Zonal shifts are temporary. You must specify an expiration when you start a zonal shift, of up to three days initially. If you want to still keep traffic away from an Availability Zone, you can update the zonal shift and set a new expiration. You can also cancel a zonal shift, before it expires, for example, if you're ready to restore traffic to the Availability Zone. For more information about using zonal shift, see the [Amazon Route 53 Application Recovery Controller Developer Guide](https://docs.aws.amazon.com/r53recovery/latest/dg/what-is-route53-recovery.html). diff --git a/Sources/Services/AWSAccessAnalyzer/AccessAnalyzerClient.swift b/Sources/Services/AWSAccessAnalyzer/AccessAnalyzerClient.swift index 04baca207ce..277388ad4bf 100644 --- a/Sources/Services/AWSAccessAnalyzer/AccessAnalyzerClient.swift +++ b/Sources/Services/AWSAccessAnalyzer/AccessAnalyzerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AccessAnalyzerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AccessAnalyzerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AccessAnalyzerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AccessAnalyzerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AccessAnalyzerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AccessAnalyzerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AccessAnalyzerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AccessAnalyzerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AccessAnalyzerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAccessAnalyzer/AccessAnalyzerClientProtocol.swift b/Sources/Services/AWSAccessAnalyzer/AccessAnalyzerClientProtocol.swift index 6263944cffe..55c8081d3ec 100644 --- a/Sources/Services/AWSAccessAnalyzer/AccessAnalyzerClientProtocol.swift +++ b/Sources/Services/AWSAccessAnalyzer/AccessAnalyzerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Identity and Access Management Access Analyzer helps identify potential resource-access risks by enabling you to identify any policies that grant access to an external principal. It does this by using logic-based reasoning to analyze resource-based policies in your Amazon Web Services environment. An external principal can be another Amazon Web Services account, a root user, an IAM user or role, a federated user, an Amazon Web Services service, or an anonymous user. You can also use IAM Access Analyzer to preview and validate public and cross-account access to your resources before deploying permissions changes. This guide describes the Identity and Access Management Access Analyzer operations that you can call programmatically. For general information about IAM Access Analyzer, see [Identity and Access Management Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) in the IAM User Guide. To start using IAM Access Analyzer, you first need to create an analyzer. diff --git a/Sources/Services/AWSAccount/AccountClient.swift b/Sources/Services/AWSAccount/AccountClient.swift index 4f672d44633..096fffc8c98 100644 --- a/Sources/Services/AWSAccount/AccountClient.swift +++ b/Sources/Services/AWSAccount/AccountClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AccountClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AccountClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AccountClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AccountClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AccountClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AccountClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AccountClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AccountClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AccountClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAccount/AccountClientProtocol.swift b/Sources/Services/AWSAccount/AccountClientProtocol.swift index 1d0e9e43e1c..0ec939fa3ed 100644 --- a/Sources/Services/AWSAccount/AccountClientProtocol.swift +++ b/Sources/Services/AWSAccount/AccountClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Operations for Amazon Web Services Account Management diff --git a/Sources/Services/AWSAlexaForBusiness/AlexaForBusinessClient.swift b/Sources/Services/AWSAlexaForBusiness/AlexaForBusinessClient.swift index ceb80e17c27..af68399ef1d 100644 --- a/Sources/Services/AWSAlexaForBusiness/AlexaForBusinessClient.swift +++ b/Sources/Services/AWSAlexaForBusiness/AlexaForBusinessClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AlexaForBusinessClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AlexaForBusinessClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AlexaForBusinessClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AlexaForBusinessClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AlexaForBusinessClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AlexaForBusinessClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AlexaForBusinessClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AlexaForBusinessClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AlexaForBusinessClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAlexaForBusiness/AlexaForBusinessClientProtocol.swift b/Sources/Services/AWSAlexaForBusiness/AlexaForBusinessClientProtocol.swift index 892b7afbe24..50d5bb47601 100644 --- a/Sources/Services/AWSAlexaForBusiness/AlexaForBusinessClientProtocol.swift +++ b/Sources/Services/AWSAlexaForBusiness/AlexaForBusinessClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Alexa for Business helps you use Alexa in your organization. Alexa for Business provides you with the tools to manage Alexa devices, enroll your users, and assign skills, at scale. You can build your own context-aware voice skills using the Alexa Skills Kit and the Alexa for Business API operations. You can also make these available as private skills for your organization. Alexa for Business makes it efficient to voice-enable your products and services, thus providing context-aware voice experiences for your customers. Device makers building with the Alexa Voice Service (AVS) can create fully integrated solutions, register their products with Alexa for Business, and manage them as shared devices in their organization. diff --git a/Sources/Services/AWSAmp/AmpClient.swift b/Sources/Services/AWSAmp/AmpClient.swift index 4116fa4b7b9..e2dcb882432 100644 --- a/Sources/Services/AWSAmp/AmpClient.swift +++ b/Sources/Services/AWSAmp/AmpClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AmpClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AmpClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AmpClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AmpClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AmpClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AmpClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AmpClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AmpClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AmpClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAmp/AmpClientProtocol.swift b/Sources/Services/AWSAmp/AmpClientProtocol.swift index 1e05c59c4a6..246df09b9c6 100644 --- a/Sources/Services/AWSAmp/AmpClientProtocol.swift +++ b/Sources/Services/AWSAmp/AmpClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Managed Service for Prometheus diff --git a/Sources/Services/AWSAmplify/AmplifyClient.swift b/Sources/Services/AWSAmplify/AmplifyClient.swift index 0f6996fc1a0..807259b7b90 100644 --- a/Sources/Services/AWSAmplify/AmplifyClient.swift +++ b/Sources/Services/AWSAmplify/AmplifyClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AmplifyClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AmplifyClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AmplifyClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AmplifyClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AmplifyClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AmplifyClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AmplifyClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AmplifyClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AmplifyClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAmplify/AmplifyClientProtocol.swift b/Sources/Services/AWSAmplify/AmplifyClientProtocol.swift index a29bcff51e7..b46eb347f8d 100644 --- a/Sources/Services/AWSAmplify/AmplifyClientProtocol.swift +++ b/Sources/Services/AWSAmplify/AmplifyClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amplify enables developers to develop and deploy cloud-powered mobile and web apps. The Amplify Console provides a continuous delivery and hosting service for web applications. For more information, see the [Amplify Console User Guide](https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html). The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and documentation for client app development. For more information, see the [Amplify Framework.](https://docs.amplify.aws/) diff --git a/Sources/Services/AWSAmplifyBackend/AmplifyBackendClient.swift b/Sources/Services/AWSAmplifyBackend/AmplifyBackendClient.swift index ba511ec0e99..2001b38d0a3 100644 --- a/Sources/Services/AWSAmplifyBackend/AmplifyBackendClient.swift +++ b/Sources/Services/AWSAmplifyBackend/AmplifyBackendClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AmplifyBackendClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AmplifyBackendClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AmplifyBackendClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AmplifyBackendClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AmplifyBackendClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AmplifyBackendClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AmplifyBackendClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AmplifyBackendClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AmplifyBackendClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAmplifyBackend/AmplifyBackendClientProtocol.swift b/Sources/Services/AWSAmplifyBackend/AmplifyBackendClientProtocol.swift index 264108120e2..f0d722a2753 100644 --- a/Sources/Services/AWSAmplifyBackend/AmplifyBackendClientProtocol.swift +++ b/Sources/Services/AWSAmplifyBackend/AmplifyBackendClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Amplify Admin API diff --git a/Sources/Services/AWSAmplifyUIBuilder/AmplifyUIBuilderClient.swift b/Sources/Services/AWSAmplifyUIBuilder/AmplifyUIBuilderClient.swift index ff8f613fd18..3ac0f19749e 100644 --- a/Sources/Services/AWSAmplifyUIBuilder/AmplifyUIBuilderClient.swift +++ b/Sources/Services/AWSAmplifyUIBuilder/AmplifyUIBuilderClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AmplifyUIBuilderClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AmplifyUIBuilderClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AmplifyUIBuilderClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AmplifyUIBuilderClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AmplifyUIBuilderClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AmplifyUIBuilderClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AmplifyUIBuilderClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AmplifyUIBuilderClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AmplifyUIBuilderClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAmplifyUIBuilder/AmplifyUIBuilderClientProtocol.swift b/Sources/Services/AWSAmplifyUIBuilder/AmplifyUIBuilderClientProtocol.swift index f351691d7dd..b101b3e86d7 100644 --- a/Sources/Services/AWSAmplifyUIBuilder/AmplifyUIBuilderClientProtocol.swift +++ b/Sources/Services/AWSAmplifyUIBuilder/AmplifyUIBuilderClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amplify UI Builder API provides a programmatic interface for creating and configuring user interface (UI) component libraries and themes for use in your Amplify applications. You can then connect these UI components to an application's backend Amazon Web Services resources. You can also use the Amplify Studio visual designer to create UI components and model data for an app. For more information, see [Introduction](https://docs.amplify.aws/console/adminui/intro) in the Amplify Docs. The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and documentation for client app development. For more information, see the [Amplify Framework](https://docs.amplify.aws/). For more information about deploying an Amplify application to Amazon Web Services, see the [Amplify User Guide](https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html). diff --git a/Sources/Services/AWSApiGatewayManagementApi/ApiGatewayManagementApiClient.swift b/Sources/Services/AWSApiGatewayManagementApi/ApiGatewayManagementApiClient.swift index 4127e45a047..3c95dca819f 100644 --- a/Sources/Services/AWSApiGatewayManagementApi/ApiGatewayManagementApiClient.swift +++ b/Sources/Services/AWSApiGatewayManagementApi/ApiGatewayManagementApiClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ApiGatewayManagementApiClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ApiGatewayManagementApiClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ApiGatewayManagementApiClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ApiGatewayManagementApiClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ApiGatewayManagementApiClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ApiGatewayManagementApiClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApiGatewayManagementApiClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ApiGatewayManagementApiClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApiGatewayManagementApiClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSApiGatewayManagementApi/ApiGatewayManagementApiClientProtocol.swift b/Sources/Services/AWSApiGatewayManagementApi/ApiGatewayManagementApiClientProtocol.swift index a68bc7902cc..f99045789ca 100644 --- a/Sources/Services/AWSApiGatewayManagementApi/ApiGatewayManagementApiClientProtocol.swift +++ b/Sources/Services/AWSApiGatewayManagementApi/ApiGatewayManagementApiClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon API Gateway Management API allows you to directly manage runtime aspects of your deployed APIs. To use it, you must explicitly set the SDK's endpoint to point to the endpoint of your deployed API. The endpoint will be of the form https://{api-id}.execute-api.{region}.amazonaws.com/{stage}, or will be the endpoint corresponding to your API's custom domain and base path, if applicable. diff --git a/Sources/Services/AWSApiGatewayV2/ApiGatewayV2Client.swift b/Sources/Services/AWSApiGatewayV2/ApiGatewayV2Client.swift index 4df28b6e077..b5eccfb7609 100644 --- a/Sources/Services/AWSApiGatewayV2/ApiGatewayV2Client.swift +++ b/Sources/Services/AWSApiGatewayV2/ApiGatewayV2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ApiGatewayV2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ApiGatewayV2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ApiGatewayV2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ApiGatewayV2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ApiGatewayV2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ApiGatewayV2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApiGatewayV2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ApiGatewayV2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApiGatewayV2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSApiGatewayV2/ApiGatewayV2ClientProtocol.swift b/Sources/Services/AWSApiGatewayV2/ApiGatewayV2ClientProtocol.swift index 2c675a79dcc..eee6709c7b7 100644 --- a/Sources/Services/AWSApiGatewayV2/ApiGatewayV2ClientProtocol.swift +++ b/Sources/Services/AWSApiGatewayV2/ApiGatewayV2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon API Gateway V2 diff --git a/Sources/Services/AWSAppConfig/AppConfigClient.swift b/Sources/Services/AWSAppConfig/AppConfigClient.swift index e44826ac4c2..529ef2b2844 100644 --- a/Sources/Services/AWSAppConfig/AppConfigClient.swift +++ b/Sources/Services/AWSAppConfig/AppConfigClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AppConfigClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AppConfigClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AppConfigClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AppConfigClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AppConfigClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AppConfigClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppConfigClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AppConfigClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppConfigClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAppConfig/AppConfigClientProtocol.swift b/Sources/Services/AWSAppConfig/AppConfigClientProtocol.swift index 2277617de69..719306f6a60 100644 --- a/Sources/Services/AWSAppConfig/AppConfigClientProtocol.swift +++ b/Sources/Services/AWSAppConfig/AppConfigClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Use AppConfig, a capability of Amazon Web Services Systems Manager, to create, manage, and quickly deploy application configurations. AppConfig supports controlled deployments to applications of any size and includes built-in validation checks and monitoring. You can use AppConfig with applications hosted on Amazon EC2 instances, Lambda, containers, mobile applications, or IoT devices. To prevent errors when deploying application configurations, especially for production systems where a simple typo could cause an unexpected outage, AppConfig includes validators. A validator provides a syntactic or semantic check to ensure that the configuration you want to deploy works as intended. To validate your application configuration data, you provide a schema or an Amazon Web Services Lambda function that runs against the configuration. The configuration deployment or update can only proceed when the configuration data is valid. During a configuration deployment, AppConfig monitors the application to ensure that the deployment is successful. If the system encounters an error, AppConfig rolls back the change to minimize impact for your application users. You can configure a deployment strategy for each application or environment that includes deployment criteria, including velocity, bake time, and alarms to monitor. Similar to error monitoring, if a deployment triggers an alarm, AppConfig automatically rolls back to the previous version. AppConfig supports multiple use cases. Here are some examples: diff --git a/Sources/Services/AWSAppConfigData/AppConfigDataClient.swift b/Sources/Services/AWSAppConfigData/AppConfigDataClient.swift index 48cc81dea2d..74f91e08b5c 100644 --- a/Sources/Services/AWSAppConfigData/AppConfigDataClient.swift +++ b/Sources/Services/AWSAppConfigData/AppConfigDataClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AppConfigDataClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AppConfigDataClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AppConfigDataClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AppConfigDataClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AppConfigDataClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AppConfigDataClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppConfigDataClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AppConfigDataClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppConfigDataClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAppConfigData/AppConfigDataClientProtocol.swift b/Sources/Services/AWSAppConfigData/AppConfigDataClientProtocol.swift index ee2f5572ba6..8fe4ac0703b 100644 --- a/Sources/Services/AWSAppConfigData/AppConfigDataClientProtocol.swift +++ b/Sources/Services/AWSAppConfigData/AppConfigDataClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AppConfig Data provides the data plane APIs your application uses to retrieve configuration data. Here's how it works: Your application retrieves configuration data by first establishing a configuration session using the AppConfig Data [StartConfigurationSession] API action. Your session's client then makes periodic calls to [GetLatestConfiguration] to check for and retrieve the latest data available. When calling StartConfigurationSession, your code sends the following information: diff --git a/Sources/Services/AWSAppIntegrations/AppIntegrationsClient.swift b/Sources/Services/AWSAppIntegrations/AppIntegrationsClient.swift index da4e0db7a1d..438ba95a012 100644 --- a/Sources/Services/AWSAppIntegrations/AppIntegrationsClient.swift +++ b/Sources/Services/AWSAppIntegrations/AppIntegrationsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AppIntegrationsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AppIntegrationsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AppIntegrationsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AppIntegrationsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AppIntegrationsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AppIntegrationsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppIntegrationsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AppIntegrationsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppIntegrationsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAppIntegrations/AppIntegrationsClientProtocol.swift b/Sources/Services/AWSAppIntegrations/AppIntegrationsClientProtocol.swift index 62f3ad11d0f..44645e33d3a 100644 --- a/Sources/Services/AWSAppIntegrations/AppIntegrationsClientProtocol.swift +++ b/Sources/Services/AWSAppIntegrations/AppIntegrationsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon AppIntegrations service enables you to configure and reuse connections to external applications. For information about how you can use external applications with Amazon Connect, see [Set up pre-built integrations](https://docs.aws.amazon.com/connect/latest/adminguide/crm.html) and [Deliver information to agents using Amazon Connect Wisdom](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-wisdom.html) in the Amazon Connect Administrator Guide. diff --git a/Sources/Services/AWSAppMesh/AppMeshClient.swift b/Sources/Services/AWSAppMesh/AppMeshClient.swift index 7a5616e0630..3463d7dbaf3 100644 --- a/Sources/Services/AWSAppMesh/AppMeshClient.swift +++ b/Sources/Services/AWSAppMesh/AppMeshClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AppMeshClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AppMeshClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AppMeshClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AppMeshClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AppMeshClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AppMeshClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppMeshClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AppMeshClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppMeshClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAppMesh/AppMeshClientProtocol.swift b/Sources/Services/AWSAppMesh/AppMeshClientProtocol.swift index 48005d74d05..54da910b278 100644 --- a/Sources/Services/AWSAppMesh/AppMeshClientProtocol.swift +++ b/Sources/Services/AWSAppMesh/AppMeshClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// App Mesh is a service mesh based on the Envoy proxy that makes it easy to monitor and control microservices. App Mesh standardizes how your microservices communicate, giving you end-to-end visibility and helping to ensure high availability for your applications. App Mesh gives you consistent visibility and network traffic controls for every microservice in an application. You can use App Mesh with Amazon Web Services Fargate, Amazon ECS, Amazon EKS, Kubernetes on Amazon Web Services, and Amazon EC2. App Mesh supports microservice applications that use service discovery naming for their components. For more information about service discovery on Amazon ECS, see [Service Discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html) in the Amazon Elastic Container Service Developer Guide. Kubernetes kube-dns and coredns are supported. For more information, see [DNS for Services and Pods](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/) in the Kubernetes documentation. diff --git a/Sources/Services/AWSAppRunner/AppRunnerClient.swift b/Sources/Services/AWSAppRunner/AppRunnerClient.swift index 07152c9269c..754f92a5b2e 100644 --- a/Sources/Services/AWSAppRunner/AppRunnerClient.swift +++ b/Sources/Services/AWSAppRunner/AppRunnerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AppRunnerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AppRunnerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AppRunnerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AppRunnerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AppRunnerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AppRunnerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppRunnerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AppRunnerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppRunnerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAppRunner/AppRunnerClientProtocol.swift b/Sources/Services/AWSAppRunner/AppRunnerClientProtocol.swift index 94d2770b343..85003c352cc 100644 --- a/Sources/Services/AWSAppRunner/AppRunnerClientProtocol.swift +++ b/Sources/Services/AWSAppRunner/AppRunnerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// App Runner App Runner is an application service that provides a fast, simple, and cost-effective way to go directly from an existing container image or source code to a running service in the Amazon Web Services Cloud in seconds. You don't need to learn new technologies, decide which compute service to use, or understand how to provision and configure Amazon Web Services resources. App Runner connects directly to your container registry or source code repository. It provides an automatic delivery pipeline with fully managed operations, high performance, scalability, and security. For more information about App Runner, see the [App Runner Developer Guide](https://docs.aws.amazon.com/apprunner/latest/dg/). For release information, see the [App Runner Release Notes](https://docs.aws.amazon.com/apprunner/latest/relnotes/). To install the Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools that you can use to access the API, see [Tools for Amazon Web Services](http://aws.amazon.com/tools/). Endpoints For a list of Region-specific endpoints that App Runner supports, see [App Runner endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/apprunner.html) in the Amazon Web Services General Reference. diff --git a/Sources/Services/AWSAppStream/AppStreamClient.swift b/Sources/Services/AWSAppStream/AppStreamClient.swift index fbe3660bfce..def2ff2214c 100644 --- a/Sources/Services/AWSAppStream/AppStreamClient.swift +++ b/Sources/Services/AWSAppStream/AppStreamClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AppStreamClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AppStreamClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AppStreamClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AppStreamClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AppStreamClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AppStreamClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppStreamClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AppStreamClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppStreamClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAppStream/AppStreamClientProtocol.swift b/Sources/Services/AWSAppStream/AppStreamClientProtocol.swift index c06d2d42544..96f4ba51470 100644 --- a/Sources/Services/AWSAppStream/AppStreamClientProtocol.swift +++ b/Sources/Services/AWSAppStream/AppStreamClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon AppStream 2.0 This is the Amazon AppStream 2.0 API Reference. This documentation provides descriptions and syntax for each of the actions and data types in AppStream 2.0. AppStream 2.0 is a fully managed, secure application streaming service that lets you stream desktop applications to users without rewriting applications. AppStream 2.0 manages the AWS resources that are required to host and run your applications, scales automatically, and provides access to your users on demand. You can call the AppStream 2.0 API operations by using an interface VPC endpoint (interface endpoint). For more information, see [Access AppStream 2.0 API Operations and CLI Commands Through an Interface VPC Endpoint](https://docs.aws.amazon.com/appstream2/latest/developerguide/access-api-cli-through-interface-vpc-endpoint.html) in the Amazon AppStream 2.0 Administration Guide. To learn more about AppStream 2.0, see the following resources: diff --git a/Sources/Services/AWSAppSync/AppSyncClient.swift b/Sources/Services/AWSAppSync/AppSyncClient.swift index 94c61503933..3625ea2276c 100644 --- a/Sources/Services/AWSAppSync/AppSyncClient.swift +++ b/Sources/Services/AWSAppSync/AppSyncClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AppSyncClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AppSyncClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AppSyncClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AppSyncClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AppSyncClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AppSyncClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppSyncClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AppSyncClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppSyncClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAppSync/AppSyncClientProtocol.swift b/Sources/Services/AWSAppSync/AppSyncClientProtocol.swift index fe84cfec62a..2ab0eec763e 100644 --- a/Sources/Services/AWSAppSync/AppSyncClientProtocol.swift +++ b/Sources/Services/AWSAppSync/AppSyncClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AppSync provides API actions for creating and interacting with data sources using GraphQL from your application. diff --git a/Sources/Services/AWSAppflow/AppflowClient.swift b/Sources/Services/AWSAppflow/AppflowClient.swift index 77a1819f165..655c4da9695 100644 --- a/Sources/Services/AWSAppflow/AppflowClient.swift +++ b/Sources/Services/AWSAppflow/AppflowClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AppflowClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AppflowClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AppflowClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AppflowClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AppflowClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AppflowClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppflowClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AppflowClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AppflowClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAppflow/AppflowClientProtocol.swift b/Sources/Services/AWSAppflow/AppflowClientProtocol.swift index cb1dbce1020..594ce2af3ee 100644 --- a/Sources/Services/AWSAppflow/AppflowClientProtocol.swift +++ b/Sources/Services/AWSAppflow/AppflowClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the Amazon AppFlow API reference. This guide is for developers who need detailed information about the Amazon AppFlow API operations, data types, and errors. Amazon AppFlow is a fully managed integration service that enables you to securely transfer data between software as a service (SaaS) applications like Salesforce, Marketo, Slack, and ServiceNow, and Amazon Web Services like Amazon S3 and Amazon Redshift. Use the following links to get started on the Amazon AppFlow API: diff --git a/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift b/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift index 011bfd607a4..454d4859bb0 100644 --- a/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift +++ b/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ApplicationAutoScalingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ApplicationAutoScalingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ApplicationAutoScalingClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ApplicationAutoScalingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ApplicationAutoScalingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ApplicationAutoScalingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApplicationAutoScalingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ApplicationAutoScalingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApplicationAutoScalingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClientProtocol.swift b/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClientProtocol.swift index 6a54c24b775..5d864de2a86 100644 --- a/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClientProtocol.swift +++ b/Sources/Services/AWSApplicationAutoScaling/ApplicationAutoScalingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// With Application Auto Scaling, you can configure automatic scaling for the following resources: diff --git a/Sources/Services/AWSApplicationCostProfiler/ApplicationCostProfilerClient.swift b/Sources/Services/AWSApplicationCostProfiler/ApplicationCostProfilerClient.swift index 9ba1c208cff..69587bd4412 100644 --- a/Sources/Services/AWSApplicationCostProfiler/ApplicationCostProfilerClient.swift +++ b/Sources/Services/AWSApplicationCostProfiler/ApplicationCostProfilerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ApplicationCostProfilerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ApplicationCostProfilerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ApplicationCostProfilerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ApplicationCostProfilerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ApplicationCostProfilerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ApplicationCostProfilerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApplicationCostProfilerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ApplicationCostProfilerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApplicationCostProfilerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSApplicationCostProfiler/ApplicationCostProfilerClientProtocol.swift b/Sources/Services/AWSApplicationCostProfiler/ApplicationCostProfilerClientProtocol.swift index 634f152df30..15a484e6600 100644 --- a/Sources/Services/AWSApplicationCostProfiler/ApplicationCostProfilerClientProtocol.swift +++ b/Sources/Services/AWSApplicationCostProfiler/ApplicationCostProfilerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This reference provides descriptions of the AWS Application Cost Profiler API. The AWS Application Cost Profiler API provides programmatic access to view, create, update, and delete application cost report definitions, as well as to import your usage data into the Application Cost Profiler service. For more information about using this service, see the [AWS Application Cost Profiler User Guide](https://docs.aws.amazon.com/application-cost-profiler/latest/userguide/introduction.html). diff --git a/Sources/Services/AWSApplicationDiscoveryService/ApplicationDiscoveryClient.swift b/Sources/Services/AWSApplicationDiscoveryService/ApplicationDiscoveryClient.swift index b2f54e2d497..e409a8a6fbb 100644 --- a/Sources/Services/AWSApplicationDiscoveryService/ApplicationDiscoveryClient.swift +++ b/Sources/Services/AWSApplicationDiscoveryService/ApplicationDiscoveryClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ApplicationDiscoveryClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ApplicationDiscoveryClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ApplicationDiscoveryClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ApplicationDiscoveryClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ApplicationDiscoveryClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ApplicationDiscoveryClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApplicationDiscoveryClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ApplicationDiscoveryClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApplicationDiscoveryClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSApplicationDiscoveryService/ApplicationDiscoveryClientProtocol.swift b/Sources/Services/AWSApplicationDiscoveryService/ApplicationDiscoveryClientProtocol.swift index 811b2517a97..8c2b34c52b3 100644 --- a/Sources/Services/AWSApplicationDiscoveryService/ApplicationDiscoveryClientProtocol.swift +++ b/Sources/Services/AWSApplicationDiscoveryService/ApplicationDiscoveryClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Application Discovery Service Amazon Web Services Application Discovery Service helps you plan application migration projects. It automatically identifies servers, virtual machines (VMs), and network dependencies in your on-premises data centers. For more information, see the [Amazon Web Services Application Discovery Service FAQ](http://aws.amazon.com/application-discovery/faqs/). Application Discovery Service offers three ways of performing discovery and collecting data about your on-premises servers: diff --git a/Sources/Services/AWSApplicationInsights/ApplicationInsightsClient.swift b/Sources/Services/AWSApplicationInsights/ApplicationInsightsClient.swift index 52d24e00dbb..7fd6639abd5 100644 --- a/Sources/Services/AWSApplicationInsights/ApplicationInsightsClient.swift +++ b/Sources/Services/AWSApplicationInsights/ApplicationInsightsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ApplicationInsightsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ApplicationInsightsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ApplicationInsightsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ApplicationInsightsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ApplicationInsightsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ApplicationInsightsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApplicationInsightsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ApplicationInsightsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ApplicationInsightsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSApplicationInsights/ApplicationInsightsClientProtocol.swift b/Sources/Services/AWSApplicationInsights/ApplicationInsightsClientProtocol.swift index 48d92376f86..3f319ac4552 100644 --- a/Sources/Services/AWSApplicationInsights/ApplicationInsightsClientProtocol.swift +++ b/Sources/Services/AWSApplicationInsights/ApplicationInsightsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon CloudWatch Application Insights Amazon CloudWatch Application Insights is a service that helps you detect common problems with your applications. It enables you to pinpoint the source of issues in your applications (built with technologies such as Microsoft IIS, .NET, and Microsoft SQL Server), by providing key insights into detected problems. After you onboard your application, CloudWatch Application Insights identifies, recommends, and sets up metrics and logs. It continuously analyzes and correlates your metrics and logs for unusual behavior to surface actionable problems with your application. For example, if your application is slow and unresponsive and leading to HTTP 500 errors in your Application Load Balancer (ALB), Application Insights informs you that a memory pressure problem with your SQL Server database is occurring. It bases this analysis on impactful metrics and log errors. diff --git a/Sources/Services/AWSAthena/AthenaClient.swift b/Sources/Services/AWSAthena/AthenaClient.swift index 8c1a3cd7262..1e4cb518b41 100644 --- a/Sources/Services/AWSAthena/AthenaClient.swift +++ b/Sources/Services/AWSAthena/AthenaClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AthenaClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AthenaClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AthenaClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AthenaClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AthenaClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AthenaClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AthenaClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AthenaClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AthenaClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAthena/AthenaClientProtocol.swift b/Sources/Services/AWSAthena/AthenaClientProtocol.swift index 93d384da50e..a5028a16c74 100644 --- a/Sources/Services/AWSAthena/AthenaClientProtocol.swift +++ b/Sources/Services/AWSAthena/AthenaClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Athena is an interactive query service that lets you use standard SQL to analyze data directly in Amazon S3. You can point Athena at your data in Amazon S3 and run ad-hoc queries and get results in seconds. Athena is serverless, so there is no infrastructure to set up or manage. You pay only for the queries you run. Athena scales automatically—executing queries in parallel—so results are fast, even with large datasets and complex queries. For more information, see [What is Amazon Athena](http://docs.aws.amazon.com/athena/latest/ug/what-is.html) in the Amazon Athena User Guide. If you connect to Athena using the JDBC driver, use version 1.1.0 of the driver or later with the Amazon Athena API. Earlier version drivers do not support the API. For more information and to download the driver, see [Accessing Amazon Athena with JDBC](https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html). For code samples using the Amazon Web Services SDK for Java, see [Examples and Code Samples](https://docs.aws.amazon.com/athena/latest/ug/code-samples.html) in the Amazon Athena User Guide. diff --git a/Sources/Services/AWSAuditManager/AuditManagerClient.swift b/Sources/Services/AWSAuditManager/AuditManagerClient.swift index 86db0f4a0c2..0c3cd3f89a8 100644 --- a/Sources/Services/AWSAuditManager/AuditManagerClient.swift +++ b/Sources/Services/AWSAuditManager/AuditManagerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AuditManagerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AuditManagerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AuditManagerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AuditManagerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AuditManagerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AuditManagerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AuditManagerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AuditManagerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AuditManagerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAuditManager/AuditManagerClientProtocol.swift b/Sources/Services/AWSAuditManager/AuditManagerClientProtocol.swift index 24272672beb..034068664b9 100644 --- a/Sources/Services/AWSAuditManager/AuditManagerClientProtocol.swift +++ b/Sources/Services/AWSAuditManager/AuditManagerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the Audit Manager API reference. This guide is for developers who need detailed information about the Audit Manager API operations, data types, and errors. Audit Manager is a service that provides automated evidence collection so that you can continually audit your Amazon Web Services usage. You can use it to assess the effectiveness of your controls, manage risk, and simplify compliance. Audit Manager provides prebuilt frameworks that structure and automate assessments for a given compliance standard. Frameworks include a prebuilt collection of controls with descriptions and testing procedures. These controls are grouped according to the requirements of the specified compliance standard or regulation. You can also customize frameworks and controls to support internal audits with specific requirements. Use the following links to get started with the Audit Manager API: diff --git a/Sources/Services/AWSAutoScaling/AutoScalingClient.swift b/Sources/Services/AWSAutoScaling/AutoScalingClient.swift index 68077934244..6d6cb0feb32 100644 --- a/Sources/Services/AWSAutoScaling/AutoScalingClient.swift +++ b/Sources/Services/AWSAutoScaling/AutoScalingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class AutoScalingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AutoScalingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AutoScalingClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class AutoScalingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class AutoScalingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class AutoScalingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AutoScalingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class AutoScalingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AutoScalingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAutoScaling/AutoScalingClientProtocol.swift b/Sources/Services/AWSAutoScaling/AutoScalingClientProtocol.swift index 28d496ebd38..817f6b7f40a 100644 --- a/Sources/Services/AWSAutoScaling/AutoScalingClientProtocol.swift +++ b/Sources/Services/AWSAutoScaling/AutoScalingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EC2 Auto Scaling Amazon EC2 Auto Scaling is designed to automatically launch and terminate EC2 instances based on user-defined scaling policies, scheduled actions, and health checks. For more information, see the [Amazon EC2 Auto Scaling User Guide](https://docs.aws.amazon.com/autoscaling/ec2/userguide/) and the [Amazon EC2 Auto Scaling API Reference](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/Welcome.html). diff --git a/Sources/Services/AWSAutoScalingPlans/AutoScalingPlansClient.swift b/Sources/Services/AWSAutoScalingPlans/AutoScalingPlansClient.swift index 5e6caeb28a7..c5248fc10c3 100644 --- a/Sources/Services/AWSAutoScalingPlans/AutoScalingPlansClient.swift +++ b/Sources/Services/AWSAutoScalingPlans/AutoScalingPlansClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class AutoScalingPlansClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await AutoScalingPlansClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try AutoScalingPlansClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class AutoScalingPlansClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class AutoScalingPlansClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class AutoScalingPlansClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AutoScalingPlansClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class AutoScalingPlansClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("AutoScalingPlansClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSAutoScalingPlans/AutoScalingPlansClientProtocol.swift b/Sources/Services/AWSAutoScalingPlans/AutoScalingPlansClientProtocol.swift index fe6428dab60..0f22137fb17 100644 --- a/Sources/Services/AWSAutoScalingPlans/AutoScalingPlansClientProtocol.swift +++ b/Sources/Services/AWSAutoScalingPlans/AutoScalingPlansClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Auto Scaling Use AWS Auto Scaling to create scaling plans for your applications to automatically scale your scalable AWS resources. API Summary You can use the AWS Auto Scaling service API to accomplish the following tasks: diff --git a/Sources/Services/AWSBackup/BackupClient.swift b/Sources/Services/AWSBackup/BackupClient.swift index c76550ebd6a..4249ff9907f 100644 --- a/Sources/Services/AWSBackup/BackupClient.swift +++ b/Sources/Services/AWSBackup/BackupClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class BackupClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await BackupClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try BackupClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class BackupClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class BackupClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class BackupClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BackupClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class BackupClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BackupClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSBackup/BackupClientProtocol.swift b/Sources/Services/AWSBackup/BackupClientProtocol.swift index b61896dbe2c..836b2109beb 100644 --- a/Sources/Services/AWSBackup/BackupClientProtocol.swift +++ b/Sources/Services/AWSBackup/BackupClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Backup Backup is a unified backup service designed to protect Amazon Web Services services and their associated data. Backup simplifies the creation, migration, restoration, and deletion of backups, while also providing reporting and auditing. diff --git a/Sources/Services/AWSBackupGateway/BackupGatewayClient.swift b/Sources/Services/AWSBackupGateway/BackupGatewayClient.swift index f4abbeddd2f..b44046144b2 100644 --- a/Sources/Services/AWSBackupGateway/BackupGatewayClient.swift +++ b/Sources/Services/AWSBackupGateway/BackupGatewayClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class BackupGatewayClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await BackupGatewayClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try BackupGatewayClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class BackupGatewayClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class BackupGatewayClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class BackupGatewayClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BackupGatewayClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class BackupGatewayClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BackupGatewayClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSBackupGateway/BackupGatewayClientProtocol.swift b/Sources/Services/AWSBackupGateway/BackupGatewayClientProtocol.swift index 384b500b249..88dd10c0bcc 100644 --- a/Sources/Services/AWSBackupGateway/BackupGatewayClientProtocol.swift +++ b/Sources/Services/AWSBackupGateway/BackupGatewayClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Backup gateway Backup gateway connects Backup to your hypervisor, so you can create, store, and restore backups of your virtual machines (VMs) anywhere, whether on-premises or in the VMware Cloud (VMC) on Amazon Web Services. Add on-premises resources by connecting to a hypervisor through a gateway. Backup will automatically discover the resources in your hypervisor. Use Backup to assign virtual or on-premises resources to a backup plan, or run on-demand backups. Once you have backed up your resources, you can view them and restore them like any resource supported by Backup. To download the Amazon Web Services software to get started, navigate to the Backup console, choose Gateways, then choose Create gateway. diff --git a/Sources/Services/AWSBackupStorage/BackupStorageClient.swift b/Sources/Services/AWSBackupStorage/BackupStorageClient.swift index 0601af0b8a9..f5732d39b88 100644 --- a/Sources/Services/AWSBackupStorage/BackupStorageClient.swift +++ b/Sources/Services/AWSBackupStorage/BackupStorageClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class BackupStorageClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await BackupStorageClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try BackupStorageClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class BackupStorageClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class BackupStorageClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class BackupStorageClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BackupStorageClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class BackupStorageClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BackupStorageClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSBackupStorage/BackupStorageClientProtocol.swift b/Sources/Services/AWSBackupStorage/BackupStorageClientProtocol.swift index ce7f4aabfb7..d9d5cd4ee67 100644 --- a/Sources/Services/AWSBackupStorage/BackupStorageClientProtocol.swift +++ b/Sources/Services/AWSBackupStorage/BackupStorageClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The frontend service for Cryo Storage. diff --git a/Sources/Services/AWSBatch/BatchClient.swift b/Sources/Services/AWSBatch/BatchClient.swift index 08c0d4fff8f..c695bbd6419 100644 --- a/Sources/Services/AWSBatch/BatchClient.swift +++ b/Sources/Services/AWSBatch/BatchClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class BatchClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await BatchClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try BatchClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class BatchClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class BatchClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class BatchClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BatchClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class BatchClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BatchClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSBatch/BatchClientProtocol.swift b/Sources/Services/AWSBatch/BatchClientProtocol.swift index cf1c9a780d1..f698598c60a 100644 --- a/Sources/Services/AWSBatch/BatchClientProtocol.swift +++ b/Sources/Services/AWSBatch/BatchClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Batch Using Batch, you can run batch computing workloads on the Amazon Web Services Cloud. Batch computing is a common means for developers, scientists, and engineers to access large amounts of compute resources. Batch uses the advantages of the batch computing to remove the undifferentiated heavy lifting of configuring and managing required infrastructure. At the same time, it also adopts a familiar batch computing software approach. You can use Batch to efficiently provision resources d, and work toward eliminating capacity constraints, reducing your overall compute costs, and delivering results more quickly. As a fully managed service, Batch can run batch computing workloads of any scale. Batch automatically provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific workloads. With Batch, there's no need to install or manage batch computing software. This means that you can focus on analyzing results and solving your specific problems instead. diff --git a/Sources/Services/AWSBillingconductor/BillingconductorClient.swift b/Sources/Services/AWSBillingconductor/BillingconductorClient.swift index 99776e8605c..2f630aba08c 100644 --- a/Sources/Services/AWSBillingconductor/BillingconductorClient.swift +++ b/Sources/Services/AWSBillingconductor/BillingconductorClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class BillingconductorClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await BillingconductorClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try BillingconductorClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class BillingconductorClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class BillingconductorClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class BillingconductorClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BillingconductorClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class BillingconductorClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BillingconductorClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSBillingconductor/BillingconductorClientProtocol.swift b/Sources/Services/AWSBillingconductor/BillingconductorClientProtocol.swift index d8064d7cd88..fe35482d3e6 100644 --- a/Sources/Services/AWSBillingconductor/BillingconductorClientProtocol.swift +++ b/Sources/Services/AWSBillingconductor/BillingconductorClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Billing Conductor is a fully managed service that you can use to customize a [pro forma](https://docs.aws.amazon.com/billingconductor/latest/userguide/understanding-eb.html#eb-other-definitions) version of your billing data each month, to accurately show or chargeback your end customers. Amazon Web Services Billing Conductor doesn't change the way you're billed by Amazon Web Services each month by design. Instead, it provides you with a mechanism to configure, generate, and display rates to certain customers over a given billing period. You can also analyze the difference between the rates you apply to your accounting groupings relative to your actual rates from Amazon Web Services. As a result of your Amazon Web Services Billing Conductor configuration, the payer account can also see the custom rate applied on the billing details page of the [Amazon Web Services Billing console](https://console.aws.amazon.com/billing), or configure a cost and usage report per billing group. This documentation shows how you can configure Amazon Web Services Billing Conductor using its API. For more information about using the [Amazon Web Services Billing Conductor](https://console.aws.amazon.com/billingconductor/) user interface, see the [ Amazon Web Services Billing Conductor User Guide](https://docs.aws.amazon.com/billingconductor/latest/userguide/what-is-billingconductor.html). diff --git a/Sources/Services/AWSBraket/BraketClient.swift b/Sources/Services/AWSBraket/BraketClient.swift index 93f6b9507ca..c36b5ea4f7e 100644 --- a/Sources/Services/AWSBraket/BraketClient.swift +++ b/Sources/Services/AWSBraket/BraketClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class BraketClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await BraketClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try BraketClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class BraketClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class BraketClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class BraketClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BraketClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class BraketClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BraketClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSBraket/BraketClientProtocol.swift b/Sources/Services/AWSBraket/BraketClientProtocol.swift index af91e3700e2..7e7cdd7a739 100644 --- a/Sources/Services/AWSBraket/BraketClientProtocol.swift +++ b/Sources/Services/AWSBraket/BraketClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon Braket API Reference provides information about the operations and structures supported in Amazon Braket. Additional Resources: diff --git a/Sources/Services/AWSBudgets/BudgetsClient.swift b/Sources/Services/AWSBudgets/BudgetsClient.swift index c69f8b9ef0e..46052f9ee65 100644 --- a/Sources/Services/AWSBudgets/BudgetsClient.swift +++ b/Sources/Services/AWSBudgets/BudgetsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class BudgetsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await BudgetsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try BudgetsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class BudgetsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class BudgetsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class BudgetsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BudgetsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class BudgetsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("BudgetsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSBudgets/BudgetsClientProtocol.swift b/Sources/Services/AWSBudgets/BudgetsClientProtocol.swift index dd81eced310..40cfeab4ff5 100644 --- a/Sources/Services/AWSBudgets/BudgetsClientProtocol.swift +++ b/Sources/Services/AWSBudgets/BudgetsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Use the Amazon Web Services Budgets API to plan your service usage, service costs, and instance reservations. This API reference provides descriptions, syntax, and usage examples for each of the actions and data types for the Amazon Web Services Budgets feature. Budgets provide you with a way to see the following information: diff --git a/Sources/Services/AWSChime/ChimeClient.swift b/Sources/Services/AWSChime/ChimeClient.swift index a26ebf5e99d..519064666a3 100644 --- a/Sources/Services/AWSChime/ChimeClient.swift +++ b/Sources/Services/AWSChime/ChimeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ChimeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ChimeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ChimeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ChimeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ChimeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ChimeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ChimeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSChime/ChimeClientProtocol.swift b/Sources/Services/AWSChime/ChimeClientProtocol.swift index cd901703a43..2c8cfa17b6f 100644 --- a/Sources/Services/AWSChime/ChimeClientProtocol.swift +++ b/Sources/Services/AWSChime/ChimeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon Chime API (application programming interface) is designed for developers to perform key tasks, such as creating and managing Amazon Chime accounts, users, and Voice Connectors. This guide provides detailed information about the Amazon Chime API, including operations, types, inputs and outputs, and error codes. It also includes API actions for use with the Amazon Chime SDK, which developers use to build their own communication applications. For more information about the Amazon Chime SDK, see [ Using the Amazon Chime SDK ](https://docs.aws.amazon.com/chime/latest/dg/meetings-sdk.html) in the Amazon Chime Developer Guide. You can use an AWS SDK, the AWS Command Line Interface (AWS CLI), or the REST API to make API calls. We recommend using an AWS SDK or the AWS CLI. Each API operation includes links to information about using it with a language-specific AWS SDK or the AWS CLI. Using an AWS SDK You don't need to write code to calculate a signature for request authentication. The SDK clients authenticate your requests by using access keys that you provide. For more information about AWS SDKs, see the [AWS Developer Center](http://aws.amazon.com/developer/). Using the AWS CLI Use your access keys with the AWS CLI to make API calls. For information about setting up the AWS CLI, see [Installing the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) in the AWS Command Line Interface User Guide. For a list of available Amazon Chime commands, see the [Amazon Chime commands](https://docs.aws.amazon.com/cli/latest/reference/chime/index.html) in the AWS CLI Command Reference. Using REST APIs If you use REST to make API calls, you must authenticate your request by providing a signature. Amazon Chime supports signature version 4. For more information, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the Amazon Web Services General Reference. When making REST API calls, use the service name chime and REST endpoint https://service.chime.aws.amazon.com. Administrative permissions are controlled using AWS Identity and Access Management (IAM). For more information, see [Identity and Access Management for Amazon Chime](https://docs.aws.amazon.com/chime/latest/ag/security-iam.html) in the Amazon Chime Administration Guide. diff --git a/Sources/Services/AWSChimeSDKIdentity/ChimeSDKIdentityClient.swift b/Sources/Services/AWSChimeSDKIdentity/ChimeSDKIdentityClient.swift index 17972d242ea..0e72cf07870 100644 --- a/Sources/Services/AWSChimeSDKIdentity/ChimeSDKIdentityClient.swift +++ b/Sources/Services/AWSChimeSDKIdentity/ChimeSDKIdentityClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ChimeSDKIdentityClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ChimeSDKIdentityClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ChimeSDKIdentityClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ChimeSDKIdentityClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ChimeSDKIdentityClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ChimeSDKIdentityClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKIdentityClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ChimeSDKIdentityClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKIdentityClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSChimeSDKIdentity/ChimeSDKIdentityClientProtocol.swift b/Sources/Services/AWSChimeSDKIdentity/ChimeSDKIdentityClientProtocol.swift index bb6df77450c..6f463c9565c 100644 --- a/Sources/Services/AWSChimeSDKIdentity/ChimeSDKIdentityClientProtocol.swift +++ b/Sources/Services/AWSChimeSDKIdentity/ChimeSDKIdentityClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon Chime SDK Identity APIs in this section allow software developers to create and manage unique instances of their messaging applications. These APIs provide the overarching framework for creating and sending messages. For more information about the identity APIs, refer to [Amazon Chime SDK identity](https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html). diff --git a/Sources/Services/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClient.swift b/Sources/Services/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClient.swift index df4eb5da6ec..f8bd9eaef5a 100644 --- a/Sources/Services/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClient.swift +++ b/Sources/Services/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ChimeSDKMediaPipelinesClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ChimeSDKMediaPipelinesClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ChimeSDKMediaPipelinesClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ChimeSDKMediaPipelinesClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ChimeSDKMediaPipelinesClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ChimeSDKMediaPipelinesClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKMediaPipelinesClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ChimeSDKMediaPipelinesClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKMediaPipelinesClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClientProtocol.swift b/Sources/Services/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClientProtocol.swift index c1a40e6cdfe..2ec993d92ac 100644 --- a/Sources/Services/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClientProtocol.swift +++ b/Sources/Services/AWSChimeSDKMediaPipelines/ChimeSDKMediaPipelinesClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon Chime SDK media pipeline APIs in this section allow software developers to create Amazon Chime SDK media pipelines that capture, concatenate, or stream your Amazon Chime SDK meetings. For more information about media pipelines, see [Amazon Chime SDK media pipelines](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Media_Pipelines.html). diff --git a/Sources/Services/AWSChimeSDKMeetings/ChimeSDKMeetingsClient.swift b/Sources/Services/AWSChimeSDKMeetings/ChimeSDKMeetingsClient.swift index 0b26555f55a..a13b2181173 100644 --- a/Sources/Services/AWSChimeSDKMeetings/ChimeSDKMeetingsClient.swift +++ b/Sources/Services/AWSChimeSDKMeetings/ChimeSDKMeetingsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ChimeSDKMeetingsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ChimeSDKMeetingsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ChimeSDKMeetingsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ChimeSDKMeetingsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ChimeSDKMeetingsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ChimeSDKMeetingsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKMeetingsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ChimeSDKMeetingsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKMeetingsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSChimeSDKMeetings/ChimeSDKMeetingsClientProtocol.swift b/Sources/Services/AWSChimeSDKMeetings/ChimeSDKMeetingsClientProtocol.swift index 3b8069ae0e9..6386c67acab 100644 --- a/Sources/Services/AWSChimeSDKMeetings/ChimeSDKMeetingsClientProtocol.swift +++ b/Sources/Services/AWSChimeSDKMeetings/ChimeSDKMeetingsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon Chime SDK meetings APIs in this section allow software developers to create Amazon Chime SDK meetings, set the AWS Regions for meetings, create and manage users, and send and receive meeting notifications. For more information about the meeting APIs, see [Amazon Chime SDK meetings](https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html). diff --git a/Sources/Services/AWSChimeSDKMessaging/ChimeSDKMessagingClient.swift b/Sources/Services/AWSChimeSDKMessaging/ChimeSDKMessagingClient.swift index 2dec989606e..23addcfd7d3 100644 --- a/Sources/Services/AWSChimeSDKMessaging/ChimeSDKMessagingClient.swift +++ b/Sources/Services/AWSChimeSDKMessaging/ChimeSDKMessagingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ChimeSDKMessagingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ChimeSDKMessagingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ChimeSDKMessagingClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ChimeSDKMessagingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ChimeSDKMessagingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ChimeSDKMessagingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKMessagingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ChimeSDKMessagingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKMessagingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSChimeSDKMessaging/ChimeSDKMessagingClientProtocol.swift b/Sources/Services/AWSChimeSDKMessaging/ChimeSDKMessagingClientProtocol.swift index 2d534ac187f..6683efe6177 100644 --- a/Sources/Services/AWSChimeSDKMessaging/ChimeSDKMessagingClientProtocol.swift +++ b/Sources/Services/AWSChimeSDKMessaging/ChimeSDKMessagingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon Chime SDK Messaging APIs in this section allow software developers to send and receive messages in custom messaging applications. These APIs depend on the frameworks provided by the Amazon Chime SDK Identity APIs. For more information about the messaging APIs, see [Amazon Chime SDK messaging](https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html). diff --git a/Sources/Services/AWSChimeSDKVoice/ChimeSDKVoiceClient.swift b/Sources/Services/AWSChimeSDKVoice/ChimeSDKVoiceClient.swift index b0fba81c3d7..75695f79a23 100644 --- a/Sources/Services/AWSChimeSDKVoice/ChimeSDKVoiceClient.swift +++ b/Sources/Services/AWSChimeSDKVoice/ChimeSDKVoiceClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ChimeSDKVoiceClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ChimeSDKVoiceClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ChimeSDKVoiceClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ChimeSDKVoiceClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ChimeSDKVoiceClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ChimeSDKVoiceClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKVoiceClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ChimeSDKVoiceClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ChimeSDKVoiceClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSChimeSDKVoice/ChimeSDKVoiceClientProtocol.swift b/Sources/Services/AWSChimeSDKVoice/ChimeSDKVoiceClientProtocol.swift index f9e5b3e4bc4..b68b5abf598 100644 --- a/Sources/Services/AWSChimeSDKVoice/ChimeSDKVoiceClientProtocol.swift +++ b/Sources/Services/AWSChimeSDKVoice/ChimeSDKVoiceClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon Chime SDK telephony APIs in this section enable developers to create PSTN calling solutions that use Amazon Chime SDK Voice Connectors, and Amazon Chime SDK SIP media applications. Developers can also order and manage phone numbers, create and manage Voice Connectors and SIP media applications, and run voice analytics. diff --git a/Sources/Services/AWSCleanRooms/CleanRoomsClient.swift b/Sources/Services/AWSCleanRooms/CleanRoomsClient.swift index 25223416136..3767c252281 100644 --- a/Sources/Services/AWSCleanRooms/CleanRoomsClient.swift +++ b/Sources/Services/AWSCleanRooms/CleanRoomsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CleanRoomsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CleanRoomsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CleanRoomsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CleanRoomsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CleanRoomsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CleanRoomsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CleanRoomsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CleanRoomsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CleanRoomsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCleanRooms/CleanRoomsClientProtocol.swift b/Sources/Services/AWSCleanRooms/CleanRoomsClientProtocol.swift index c5389ba4d65..237e8c3ad9f 100644 --- a/Sources/Services/AWSCleanRooms/CleanRoomsClientProtocol.swift +++ b/Sources/Services/AWSCleanRooms/CleanRoomsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the AWS Clean Rooms API Reference. AWS Clean Rooms is an AWS service that helps multiple parties to join their data together in a secure collaboration workspace. In the collaboration, members who can query and receive results can get insights into the collective datasets without either party getting access to the other party's raw data. To learn more about AWS Clean Rooms concepts, procedures, and best practices, see the [AWS Clean Rooms User Guide](https://docs.aws.amazon.com/clean-rooms/latest/userguide/what-is.html). diff --git a/Sources/Services/AWSCloud9/Cloud9Client.swift b/Sources/Services/AWSCloud9/Cloud9Client.swift index 478b9e1f188..b3c468d7c46 100644 --- a/Sources/Services/AWSCloud9/Cloud9Client.swift +++ b/Sources/Services/AWSCloud9/Cloud9Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class Cloud9Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await Cloud9ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try Cloud9ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class Cloud9Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class Cloud9Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class Cloud9Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Cloud9Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class Cloud9Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Cloud9Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloud9/Cloud9ClientProtocol.swift b/Sources/Services/AWSCloud9/Cloud9ClientProtocol.swift index 63df47a8960..9bac7af062e 100644 --- a/Sources/Services/AWSCloud9/Cloud9ClientProtocol.swift +++ b/Sources/Services/AWSCloud9/Cloud9ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Cloud9 Cloud9 is a collection of tools that you can use to code, build, run, test, debug, and release software in the cloud. For more information about Cloud9, see the [Cloud9 User Guide](https://docs.aws.amazon.com/cloud9/latest/user-guide). Cloud9 supports these operations: diff --git a/Sources/Services/AWSCloudControl/CloudControlClient.swift b/Sources/Services/AWSCloudControl/CloudControlClient.swift index b237abbb24f..0f995e07e62 100644 --- a/Sources/Services/AWSCloudControl/CloudControlClient.swift +++ b/Sources/Services/AWSCloudControl/CloudControlClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CloudControlClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudControlClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudControlClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CloudControlClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CloudControlClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CloudControlClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudControlClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CloudControlClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudControlClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudControl/CloudControlClientProtocol.swift b/Sources/Services/AWSCloudControl/CloudControlClientProtocol.swift index 45d9f79f168..c0446e85af8 100644 --- a/Sources/Services/AWSCloudControl/CloudControlClientProtocol.swift +++ b/Sources/Services/AWSCloudControl/CloudControlClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// For more information about Amazon Web Services Cloud Control API, see the [Amazon Web Services Cloud Control API User Guide](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html). diff --git a/Sources/Services/AWSCloudDirectory/CloudDirectoryClient.swift b/Sources/Services/AWSCloudDirectory/CloudDirectoryClient.swift index 98d2c4e7be5..8cf57e68081 100644 --- a/Sources/Services/AWSCloudDirectory/CloudDirectoryClient.swift +++ b/Sources/Services/AWSCloudDirectory/CloudDirectoryClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CloudDirectoryClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudDirectoryClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudDirectoryClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CloudDirectoryClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CloudDirectoryClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CloudDirectoryClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudDirectoryClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CloudDirectoryClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudDirectoryClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudDirectory/CloudDirectoryClientProtocol.swift b/Sources/Services/AWSCloudDirectory/CloudDirectoryClientProtocol.swift index 25be5a011d5..49116ca77b3 100644 --- a/Sources/Services/AWSCloudDirectory/CloudDirectoryClientProtocol.swift +++ b/Sources/Services/AWSCloudDirectory/CloudDirectoryClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Cloud Directory Amazon Cloud Directory is a component of the AWS Directory Service that simplifies the development and management of cloud-scale web, mobile, and IoT applications. This guide describes the Cloud Directory operations that you can call programmatically and includes detailed information on data types and errors. For information about Cloud Directory features, see [AWS Directory Service](https://aws.amazon.com/directoryservice/) and the [Amazon Cloud Directory Developer Guide](https://docs.aws.amazon.com/clouddirectory/latest/developerguide/what_is_cloud_directory.html). diff --git a/Sources/Services/AWSCloudFormation/CloudFormationClient.swift b/Sources/Services/AWSCloudFormation/CloudFormationClient.swift index dfd44e72aec..fd5e27682a4 100644 --- a/Sources/Services/AWSCloudFormation/CloudFormationClient.swift +++ b/Sources/Services/AWSCloudFormation/CloudFormationClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class CloudFormationClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudFormationClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudFormationClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class CloudFormationClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class CloudFormationClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class CloudFormationClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudFormationClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class CloudFormationClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudFormationClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudFormation/CloudFormationClientProtocol.swift b/Sources/Services/AWSCloudFormation/CloudFormationClientProtocol.swift index 419584cb8cc..1288e2024f2 100644 --- a/Sources/Services/AWSCloudFormation/CloudFormationClientProtocol.swift +++ b/Sources/Services/AWSCloudFormation/CloudFormationClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// CloudFormation CloudFormation allows you to create and manage Amazon Web Services infrastructure deployments predictably and repeatedly. You can use CloudFormation to leverage Amazon Web Services products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification Service, Elastic Load Balancing, and Auto Scaling to build highly reliable, highly scalable, cost-effective applications without creating or configuring the underlying Amazon Web Services infrastructure. With CloudFormation, you declare all your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you. For more information about CloudFormation, see the [CloudFormation product page](http://aws.amazon.com/cloudformation/). CloudFormation makes use of other Amazon Web Services products. If you need additional technical information about a specific Amazon Web Services product, you can find the product's technical documentation at [docs.aws.amazon.com](https://docs.aws.amazon.com/). diff --git a/Sources/Services/AWSCloudFront/CloudFrontClient.swift b/Sources/Services/AWSCloudFront/CloudFrontClient.swift index df3fbc4eb3f..65af3e858fe 100644 --- a/Sources/Services/AWSCloudFront/CloudFrontClient.swift +++ b/Sources/Services/AWSCloudFront/CloudFrontClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -28,8 +28,8 @@ public class CloudFrontClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudFrontClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudFrontClientConfiguration(region: region) self.init(config: config) } @@ -48,7 +48,7 @@ public class CloudFrontClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -59,8 +59,9 @@ public class CloudFrontClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -71,11 +72,9 @@ public class CloudFrontClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudFrontClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -84,21 +83,84 @@ public class CloudFrontClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudFrontClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudFront/CloudFrontClientProtocol.swift b/Sources/Services/AWSCloudFront/CloudFrontClientProtocol.swift index 76436fe2513..478b2dcb4eb 100644 --- a/Sources/Services/AWSCloudFront/CloudFrontClientProtocol.swift +++ b/Sources/Services/AWSCloudFront/CloudFrontClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon CloudFront This is the Amazon CloudFront API Reference. This guide is for developers who need detailed information about CloudFront API actions, data types, and errors. For detailed information about CloudFront features, see the Amazon CloudFront Developer Guide. diff --git a/Sources/Services/AWSCloudHSM/CloudHSMClient.swift b/Sources/Services/AWSCloudHSM/CloudHSMClient.swift index 2cebf26abee..3a6f37df131 100644 --- a/Sources/Services/AWSCloudHSM/CloudHSMClient.swift +++ b/Sources/Services/AWSCloudHSM/CloudHSMClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CloudHSMClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudHSMClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudHSMClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CloudHSMClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CloudHSMClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CloudHSMClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudHSMClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CloudHSMClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudHSMClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudHSM/CloudHSMClientProtocol.swift b/Sources/Services/AWSCloudHSM/CloudHSMClientProtocol.swift index dfadd015cb7..0b7e01b4bca 100644 --- a/Sources/Services/AWSCloudHSM/CloudHSMClientProtocol.swift +++ b/Sources/Services/AWSCloudHSM/CloudHSMClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS CloudHSM Service This is documentation for AWS CloudHSM Classic. For more information, see [AWS CloudHSM Classic FAQs](http://aws.amazon.com/cloudhsm/faqs-classic/), the [AWS CloudHSM Classic User Guide](https://docs.aws.amazon.com/cloudhsm/classic/userguide/), and the [AWS CloudHSM Classic API Reference](https://docs.aws.amazon.com/cloudhsm/classic/APIReference/). For information about the current version of AWS CloudHSM, see [AWS CloudHSM](http://aws.amazon.com/cloudhsm/), the [AWS CloudHSM User Guide](https://docs.aws.amazon.com/cloudhsm/latest/userguide/), and the [AWS CloudHSM API Reference](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/). diff --git a/Sources/Services/AWSCloudHSMV2/CloudHSMV2Client.swift b/Sources/Services/AWSCloudHSMV2/CloudHSMV2Client.swift index 04bb7c7a1db..d921a0a6850 100644 --- a/Sources/Services/AWSCloudHSMV2/CloudHSMV2Client.swift +++ b/Sources/Services/AWSCloudHSMV2/CloudHSMV2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CloudHSMV2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudHSMV2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudHSMV2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CloudHSMV2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CloudHSMV2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CloudHSMV2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudHSMV2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CloudHSMV2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudHSMV2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudHSMV2/CloudHSMV2ClientProtocol.swift b/Sources/Services/AWSCloudHSMV2/CloudHSMV2ClientProtocol.swift index f3db7b0ab43..ae4e995c992 100644 --- a/Sources/Services/AWSCloudHSMV2/CloudHSMV2ClientProtocol.swift +++ b/Sources/Services/AWSCloudHSMV2/CloudHSMV2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// For more information about AWS CloudHSM, see [AWS CloudHSM](http://aws.amazon.com/cloudhsm/) and the [AWS CloudHSM User Guide](https://docs.aws.amazon.com/cloudhsm/latest/userguide/). diff --git a/Sources/Services/AWSCloudSearch/CloudSearchClient.swift b/Sources/Services/AWSCloudSearch/CloudSearchClient.swift index f434baeeff0..95585f84df6 100644 --- a/Sources/Services/AWSCloudSearch/CloudSearchClient.swift +++ b/Sources/Services/AWSCloudSearch/CloudSearchClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class CloudSearchClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudSearchClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudSearchClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class CloudSearchClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class CloudSearchClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class CloudSearchClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudSearchClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class CloudSearchClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudSearchClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudSearch/CloudSearchClientProtocol.swift b/Sources/Services/AWSCloudSearch/CloudSearchClientProtocol.swift index 790924a07b2..9b4840f09d8 100644 --- a/Sources/Services/AWSCloudSearch/CloudSearchClientProtocol.swift +++ b/Sources/Services/AWSCloudSearch/CloudSearchClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon CloudSearch Configuration Service You use the Amazon CloudSearch configuration service to create, configure, and manage search domains. Configuration service requests are submitted using the AWS Query protocol. AWS Query requests are HTTP or HTTPS requests submitted via HTTP GET or POST with a query parameter named Action. The endpoint for configuration service requests is region-specific: cloudsearch.region.amazonaws.com. For example, cloudsearch.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see [Regions and Endpoints](http://docs.aws.amazon.com/general/latest/gr/rande.html#cloudsearch_region). diff --git a/Sources/Services/AWSCloudSearchDomain/CloudSearchDomainClient.swift b/Sources/Services/AWSCloudSearchDomain/CloudSearchDomainClient.swift index 59960c82e4b..a065537d682 100644 --- a/Sources/Services/AWSCloudSearchDomain/CloudSearchDomainClient.swift +++ b/Sources/Services/AWSCloudSearchDomain/CloudSearchDomainClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CloudSearchDomainClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudSearchDomainClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudSearchDomainClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CloudSearchDomainClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CloudSearchDomainClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CloudSearchDomainClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudSearchDomainClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CloudSearchDomainClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudSearchDomainClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudSearchDomain/CloudSearchDomainClientProtocol.swift b/Sources/Services/AWSCloudSearchDomain/CloudSearchDomainClientProtocol.swift index 630719a2489..d30138582ae 100644 --- a/Sources/Services/AWSCloudSearchDomain/CloudSearchDomainClientProtocol.swift +++ b/Sources/Services/AWSCloudSearchDomain/CloudSearchDomainClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// You use the AmazonCloudSearch2013 API to upload documents to a search domain and search those documents. The endpoints for submitting UploadDocuments, Search, and Suggest requests are domain-specific. To get the endpoints for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. The domain endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. You submit suggest requests to the search endpoint. For more information, see the [Amazon CloudSearch Developer Guide](http://docs.aws.amazon.com/cloudsearch/latest/developerguide). diff --git a/Sources/Services/AWSCloudTrail/CloudTrailClient.swift b/Sources/Services/AWSCloudTrail/CloudTrailClient.swift index ade30203083..9f354b8bee5 100644 --- a/Sources/Services/AWSCloudTrail/CloudTrailClient.swift +++ b/Sources/Services/AWSCloudTrail/CloudTrailClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CloudTrailClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudTrailClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudTrailClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CloudTrailClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CloudTrailClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CloudTrailClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudTrailClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CloudTrailClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudTrailClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudTrail/CloudTrailClientProtocol.swift b/Sources/Services/AWSCloudTrail/CloudTrailClientProtocol.swift index fa511fc078e..db403294e63 100644 --- a/Sources/Services/AWSCloudTrail/CloudTrailClientProtocol.swift +++ b/Sources/Services/AWSCloudTrail/CloudTrailClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// CloudTrail This is the CloudTrail API Reference. It provides descriptions of actions, data types, common parameters, and common errors for CloudTrail. CloudTrail is a web service that records Amazon Web Services API calls for your Amazon Web Services account and delivers log files to an Amazon S3 bucket. The recorded information includes the identity of the user, the start time of the Amazon Web Services API call, the source IP address, the request parameters, and the response elements returned by the service. As an alternative to the API, you can use one of the Amazon Web Services SDKs, which consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs provide programmatic access to CloudTrail. For example, the SDKs handle cryptographically signing requests, managing errors, and retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to download and install them, see [Tools to Build on Amazon Web Services](http://aws.amazon.com/tools/). See the [CloudTrail User Guide](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) for information about the data that is included with each Amazon Web Services API call listed in the log files. diff --git a/Sources/Services/AWSCloudTrailData/CloudTrailDataClient.swift b/Sources/Services/AWSCloudTrailData/CloudTrailDataClient.swift index 0e5f383e59b..b709093721a 100644 --- a/Sources/Services/AWSCloudTrailData/CloudTrailDataClient.swift +++ b/Sources/Services/AWSCloudTrailData/CloudTrailDataClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CloudTrailDataClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudTrailDataClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudTrailDataClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CloudTrailDataClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CloudTrailDataClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CloudTrailDataClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudTrailDataClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CloudTrailDataClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudTrailDataClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudTrailData/CloudTrailDataClientProtocol.swift b/Sources/Services/AWSCloudTrailData/CloudTrailDataClientProtocol.swift index 61499b84487..3843991f2d7 100644 --- a/Sources/Services/AWSCloudTrailData/CloudTrailDataClientProtocol.swift +++ b/Sources/Services/AWSCloudTrailData/CloudTrailDataClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The CloudTrail Data Service lets you ingest events into CloudTrail from any source in your hybrid environments, such as in-house or SaaS applications hosted on-premises or in the cloud, virtual machines, or containers. You can store, access, analyze, troubleshoot and take action on this data without maintaining multiple log aggregators and reporting tools. After you run PutAuditEvents to ingest your application activity into CloudTrail, you can use CloudTrail Lake to search, query, and analyze the data that is logged from your applications. diff --git a/Sources/Services/AWSCloudWatch/CloudWatchClient.swift b/Sources/Services/AWSCloudWatch/CloudWatchClient.swift index 55bcf0e3af9..d7597471eca 100644 --- a/Sources/Services/AWSCloudWatch/CloudWatchClient.swift +++ b/Sources/Services/AWSCloudWatch/CloudWatchClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class CloudWatchClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudWatchClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudWatchClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class CloudWatchClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class CloudWatchClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class CloudWatchClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudWatchClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class CloudWatchClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudWatchClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudWatch/CloudWatchClientProtocol.swift b/Sources/Services/AWSCloudWatch/CloudWatchClientProtocol.swift index 6f32e0c3e01..422c172e3fe 100644 --- a/Sources/Services/AWSCloudWatch/CloudWatchClientProtocol.swift +++ b/Sources/Services/AWSCloudWatch/CloudWatchClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon CloudWatch monitors your Amazon Web Services (Amazon Web Services) resources and the applications you run on Amazon Web Services in real time. You can use CloudWatch to collect and track metrics, which are the variables you want to measure for your resources and applications. CloudWatch alarms send notifications or automatically change the resources you are monitoring based on rules that you define. For example, you can monitor the CPU usage and disk reads and writes of your Amazon EC2 instances. Then, use this data to determine whether you should launch additional instances to handle increased load. You can also use this data to stop under-used instances to save money. In addition to monitoring the built-in metrics that come with Amazon Web Services, you can monitor your own custom metrics. With CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health. diff --git a/Sources/Services/AWSCloudWatchEvents/CloudWatchEventsClient.swift b/Sources/Services/AWSCloudWatchEvents/CloudWatchEventsClient.swift index b4aeeedded5..54daa9e817a 100644 --- a/Sources/Services/AWSCloudWatchEvents/CloudWatchEventsClient.swift +++ b/Sources/Services/AWSCloudWatchEvents/CloudWatchEventsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CloudWatchEventsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudWatchEventsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudWatchEventsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CloudWatchEventsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CloudWatchEventsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CloudWatchEventsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudWatchEventsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CloudWatchEventsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudWatchEventsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudWatchEvents/CloudWatchEventsClientProtocol.swift b/Sources/Services/AWSCloudWatchEvents/CloudWatchEventsClientProtocol.swift index b76d1b5df01..644f29bc0a5 100644 --- a/Sources/Services/AWSCloudWatchEvents/CloudWatchEventsClientProtocol.swift +++ b/Sources/Services/AWSCloudWatchEvents/CloudWatchEventsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EventBridge helps you to respond to state changes in your Amazon Web Services resources. When your resources change state, they automatically send events to an event stream. You can create rules that match selected events in the stream and route them to targets to take action. You can also use rules to take action on a predetermined schedule. For example, you can configure rules to: diff --git a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift index ebaa97fd024..c7832436e03 100644 --- a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift +++ b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CloudWatchLogsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CloudWatchLogsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CloudWatchLogsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CloudWatchLogsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CloudWatchLogsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CloudWatchLogsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudWatchLogsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CloudWatchLogsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CloudWatchLogsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift index 0bd2ad0c74d..ee90e235d89 100644 --- a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift +++ b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// You can use Amazon CloudWatch Logs to monitor, store, and access your log files from EC2 instances, CloudTrail, and other sources. You can then retrieve the associated log data from CloudWatch Logs using the CloudWatch console. Alternatively, you can use CloudWatch Logs commands in the Amazon Web Services CLI, CloudWatch Logs API, or CloudWatch Logs SDK. You can use CloudWatch Logs to: diff --git a/Sources/Services/AWSCodeBuild/CodeBuildClient.swift b/Sources/Services/AWSCodeBuild/CodeBuildClient.swift index 130c05b2ec1..4c1c5f6da4a 100644 --- a/Sources/Services/AWSCodeBuild/CodeBuildClient.swift +++ b/Sources/Services/AWSCodeBuild/CodeBuildClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodeBuildClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodeBuildClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodeBuildClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodeBuildClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodeBuildClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodeBuildClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeBuildClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodeBuildClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeBuildClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodeBuild/CodeBuildClientProtocol.swift b/Sources/Services/AWSCodeBuild/CodeBuildClientProtocol.swift index 4b44b9b1609..9344c296497 100644 --- a/Sources/Services/AWSCodeBuild/CodeBuildClientProtocol.swift +++ b/Sources/Services/AWSCodeBuild/CodeBuildClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// CodeBuild CodeBuild is a fully managed build service in the cloud. CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for the most popular programming languages and build tools, such as Apache Maven, Gradle, and more. You can also fully customize build environments in CodeBuild to use your own build tools. CodeBuild scales automatically to meet peak build requests. You pay only for the build time you consume. For more information about CodeBuild, see the [CodeBuild User Guide](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html). diff --git a/Sources/Services/AWSCodeCatalyst/CodeCatalystClient.swift b/Sources/Services/AWSCodeCatalyst/CodeCatalystClient.swift index b08266c226a..5fed16d78ff 100644 --- a/Sources/Services/AWSCodeCatalyst/CodeCatalystClient.swift +++ b/Sources/Services/AWSCodeCatalyst/CodeCatalystClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodeCatalystClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodeCatalystClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodeCatalystClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodeCatalystClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodeCatalystClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodeCatalystClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeCatalystClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodeCatalystClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeCatalystClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodeCatalyst/CodeCatalystClientProtocol.swift b/Sources/Services/AWSCodeCatalyst/CodeCatalystClientProtocol.swift index 287f35f99a0..bffe93eaac4 100644 --- a/Sources/Services/AWSCodeCatalyst/CodeCatalystClientProtocol.swift +++ b/Sources/Services/AWSCodeCatalyst/CodeCatalystClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon CodeCatalyst is in preview release and subject to change. Welcome to the Amazon CodeCatalyst API reference. This reference provides descriptions of operations and data types for Amazon CodeCatalyst. You can use the Amazon CodeCatalyst API to work with the following objects. Dev Environments and the Amazon Web Services Toolkits, by calling the following: diff --git a/Sources/Services/AWSCodeCommit/CodeCommitClient.swift b/Sources/Services/AWSCodeCommit/CodeCommitClient.swift index 5aecace6f4f..1f7677fcbea 100644 --- a/Sources/Services/AWSCodeCommit/CodeCommitClient.swift +++ b/Sources/Services/AWSCodeCommit/CodeCommitClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodeCommitClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodeCommitClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodeCommitClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodeCommitClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodeCommitClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodeCommitClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeCommitClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodeCommitClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeCommitClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodeCommit/CodeCommitClientProtocol.swift b/Sources/Services/AWSCodeCommit/CodeCommitClientProtocol.swift index 84882e3c1b5..d02ff305f1e 100644 --- a/Sources/Services/AWSCodeCommit/CodeCommitClientProtocol.swift +++ b/Sources/Services/AWSCodeCommit/CodeCommitClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS CodeCommit This is the AWS CodeCommit API Reference. This reference provides descriptions of the operations and data types for AWS CodeCommit API along with usage examples. You can use the AWS CodeCommit API to work with the following objects: Repositories, by calling the following: diff --git a/Sources/Services/AWSCodeDeploy/CodeDeployClient.swift b/Sources/Services/AWSCodeDeploy/CodeDeployClient.swift index 9d432a715a1..da875e9c2ed 100644 --- a/Sources/Services/AWSCodeDeploy/CodeDeployClient.swift +++ b/Sources/Services/AWSCodeDeploy/CodeDeployClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodeDeployClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodeDeployClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodeDeployClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodeDeployClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodeDeployClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodeDeployClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeDeployClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodeDeployClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeDeployClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodeDeploy/CodeDeployClientProtocol.swift b/Sources/Services/AWSCodeDeploy/CodeDeployClientProtocol.swift index a7cd424e2eb..773ba1d8907 100644 --- a/Sources/Services/AWSCodeDeploy/CodeDeployClientProtocol.swift +++ b/Sources/Services/AWSCodeDeploy/CodeDeployClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances, on-premises instances running in your own facility, serverless Lambda functions, or applications in an Amazon ECS service. You can deploy a nearly unlimited variety of application content, such as an updated Lambda function, updated applications in an Amazon ECS service, code, web and configuration files, executables, packages, scripts, multimedia files, and so on. CodeDeploy can deploy application content stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories. You do not need to make changes to your existing code before you can use CodeDeploy. CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications, without many of the risks associated with error-prone manual deployments. CodeDeploy Components Use the information in this guide to help you work with the following CodeDeploy components: diff --git a/Sources/Services/AWSCodeGuruProfiler/CodeGuruProfilerClient.swift b/Sources/Services/AWSCodeGuruProfiler/CodeGuruProfilerClient.swift index efb89b978ab..26b636fef03 100644 --- a/Sources/Services/AWSCodeGuruProfiler/CodeGuruProfilerClient.swift +++ b/Sources/Services/AWSCodeGuruProfiler/CodeGuruProfilerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodeGuruProfilerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodeGuruProfilerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodeGuruProfilerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodeGuruProfilerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodeGuruProfilerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodeGuruProfilerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeGuruProfilerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodeGuruProfilerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeGuruProfilerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodeGuruProfiler/CodeGuruProfilerClientProtocol.swift b/Sources/Services/AWSCodeGuruProfiler/CodeGuruProfilerClientProtocol.swift index 98a1d8dd78d..d5a5d6d8d61 100644 --- a/Sources/Services/AWSCodeGuruProfiler/CodeGuruProfilerClientProtocol.swift +++ b/Sources/Services/AWSCodeGuruProfiler/CodeGuruProfilerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This section provides documentation for the Amazon CodeGuru Profiler API operations. Amazon CodeGuru Profiler collects runtime performance data from your live applications, and provides recommendations that can help you fine-tune your application performance. Using machine learning algorithms, CodeGuru Profiler can help you find your most expensive lines of code and suggest ways you can improve efficiency and remove CPU bottlenecks. Amazon CodeGuru Profiler provides different visualizations of profiling data to help you identify what code is running on the CPU, see how much time is consumed, and suggest ways to reduce CPU utilization. Amazon CodeGuru Profiler currently supports applications written in all Java virtual machine (JVM) languages and Python. While CodeGuru Profiler supports both visualizations and recommendations for applications written in Java, it can also generate visualizations and a subset of recommendations for applications written in other JVM languages and Python. For more information, see [What is Amazon CodeGuru Profiler](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) in the Amazon CodeGuru Profiler User Guide. diff --git a/Sources/Services/AWSCodeGuruReviewer/CodeGuruReviewerClient.swift b/Sources/Services/AWSCodeGuruReviewer/CodeGuruReviewerClient.swift index 58b377f156a..3efcbcdb56f 100644 --- a/Sources/Services/AWSCodeGuruReviewer/CodeGuruReviewerClient.swift +++ b/Sources/Services/AWSCodeGuruReviewer/CodeGuruReviewerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodeGuruReviewerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodeGuruReviewerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodeGuruReviewerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodeGuruReviewerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodeGuruReviewerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodeGuruReviewerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeGuruReviewerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodeGuruReviewerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeGuruReviewerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodeGuruReviewer/CodeGuruReviewerClientProtocol.swift b/Sources/Services/AWSCodeGuruReviewer/CodeGuruReviewerClientProtocol.swift index b1b49a98d8a..8d100c75629 100644 --- a/Sources/Services/AWSCodeGuruReviewer/CodeGuruReviewerClientProtocol.swift +++ b/Sources/Services/AWSCodeGuruReviewer/CodeGuruReviewerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This section provides documentation for the Amazon CodeGuru Reviewer API operations. CodeGuru Reviewer is a service that uses program analysis and machine learning to detect potential defects that are difficult for developers to find and recommends fixes in your Java and Python code. By proactively detecting and providing recommendations for addressing code defects and implementing best practices, CodeGuru Reviewer improves the overall quality and maintainability of your code base during the code review stage. For more information about CodeGuru Reviewer, see the [Amazon CodeGuru Reviewer User Guide](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html). To improve the security of your CodeGuru Reviewer API calls, you can establish a private connection between your VPC and CodeGuru Reviewer by creating an interface VPC endpoint. For more information, see [CodeGuru Reviewer and interface VPC endpoints (Amazon Web Services PrivateLink)](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/vpc-interface-endpoints.html) in the Amazon CodeGuru Reviewer User Guide. diff --git a/Sources/Services/AWSCodePipeline/CodePipelineClient.swift b/Sources/Services/AWSCodePipeline/CodePipelineClient.swift index 8173249f23f..4b1b92f9a3b 100644 --- a/Sources/Services/AWSCodePipeline/CodePipelineClient.swift +++ b/Sources/Services/AWSCodePipeline/CodePipelineClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodePipelineClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodePipelineClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodePipelineClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodePipelineClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodePipelineClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodePipelineClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodePipelineClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodePipelineClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodePipelineClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodePipeline/CodePipelineClientProtocol.swift b/Sources/Services/AWSCodePipeline/CodePipelineClientProtocol.swift index 1cd5cda0730..57676336503 100644 --- a/Sources/Services/AWSCodePipeline/CodePipelineClientProtocol.swift +++ b/Sources/Services/AWSCodePipeline/CodePipelineClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS CodePipeline Overview This is the AWS CodePipeline API Reference. This guide provides descriptions of the actions and data types for AWS CodePipeline. Some functionality for your pipeline can only be configured through the API. For more information, see the [AWS CodePipeline User Guide](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html). You can use the AWS CodePipeline API to work with pipelines, stages, actions, and transitions. Pipelines are models of automated release processes. Each pipeline is uniquely named, and consists of stages, actions, and transitions. You can work with pipelines by calling: diff --git a/Sources/Services/AWSCodeStar/CodeStarClient.swift b/Sources/Services/AWSCodeStar/CodeStarClient.swift index 5af7be14eab..b5a9dbc186b 100644 --- a/Sources/Services/AWSCodeStar/CodeStarClient.swift +++ b/Sources/Services/AWSCodeStar/CodeStarClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodeStarClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodeStarClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodeStarClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodeStarClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodeStarClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodeStarClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeStarClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodeStarClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeStarClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodeStar/CodeStarClientProtocol.swift b/Sources/Services/AWSCodeStar/CodeStarClientProtocol.swift index 6fcfc3533ea..7ae5eeec742 100644 --- a/Sources/Services/AWSCodeStar/CodeStarClientProtocol.swift +++ b/Sources/Services/AWSCodeStar/CodeStarClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS CodeStar This is the API reference for AWS CodeStar. This reference provides descriptions of the operations and data types for the AWS CodeStar API along with usage examples. You can use the AWS CodeStar API to work with: Projects and their resources, by calling the following: diff --git a/Sources/Services/AWSCodeStarconnections/CodeStarconnectionsClient.swift b/Sources/Services/AWSCodeStarconnections/CodeStarconnectionsClient.swift index 886a37dc480..96d8ac64316 100644 --- a/Sources/Services/AWSCodeStarconnections/CodeStarconnectionsClient.swift +++ b/Sources/Services/AWSCodeStarconnections/CodeStarconnectionsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodeStarconnectionsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodeStarconnectionsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodeStarconnectionsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodeStarconnectionsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodeStarconnectionsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodeStarconnectionsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeStarconnectionsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodeStarconnectionsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeStarconnectionsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodeStarconnections/CodeStarconnectionsClientProtocol.swift b/Sources/Services/AWSCodeStarconnections/CodeStarconnectionsClientProtocol.swift index f86c591ff57..5303c6a2c5a 100644 --- a/Sources/Services/AWSCodeStarconnections/CodeStarconnectionsClientProtocol.swift +++ b/Sources/Services/AWSCodeStarconnections/CodeStarconnectionsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS CodeStar Connections This AWS CodeStar Connections API Reference provides descriptions and usage examples of the operations and data types for the AWS CodeStar Connections API. You can use the connections API to work with connections and installations. Connections are configurations that you use to connect AWS resources to external code repositories. Each connection is a resource that can be given to services such as CodePipeline to connect to a third-party repository such as Bitbucket. For example, you can add the connection in CodePipeline so that it triggers your pipeline when a code change is made to your third-party code repository. Each connection is named and associated with a unique ARN that is used to reference the connection. When you create a connection, the console initiates a third-party connection handshake. Installations are the apps that are used to conduct this handshake. For example, the installation for the Bitbucket provider type is the Bitbucket app. When you create a connection, you can choose an existing installation or create one. When you want to create a connection to an installed provider type such as GitHub Enterprise Server, you create a host for your connections. You can work with connections by calling: diff --git a/Sources/Services/AWSCodeartifact/CodeartifactClient.swift b/Sources/Services/AWSCodeartifact/CodeartifactClient.swift index f112baddc1b..7218de93239 100644 --- a/Sources/Services/AWSCodeartifact/CodeartifactClient.swift +++ b/Sources/Services/AWSCodeartifact/CodeartifactClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodeartifactClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodeartifactClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodeartifactClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodeartifactClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodeartifactClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodeartifactClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeartifactClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodeartifactClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodeartifactClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodeartifact/CodeartifactClientProtocol.swift b/Sources/Services/AWSCodeartifact/CodeartifactClientProtocol.swift index 9d5f25b6f89..a614a47f628 100644 --- a/Sources/Services/AWSCodeartifact/CodeartifactClientProtocol.swift +++ b/Sources/Services/AWSCodeartifact/CodeartifactClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// CodeArtifact is a fully managed artifact repository compatible with language-native package managers and build tools such as npm, Apache Maven, pip, and dotnet. You can use CodeArtifact to share packages with development teams and pull packages. Packages can be pulled from both public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact repository and another repository, which effectively merges their contents from the point of view of a package manager client. CodeArtifact Components Use the information in this guide to help you work with the following CodeArtifact components: diff --git a/Sources/Services/AWSCodestarnotifications/CodestarnotificationsClient.swift b/Sources/Services/AWSCodestarnotifications/CodestarnotificationsClient.swift index 8fe98e0ae00..833a366df73 100644 --- a/Sources/Services/AWSCodestarnotifications/CodestarnotificationsClient.swift +++ b/Sources/Services/AWSCodestarnotifications/CodestarnotificationsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CodestarnotificationsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CodestarnotificationsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CodestarnotificationsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CodestarnotificationsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CodestarnotificationsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CodestarnotificationsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodestarnotificationsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CodestarnotificationsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CodestarnotificationsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCodestarnotifications/CodestarnotificationsClientProtocol.swift b/Sources/Services/AWSCodestarnotifications/CodestarnotificationsClientProtocol.swift index 2dada698f32..f7ccbc49869 100644 --- a/Sources/Services/AWSCodestarnotifications/CodestarnotificationsClientProtocol.swift +++ b/Sources/Services/AWSCodestarnotifications/CodestarnotificationsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This AWS CodeStar Notifications API Reference provides descriptions and usage examples of the operations and data types for the AWS CodeStar Notifications API. You can use the AWS CodeStar Notifications API to work with the following objects: Notification rules, by calling the following: diff --git a/Sources/Services/AWSCognitoIdentity/CognitoIdentityClient.swift b/Sources/Services/AWSCognitoIdentity/CognitoIdentityClient.swift index 27a8824e938..5911acdc2c2 100644 --- a/Sources/Services/AWSCognitoIdentity/CognitoIdentityClient.swift +++ b/Sources/Services/AWSCognitoIdentity/CognitoIdentityClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CognitoIdentityClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CognitoIdentityClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CognitoIdentityClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CognitoIdentityClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CognitoIdentityClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CognitoIdentityClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CognitoIdentityClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CognitoIdentityClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CognitoIdentityClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCognitoIdentity/CognitoIdentityClientProtocol.swift b/Sources/Services/AWSCognitoIdentity/CognitoIdentityClientProtocol.swift index 0c12b773dbb..3c8bb9cc433 100644 --- a/Sources/Services/AWSCognitoIdentity/CognitoIdentityClientProtocol.swift +++ b/Sources/Services/AWSCognitoIdentity/CognitoIdentityClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Cognito Federated Identities Amazon Cognito Federated Identities is a web service that delivers scoped temporary credentials to mobile devices and other untrusted environments. It uniquely identifies a device and supplies the user with a consistent identity over the lifetime of an application. Using Amazon Cognito Federated Identities, you can enable authentication with one or more third-party identity providers (Facebook, Google, or Login with Amazon) or an Amazon Cognito user pool, and you can also choose to support unauthenticated access from your app. Cognito delivers a unique identifier for each user and acts as an OpenID token provider trusted by AWS Security Token Service (STS) to access temporary, limited-privilege AWS credentials. For a description of the authentication flow from the Amazon Cognito Developer Guide see [Authentication Flow](https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html). For more information see [Amazon Cognito Federated Identities](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html). diff --git a/Sources/Services/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift b/Sources/Services/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift index b3579642be8..f9be71c5b70 100644 --- a/Sources/Services/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift +++ b/Sources/Services/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CognitoIdentityProviderClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CognitoIdentityProviderClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CognitoIdentityProviderClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CognitoIdentityProviderClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CognitoIdentityProviderClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CognitoIdentityProviderClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CognitoIdentityProviderClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CognitoIdentityProviderClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CognitoIdentityProviderClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCognitoIdentityProvider/CognitoIdentityProviderClientProtocol.swift b/Sources/Services/AWSCognitoIdentityProvider/CognitoIdentityProviderClientProtocol.swift index 0afe39de2ae..28f641210ac 100644 --- a/Sources/Services/AWSCognitoIdentityProvider/CognitoIdentityProviderClientProtocol.swift +++ b/Sources/Services/AWSCognitoIdentityProvider/CognitoIdentityProviderClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Using the Amazon Cognito user pools API, you can create a user pool to manage directories and users. You can authenticate a user to obtain tokens related to user identity and access policies. This API reference provides information about user pools in Amazon Cognito user pools. For more information, see the [Amazon Cognito Documentation](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html). diff --git a/Sources/Services/AWSCognitoSync/CognitoSyncClient.swift b/Sources/Services/AWSCognitoSync/CognitoSyncClient.swift index f63e16964ca..37dbacebe5e 100644 --- a/Sources/Services/AWSCognitoSync/CognitoSyncClient.swift +++ b/Sources/Services/AWSCognitoSync/CognitoSyncClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CognitoSyncClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CognitoSyncClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CognitoSyncClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CognitoSyncClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CognitoSyncClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CognitoSyncClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CognitoSyncClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CognitoSyncClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CognitoSyncClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCognitoSync/CognitoSyncClientProtocol.swift b/Sources/Services/AWSCognitoSync/CognitoSyncClientProtocol.swift index b7cb23d60ab..14156273963 100644 --- a/Sources/Services/AWSCognitoSync/CognitoSyncClientProtocol.swift +++ b/Sources/Services/AWSCognitoSync/CognitoSyncClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Cognito Sync Amazon Cognito Sync provides an AWS service and client library that enable cross-device syncing of application-related user data. High-level client libraries are available for both iOS and Android. You can use these libraries to persist data locally so that it's available even if the device is offline. Developer credentials don't need to be stored on the mobile device to access the service. You can use Amazon Cognito to obtain a normalized user ID and credentials. User data is persisted in a dataset that can store up to 1 MB of key-value pairs, and you can have up to 20 datasets per user identity. With Amazon Cognito Sync, the data stored for each identity is accessible only to credentials assigned to that identity. In order to use the Cognito Sync service, you need to make API calls using credentials retrieved with [Amazon Cognito Identity service](http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/Welcome.html). If you want to use Cognito Sync in an Android or iOS application, you will probably want to make API calls via the AWS Mobile SDK. To learn more, see the [Developer Guide for Android](http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-sync.html) and the [Developer Guide for iOS](http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-sync.html). diff --git a/Sources/Services/AWSComprehend/ComprehendClient.swift b/Sources/Services/AWSComprehend/ComprehendClient.swift index f911ee7e1a9..967ffc2955f 100644 --- a/Sources/Services/AWSComprehend/ComprehendClient.swift +++ b/Sources/Services/AWSComprehend/ComprehendClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ComprehendClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ComprehendClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ComprehendClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ComprehendClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ComprehendClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ComprehendClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ComprehendClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ComprehendClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ComprehendClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSComprehend/ComprehendClientProtocol.swift b/Sources/Services/AWSComprehend/ComprehendClientProtocol.swift index b1ac5c9c163..dfee5dd0045 100644 --- a/Sources/Services/AWSComprehend/ComprehendClientProtocol.swift +++ b/Sources/Services/AWSComprehend/ComprehendClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Comprehend is an Amazon Web Services service for gaining insight into the content of documents. Use these actions to determine the topics contained in your documents, the topics they discuss, the predominant sentiment expressed in them, the predominant language used, and more. diff --git a/Sources/Services/AWSComprehendMedical/ComprehendMedicalClient.swift b/Sources/Services/AWSComprehendMedical/ComprehendMedicalClient.swift index 11b968568f3..f158f6375f6 100644 --- a/Sources/Services/AWSComprehendMedical/ComprehendMedicalClient.swift +++ b/Sources/Services/AWSComprehendMedical/ComprehendMedicalClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ComprehendMedicalClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ComprehendMedicalClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ComprehendMedicalClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ComprehendMedicalClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ComprehendMedicalClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ComprehendMedicalClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ComprehendMedicalClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ComprehendMedicalClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ComprehendMedicalClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSComprehendMedical/ComprehendMedicalClientProtocol.swift b/Sources/Services/AWSComprehendMedical/ComprehendMedicalClientProtocol.swift index 96d11ee3e8e..956edae686b 100644 --- a/Sources/Services/AWSComprehendMedical/ComprehendMedicalClientProtocol.swift +++ b/Sources/Services/AWSComprehendMedical/ComprehendMedicalClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Comprehend Medical; extracts structured information from unstructured clinical text. Use these actions to gain insight in your documents. diff --git a/Sources/Services/AWSComputeOptimizer/ComputeOptimizerClient.swift b/Sources/Services/AWSComputeOptimizer/ComputeOptimizerClient.swift index 51bc1da37a6..b7cbf538384 100644 --- a/Sources/Services/AWSComputeOptimizer/ComputeOptimizerClient.swift +++ b/Sources/Services/AWSComputeOptimizer/ComputeOptimizerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ComputeOptimizerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ComputeOptimizerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ComputeOptimizerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ComputeOptimizerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ComputeOptimizerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ComputeOptimizerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ComputeOptimizerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ComputeOptimizerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ComputeOptimizerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSComputeOptimizer/ComputeOptimizerClientProtocol.swift b/Sources/Services/AWSComputeOptimizer/ComputeOptimizerClientProtocol.swift index 30207734920..d8378d1d0c4 100644 --- a/Sources/Services/AWSComputeOptimizer/ComputeOptimizerClientProtocol.swift +++ b/Sources/Services/AWSComputeOptimizer/ComputeOptimizerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Compute Optimizer is a service that analyzes the configuration and utilization metrics of your Amazon Web Services compute resources, such as Amazon EC2 instances, Amazon EC2 Auto Scaling groups, Lambda functions, Amazon EBS volumes, and Amazon ECS services on Fargate. It reports whether your resources are optimal, and generates optimization recommendations to reduce the cost and improve the performance of your workloads. Compute Optimizer also provides recent utilization metric data, in addition to projected utilization metric data for the recommendations, which you can use to evaluate which recommendation provides the best price-performance trade-off. The analysis of your usage patterns can help you decide when to move or resize your running resources, and still meet your performance and capacity requirements. For more information about Compute Optimizer, including the required permissions to use the service, see the [Compute Optimizer User Guide](https://docs.aws.amazon.com/compute-optimizer/latest/ug/). diff --git a/Sources/Services/AWSConfigService/ConfigClient.swift b/Sources/Services/AWSConfigService/ConfigClient.swift index 33d4c70747e..746380145fc 100644 --- a/Sources/Services/AWSConfigService/ConfigClient.swift +++ b/Sources/Services/AWSConfigService/ConfigClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ConfigClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ConfigClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ConfigClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ConfigClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ConfigClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ConfigClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConfigClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ConfigClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConfigClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSConfigService/ConfigClientProtocol.swift b/Sources/Services/AWSConfigService/ConfigClientProtocol.swift index 1686de3aa32..5fa523fafc2 100644 --- a/Sources/Services/AWSConfigService/ConfigClientProtocol.swift +++ b/Sources/Services/AWSConfigService/ConfigClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Config Config provides a way to keep track of the configurations of all the Amazon Web Services resources associated with your Amazon Web Services account. You can use Config to get the current and historical configurations of each Amazon Web Services resource and also to get information about the relationship between the resources. An Amazon Web Services resource can be an Amazon Compute Cloud (Amazon EC2) instance, an Elastic Block Store (EBS) volume, an elastic network Interface (ENI), or a security group. For a complete list of resources currently supported by Config, see [Supported Amazon Web Services resources](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources). You can access and manage Config through the Amazon Web Services Management Console, the Amazon Web Services Command Line Interface (Amazon Web Services CLI), the Config API, or the Amazon Web Services SDKs for Config. This reference guide contains documentation for the Config API and the Amazon Web Services CLI commands that you can use to manage Config. The Config API uses the Signature Version 4 protocol for signing requests. For more information about how to sign a request with this protocol, see [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). For detailed information about Config features and their associated actions or commands, as well as how to work with Amazon Web Services Management Console, see [What Is Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) in the Config Developer Guide. diff --git a/Sources/Services/AWSConnect/ConnectClient.swift b/Sources/Services/AWSConnect/ConnectClient.swift index 01345b8a314..a802676727c 100644 --- a/Sources/Services/AWSConnect/ConnectClient.swift +++ b/Sources/Services/AWSConnect/ConnectClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ConnectClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ConnectClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ConnectClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ConnectClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ConnectClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ConnectClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ConnectClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSConnect/ConnectClientProtocol.swift b/Sources/Services/AWSConnect/ConnectClientProtocol.swift index a51cbf183b1..815a810992d 100644 --- a/Sources/Services/AWSConnect/ConnectClientProtocol.swift +++ b/Sources/Services/AWSConnect/ConnectClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Connect is a cloud-based contact center solution that you use to set up and manage a customer contact center and provide reliable customer engagement at any scale. Amazon Connect provides metrics and real-time reporting that enable you to optimize contact routing. You can also resolve customer issues more efficiently by getting customers in touch with the appropriate agents. There are limits to the number of Amazon Connect resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see [Amazon Connect Service Quotas](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-service-limits.html) in the Amazon Connect Administrator Guide. You can connect programmatically to an Amazon Web Services service by using an endpoint. For a list of Amazon Connect endpoints, see [Amazon Connect Endpoints](https://docs.aws.amazon.com/general/latest/gr/connect_region.html). diff --git a/Sources/Services/AWSConnectCampaigns/ConnectCampaignsClient.swift b/Sources/Services/AWSConnectCampaigns/ConnectCampaignsClient.swift index d1d9679910d..1e5403e1ccf 100644 --- a/Sources/Services/AWSConnectCampaigns/ConnectCampaignsClient.swift +++ b/Sources/Services/AWSConnectCampaigns/ConnectCampaignsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ConnectCampaignsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ConnectCampaignsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ConnectCampaignsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ConnectCampaignsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ConnectCampaignsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ConnectCampaignsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectCampaignsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ConnectCampaignsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectCampaignsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSConnectCampaigns/ConnectCampaignsClientProtocol.swift b/Sources/Services/AWSConnectCampaigns/ConnectCampaignsClientProtocol.swift index 673ecdf5f16..d503b0299f0 100644 --- a/Sources/Services/AWSConnectCampaigns/ConnectCampaignsClientProtocol.swift +++ b/Sources/Services/AWSConnectCampaigns/ConnectCampaignsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Provide APIs to create and manage Amazon Connect Campaigns. diff --git a/Sources/Services/AWSConnectCases/ConnectCasesClient.swift b/Sources/Services/AWSConnectCases/ConnectCasesClient.swift index 10bb94fcb52..db4e0c63f3b 100644 --- a/Sources/Services/AWSConnectCases/ConnectCasesClient.swift +++ b/Sources/Services/AWSConnectCases/ConnectCasesClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ConnectCasesClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ConnectCasesClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ConnectCasesClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ConnectCasesClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ConnectCasesClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ConnectCasesClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectCasesClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ConnectCasesClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectCasesClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSConnectCases/ConnectCasesClientProtocol.swift b/Sources/Services/AWSConnectCases/ConnectCasesClientProtocol.swift index 66524a22c2f..2fb11b59d43 100644 --- a/Sources/Services/AWSConnectCases/ConnectCasesClientProtocol.swift +++ b/Sources/Services/AWSConnectCases/ConnectCasesClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// With Amazon Connect Cases, your agents can track and manage customer issues that require multiple interactions, follow-up tasks, and teams in your contact center. A case represents a customer issue. It records the issue, the steps and interactions taken to resolve the issue, and the outcome. For more information, see [Amazon Connect Cases](https://docs.aws.amazon.com/connect/latest/adminguide/cases.html) in the Amazon Connect Administrator Guide. diff --git a/Sources/Services/AWSConnectContactLens/ConnectContactLensClient.swift b/Sources/Services/AWSConnectContactLens/ConnectContactLensClient.swift index 067a2e63dba..79f4cc8f997 100644 --- a/Sources/Services/AWSConnectContactLens/ConnectContactLensClient.swift +++ b/Sources/Services/AWSConnectContactLens/ConnectContactLensClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ConnectContactLensClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ConnectContactLensClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ConnectContactLensClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ConnectContactLensClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ConnectContactLensClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ConnectContactLensClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectContactLensClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ConnectContactLensClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectContactLensClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSConnectContactLens/ConnectContactLensClientProtocol.swift b/Sources/Services/AWSConnectContactLens/ConnectContactLensClientProtocol.swift index c635425f263..eaece046079 100644 --- a/Sources/Services/AWSConnectContactLens/ConnectContactLensClientProtocol.swift +++ b/Sources/Services/AWSConnectContactLens/ConnectContactLensClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Contact Lens for Amazon Connect enables you to analyze conversations between customer and agents, by using speech transcription, natural language processing, and intelligent search capabilities. It performs sentiment analysis, detects issues, and enables you to automatically categorize contacts. Contact Lens for Amazon Connect provides both real-time and post-call analytics of customer-agent conversations. For more information, see [Analyze conversations using Contact Lens](https://docs.aws.amazon.com/connect/latest/adminguide/analyze-conversations.html) in the Amazon Connect Administrator Guide. diff --git a/Sources/Services/AWSConnectParticipant/ConnectParticipantClient.swift b/Sources/Services/AWSConnectParticipant/ConnectParticipantClient.swift index ddb4bcb80ff..6a0cdb9c180 100644 --- a/Sources/Services/AWSConnectParticipant/ConnectParticipantClient.swift +++ b/Sources/Services/AWSConnectParticipant/ConnectParticipantClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ConnectParticipantClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ConnectParticipantClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ConnectParticipantClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ConnectParticipantClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ConnectParticipantClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ConnectParticipantClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectParticipantClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ConnectParticipantClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ConnectParticipantClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSConnectParticipant/ConnectParticipantClientProtocol.swift b/Sources/Services/AWSConnectParticipant/ConnectParticipantClientProtocol.swift index cc9b93f0b02..990a2cad946 100644 --- a/Sources/Services/AWSConnectParticipant/ConnectParticipantClientProtocol.swift +++ b/Sources/Services/AWSConnectParticipant/ConnectParticipantClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Connect is an easy-to-use omnichannel cloud contact center service that enables companies of any size to deliver superior customer service at a lower cost. Amazon Connect communications capabilities make it easy for companies to deliver personalized interactions across communication channels, including chat. Use the Amazon Connect Participant Service to manage participants (for example, agents, customers, and managers listening in), and to send messages and events within a chat contact. The APIs in the service enable the following: sending chat messages, attachment sharing, managing a participant's connection state and message events, and retrieving chat transcripts. diff --git a/Sources/Services/AWSControlTower/ControlTowerClient.swift b/Sources/Services/AWSControlTower/ControlTowerClient.swift index 3827820bbac..f5028ba0de7 100644 --- a/Sources/Services/AWSControlTower/ControlTowerClient.swift +++ b/Sources/Services/AWSControlTower/ControlTowerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ControlTowerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ControlTowerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ControlTowerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ControlTowerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ControlTowerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ControlTowerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ControlTowerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ControlTowerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ControlTowerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSControlTower/ControlTowerClientProtocol.swift b/Sources/Services/AWSControlTower/ControlTowerClientProtocol.swift index f2f2cce67b5..b100f782a26 100644 --- a/Sources/Services/AWSControlTower/ControlTowerClientProtocol.swift +++ b/Sources/Services/AWSControlTower/ControlTowerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// These interfaces allow you to apply the AWS library of pre-defined controls to your organizational units, programmatically. In this context, controls are the same as AWS Control Tower guardrails. To call these APIs, you'll need to know: diff --git a/Sources/Services/AWSCostExplorer/CostExplorerClient.swift b/Sources/Services/AWSCostExplorer/CostExplorerClient.swift index 3aa63c387db..e0a97aae03f 100644 --- a/Sources/Services/AWSCostExplorer/CostExplorerClient.swift +++ b/Sources/Services/AWSCostExplorer/CostExplorerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CostExplorerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CostExplorerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CostExplorerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CostExplorerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CostExplorerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CostExplorerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CostExplorerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CostExplorerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CostExplorerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCostExplorer/CostExplorerClientProtocol.swift b/Sources/Services/AWSCostExplorer/CostExplorerClientProtocol.swift index 5fe93b6e7e8..b333d368a53 100644 --- a/Sources/Services/AWSCostExplorer/CostExplorerClientProtocol.swift +++ b/Sources/Services/AWSCostExplorer/CostExplorerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// You can use the Cost Explorer API to programmatically query your cost and usage data. You can query for aggregated data such as total monthly costs or total daily usage. You can also query for granular data. This might include the number of daily write operations for Amazon DynamoDB database tables in your production environment. Service Endpoint The Cost Explorer API provides the following endpoint: diff --git a/Sources/Services/AWSCostandUsageReportService/CostandUsageReportClient.swift b/Sources/Services/AWSCostandUsageReportService/CostandUsageReportClient.swift index bc9a7f1f1e9..d89436c103c 100644 --- a/Sources/Services/AWSCostandUsageReportService/CostandUsageReportClient.swift +++ b/Sources/Services/AWSCostandUsageReportService/CostandUsageReportClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CostandUsageReportClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CostandUsageReportClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CostandUsageReportClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CostandUsageReportClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CostandUsageReportClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CostandUsageReportClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CostandUsageReportClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CostandUsageReportClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CostandUsageReportClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCostandUsageReportService/CostandUsageReportClientProtocol.swift b/Sources/Services/AWSCostandUsageReportService/CostandUsageReportClientProtocol.swift index 352e8d37cee..7f4f899be0c 100644 --- a/Sources/Services/AWSCostandUsageReportService/CostandUsageReportClientProtocol.swift +++ b/Sources/Services/AWSCostandUsageReportService/CostandUsageReportClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The AWS Cost and Usage Report API enables you to programmatically create, query, and delete AWS Cost and Usage report definitions. AWS Cost and Usage reports track the monthly AWS costs and usage associated with your AWS account. The report contains line items for each unique combination of AWS product, usage type, and operation that your AWS account uses. You can configure the AWS Cost and Usage report to show only the data that you want, using the AWS Cost and Usage API. Service Endpoint The AWS Cost and Usage Report API provides the following endpoint: diff --git a/Sources/Services/AWSCustomerProfiles/CustomerProfilesClient.swift b/Sources/Services/AWSCustomerProfiles/CustomerProfilesClient.swift index 3a267d8acff..b0cfe1acf41 100644 --- a/Sources/Services/AWSCustomerProfiles/CustomerProfilesClient.swift +++ b/Sources/Services/AWSCustomerProfiles/CustomerProfilesClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class CustomerProfilesClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await CustomerProfilesClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try CustomerProfilesClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class CustomerProfilesClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class CustomerProfilesClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class CustomerProfilesClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CustomerProfilesClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class CustomerProfilesClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("CustomerProfilesClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSCustomerProfiles/CustomerProfilesClientProtocol.swift b/Sources/Services/AWSCustomerProfiles/CustomerProfilesClientProtocol.swift index 41ce6bd4c7b..43857337f84 100644 --- a/Sources/Services/AWSCustomerProfiles/CustomerProfilesClientProtocol.swift +++ b/Sources/Services/AWSCustomerProfiles/CustomerProfilesClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Connect Customer Profiles Amazon Connect Customer Profiles is a unified customer profile for your contact center that has pre-built connectors powered by AppFlow that make it easy to combine customer information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and your enterprise resource planning (ERP), with contact history from your Amazon Connect contact center. If you're new to Amazon Connect, you might find it helpful to review the [Amazon Connect Administrator Guide](https://docs.aws.amazon.com/connect/latest/adminguide/). diff --git a/Sources/Services/AWSDAX/DAXClient.swift b/Sources/Services/AWSDAX/DAXClient.swift index 9d182d6723c..4fcf7800295 100644 --- a/Sources/Services/AWSDAX/DAXClient.swift +++ b/Sources/Services/AWSDAX/DAXClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DAXClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DAXClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DAXClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DAXClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DAXClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DAXClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DAXClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DAXClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DAXClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDAX/DAXClientProtocol.swift b/Sources/Services/AWSDAX/DAXClientProtocol.swift index c2985a8f4ff..9493d68a28f 100644 --- a/Sources/Services/AWSDAX/DAXClientProtocol.swift +++ b/Sources/Services/AWSDAX/DAXClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// DAX is a managed caching service engineered for Amazon DynamoDB. DAX dramatically speeds up database reads by caching frequently-accessed data from DynamoDB, so applications can access that data with sub-millisecond latency. You can create a DAX cluster easily, using the AWS Management Console. With a few simple modifications to your code, your application can begin taking advantage of the DAX cluster and realize significant improvements in read performance. diff --git a/Sources/Services/AWSDLM/DLMClient.swift b/Sources/Services/AWSDLM/DLMClient.swift index fd345d782e7..83f3a7159ca 100644 --- a/Sources/Services/AWSDLM/DLMClient.swift +++ b/Sources/Services/AWSDLM/DLMClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DLMClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DLMClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DLMClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DLMClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DLMClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DLMClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DLMClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DLMClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DLMClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDLM/DLMClientProtocol.swift b/Sources/Services/AWSDLM/DLMClientProtocol.swift index f26bd0fee9f..1c38cca3266 100644 --- a/Sources/Services/AWSDLM/DLMClientProtocol.swift +++ b/Sources/Services/AWSDLM/DLMClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Data Lifecycle Manager With Amazon Data Lifecycle Manager, you can manage the lifecycle of your Amazon Web Services resources. You create lifecycle policies, which are used to automate operations on the specified resources. Amazon Data Lifecycle Manager supports Amazon EBS volumes and snapshots. For information about using Amazon Data Lifecycle Manager with Amazon EBS, see [ Amazon Data Lifecycle Manager](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshot-lifecycle.html) in the Amazon EC2 User Guide. diff --git a/Sources/Services/AWSDataBrew/DataBrewClient.swift b/Sources/Services/AWSDataBrew/DataBrewClient.swift index 9ce6f33b8c8..b544eca6ac9 100644 --- a/Sources/Services/AWSDataBrew/DataBrewClient.swift +++ b/Sources/Services/AWSDataBrew/DataBrewClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DataBrewClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DataBrewClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DataBrewClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DataBrewClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DataBrewClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DataBrewClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DataBrewClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DataBrewClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DataBrewClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDataBrew/DataBrewClientProtocol.swift b/Sources/Services/AWSDataBrew/DataBrewClientProtocol.swift index e1aebbcd050..9bd26eb8041 100644 --- a/Sources/Services/AWSDataBrew/DataBrewClientProtocol.swift +++ b/Sources/Services/AWSDataBrew/DataBrewClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Glue DataBrew is a visual, cloud-scale data-preparation service. DataBrew simplifies data preparation tasks, targeting data issues that are hard to spot and time-consuming to fix. DataBrew empowers users of all technical levels to visualize the data and perform one-click data transformations, with no coding required. diff --git a/Sources/Services/AWSDataExchange/DataExchangeClient.swift b/Sources/Services/AWSDataExchange/DataExchangeClient.swift index d82ebb4c913..7ba38b8999c 100644 --- a/Sources/Services/AWSDataExchange/DataExchangeClient.swift +++ b/Sources/Services/AWSDataExchange/DataExchangeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DataExchangeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DataExchangeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DataExchangeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DataExchangeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DataExchangeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DataExchangeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DataExchangeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DataExchangeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DataExchangeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDataExchange/DataExchangeClientProtocol.swift b/Sources/Services/AWSDataExchange/DataExchangeClientProtocol.swift index 4a261aaf595..5c3ebde0520 100644 --- a/Sources/Services/AWSDataExchange/DataExchangeClientProtocol.swift +++ b/Sources/Services/AWSDataExchange/DataExchangeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Data Exchange is a service that makes it easy for AWS customers to exchange data in the cloud. You can use the AWS Data Exchange APIs to create, update, manage, and access file-based data set in the AWS Cloud. As a subscriber, you can view and access the data sets that you have an entitlement to through a subscription. You can use the APIs to download or copy your entitled data sets to Amazon Simple Storage Service (Amazon S3) for use across a variety of AWS analytics and machine learning services. As a provider, you can create and manage your data sets that you would like to publish to a product. Being able to package and provide your data sets into products requires a few steps to determine eligibility. For more information, visit the AWS Data Exchange User Guide. A data set is a collection of data that can be changed or updated over time. Data sets can be updated using revisions, which represent a new version or incremental change to a data set. A revision contains one or more assets. An asset in AWS Data Exchange is a piece of data that can be stored as an Amazon S3 object, Redshift datashare, API Gateway API, AWS Lake Formation data permission, or Amazon S3 data access. The asset can be a structured data file, an image file, or some other data file. Jobs are asynchronous import or export operations used to create or copy assets. diff --git a/Sources/Services/AWSDataPipeline/DataPipelineClient.swift b/Sources/Services/AWSDataPipeline/DataPipelineClient.swift index 3c78ad3efc8..9ce0403724f 100644 --- a/Sources/Services/AWSDataPipeline/DataPipelineClient.swift +++ b/Sources/Services/AWSDataPipeline/DataPipelineClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DataPipelineClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DataPipelineClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DataPipelineClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DataPipelineClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DataPipelineClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DataPipelineClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DataPipelineClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DataPipelineClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DataPipelineClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDataPipeline/DataPipelineClientProtocol.swift b/Sources/Services/AWSDataPipeline/DataPipelineClientProtocol.swift index f928bd22c2d..78fb024106f 100644 --- a/Sources/Services/AWSDataPipeline/DataPipelineClientProtocol.swift +++ b/Sources/Services/AWSDataPipeline/DataPipelineClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Data Pipeline configures and manages a data-driven workflow called a pipeline. AWS Data Pipeline handles the details of scheduling and ensuring that data dependencies are met so that your application can focus on processing the data. AWS Data Pipeline provides a JAR implementation of a task runner called AWS Data Pipeline Task Runner. AWS Data Pipeline Task Runner provides logic for common data management scenarios, such as performing database queries and running data analysis using Amazon Elastic MapReduce (Amazon EMR). You can use AWS Data Pipeline Task Runner as your task runner, or you can write your own task runner to provide custom data management. AWS Data Pipeline implements two main sets of functionality. Use the first set to create a pipeline and define data sources, schedules, dependencies, and the transforms to be performed on the data. Use the second set in your task runner application to receive the next task ready for processing. The logic for performing the task, such as querying the data, running data analysis, or converting the data from one format to another, is contained within the task runner. The task runner performs the task assigned to it by the web service, reporting progress to the web service as it does so. When the task is done, the task runner reports the final success or failure of the task to the web service. diff --git a/Sources/Services/AWSDataSync/DataSyncClient.swift b/Sources/Services/AWSDataSync/DataSyncClient.swift index 4044496fb52..3d24e047d71 100644 --- a/Sources/Services/AWSDataSync/DataSyncClient.swift +++ b/Sources/Services/AWSDataSync/DataSyncClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DataSyncClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DataSyncClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DataSyncClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DataSyncClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DataSyncClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DataSyncClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DataSyncClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DataSyncClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DataSyncClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDataSync/DataSyncClientProtocol.swift b/Sources/Services/AWSDataSync/DataSyncClientProtocol.swift index f392e6c74b3..040fc5206f3 100644 --- a/Sources/Services/AWSDataSync/DataSyncClientProtocol.swift +++ b/Sources/Services/AWSDataSync/DataSyncClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// DataSync DataSync is a managed data transfer service that makes it simpler for you to automate moving data between on-premises storage and Amazon Web Services storage services. You also can use DataSync to transfer data between other cloud providers and Amazon Web Services storage services. This API interface reference includes documentation for using DataSync programmatically. For complete information, see the [DataSync User Guide](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html) . diff --git a/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClient.swift b/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClient.swift index 5779e995464..86032e5fb65 100644 --- a/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClient.swift +++ b/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DatabaseMigrationClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DatabaseMigrationClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DatabaseMigrationClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DatabaseMigrationClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DatabaseMigrationClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DatabaseMigrationClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DatabaseMigrationClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DatabaseMigrationClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DatabaseMigrationClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClientProtocol.swift b/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClientProtocol.swift index 1c80f71bdda..59413843cbc 100644 --- a/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClientProtocol.swift +++ b/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Database Migration Service Database Migration Service (DMS) can migrate your data to and from the most widely used commercial and open-source databases such as Oracle, PostgreSQL, Microsoft SQL Server, Amazon Redshift, MariaDB, Amazon Aurora, MySQL, and SAP Adaptive Server Enterprise (ASE). The service supports homogeneous migrations such as Oracle to Oracle, as well as heterogeneous migrations between different database platforms, such as Oracle to MySQL or SQL Server to PostgreSQL. For more information about DMS, see [What Is Database Migration Service?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) in the Database Migration Service User Guide. diff --git a/Sources/Services/AWSDetective/DetectiveClient.swift b/Sources/Services/AWSDetective/DetectiveClient.swift index 5015ed857e4..b373ff357b6 100644 --- a/Sources/Services/AWSDetective/DetectiveClient.swift +++ b/Sources/Services/AWSDetective/DetectiveClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DetectiveClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DetectiveClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DetectiveClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DetectiveClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DetectiveClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DetectiveClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DetectiveClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DetectiveClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DetectiveClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDetective/DetectiveClientProtocol.swift b/Sources/Services/AWSDetective/DetectiveClientProtocol.swift index 37a69a74493..bb97cea4521 100644 --- a/Sources/Services/AWSDetective/DetectiveClientProtocol.swift +++ b/Sources/Services/AWSDetective/DetectiveClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Detective uses machine learning and purpose-built visualizations to help you to analyze and investigate security issues across your Amazon Web Services (Amazon Web Services) workloads. Detective automatically extracts time-based events such as login attempts, API calls, and network traffic from CloudTrail and Amazon Virtual Private Cloud (Amazon VPC) flow logs. It also extracts findings detected by Amazon GuardDuty. The Detective API primarily supports the creation and management of behavior graphs. A behavior graph contains the extracted data from a set of member accounts, and is created and managed by an administrator account. To add a member account to the behavior graph, the administrator account sends an invitation to the account. When the account accepts the invitation, it becomes a member account in the behavior graph. Detective is also integrated with Organizations. The organization management account designates the Detective administrator account for the organization. That account becomes the administrator account for the organization behavior graph. The Detective administrator account is also the delegated administrator account for Detective in Organizations. The Detective administrator account can enable any organization account as a member account in the organization behavior graph. The organization accounts do not receive invitations. The Detective administrator account can also invite other accounts to the organization behavior graph. Every behavior graph is specific to a Region. You can only use the API to manage behavior graphs that belong to the Region that is associated with the currently selected endpoint. The administrator account for a behavior graph can use the Detective API to do the following: diff --git a/Sources/Services/AWSDevOpsGuru/DevOpsGuruClient.swift b/Sources/Services/AWSDevOpsGuru/DevOpsGuruClient.swift index 69073404e66..a45f644b015 100644 --- a/Sources/Services/AWSDevOpsGuru/DevOpsGuruClient.swift +++ b/Sources/Services/AWSDevOpsGuru/DevOpsGuruClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DevOpsGuruClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DevOpsGuruClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DevOpsGuruClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DevOpsGuruClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DevOpsGuruClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DevOpsGuruClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DevOpsGuruClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DevOpsGuruClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DevOpsGuruClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDevOpsGuru/DevOpsGuruClientProtocol.swift b/Sources/Services/AWSDevOpsGuru/DevOpsGuruClientProtocol.swift index dc8d393cf70..8ed66280e2e 100644 --- a/Sources/Services/AWSDevOpsGuru/DevOpsGuruClientProtocol.swift +++ b/Sources/Services/AWSDevOpsGuru/DevOpsGuruClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon DevOps Guru is a fully managed service that helps you identify anomalous behavior in business critical operational applications. You specify the Amazon Web Services resources that you want DevOps Guru to cover, then the Amazon CloudWatch metrics and Amazon Web Services CloudTrail events related to those resources are analyzed. When anomalous behavior is detected, DevOps Guru creates an insight that includes recommendations, related events, and related metrics that can help you improve your operational applications. For more information, see [What is Amazon DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html). You can specify 1 or 2 Amazon Simple Notification Service topics so you are notified every time a new insight is created. You can also enable DevOps Guru to generate an OpsItem in Amazon Web Services Systems Manager for each insight to help you manage and track your work addressing insights. To learn about the DevOps Guru workflow, see [How DevOps Guru works](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html#how-it-works). To learn about DevOps Guru concepts, see [Concepts in DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/concepts.html). diff --git a/Sources/Services/AWSDeviceFarm/DeviceFarmClient.swift b/Sources/Services/AWSDeviceFarm/DeviceFarmClient.swift index 12f1c44c6df..3ffd02f6fc4 100644 --- a/Sources/Services/AWSDeviceFarm/DeviceFarmClient.swift +++ b/Sources/Services/AWSDeviceFarm/DeviceFarmClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DeviceFarmClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DeviceFarmClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DeviceFarmClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DeviceFarmClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DeviceFarmClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DeviceFarmClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DeviceFarmClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DeviceFarmClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DeviceFarmClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDeviceFarm/DeviceFarmClientProtocol.swift b/Sources/Services/AWSDeviceFarm/DeviceFarmClientProtocol.swift index 9b1b51c96eb..12ac6404d9a 100644 --- a/Sources/Services/AWSDeviceFarm/DeviceFarmClientProtocol.swift +++ b/Sources/Services/AWSDeviceFarm/DeviceFarmClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the AWS Device Farm API documentation, which contains APIs for: diff --git a/Sources/Services/AWSDirectConnect/DirectConnectClient.swift b/Sources/Services/AWSDirectConnect/DirectConnectClient.swift index cce10c4e12d..f219b3d83bf 100644 --- a/Sources/Services/AWSDirectConnect/DirectConnectClient.swift +++ b/Sources/Services/AWSDirectConnect/DirectConnectClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DirectConnectClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DirectConnectClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DirectConnectClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DirectConnectClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DirectConnectClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DirectConnectClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DirectConnectClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DirectConnectClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DirectConnectClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDirectConnect/DirectConnectClientProtocol.swift b/Sources/Services/AWSDirectConnect/DirectConnectClientProtocol.swift index ffa4e4fe018..ae595ad4bcf 100644 --- a/Sources/Services/AWSDirectConnect/DirectConnectClientProtocol.swift +++ b/Sources/Services/AWSDirectConnect/DirectConnectClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Direct Connect links your internal network to an Direct Connect location over a standard Ethernet fiber-optic cable. One end of the cable is connected to your router, the other to an Direct Connect router. With this connection in place, you can create virtual interfaces directly to the Amazon Web Services Cloud (for example, to Amazon EC2 and Amazon S3) and to Amazon VPC, bypassing Internet service providers in your network path. A connection provides access to all Amazon Web Services Regions except the China (Beijing) and (China) Ningxia Regions. Amazon Web Services resources in the China Regions can only be accessed through locations associated with those Regions. diff --git a/Sources/Services/AWSDirectoryService/DirectoryClient.swift b/Sources/Services/AWSDirectoryService/DirectoryClient.swift index 6d98d2137e0..92099270346 100644 --- a/Sources/Services/AWSDirectoryService/DirectoryClient.swift +++ b/Sources/Services/AWSDirectoryService/DirectoryClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DirectoryClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DirectoryClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DirectoryClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DirectoryClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DirectoryClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DirectoryClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DirectoryClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DirectoryClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DirectoryClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDirectoryService/DirectoryClientProtocol.swift b/Sources/Services/AWSDirectoryService/DirectoryClientProtocol.swift index 993c360baa8..34d6fc5fd49 100644 --- a/Sources/Services/AWSDirectoryService/DirectoryClientProtocol.swift +++ b/Sources/Services/AWSDirectoryService/DirectoryClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Directory Service Directory Service is a web service that makes it easy for you to setup and run directories in the Amazon Web Services cloud, or connect your Amazon Web Services resources with an existing self-managed Microsoft Active Directory. This guide provides detailed information about Directory Service operations, data types, parameters, and errors. For information about Directory Services features, see [Directory Service](https://aws.amazon.com/directoryservice/) and the [Directory Service Administration Guide](http://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html). Amazon Web Services provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, iOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to Directory Service and other Amazon Web Services services. For more information about the Amazon Web Services SDKs, including how to download and install them, see [Tools for Amazon Web Services](http://aws.amazon.com/tools/). diff --git a/Sources/Services/AWSDocDB/DocDBClient.swift b/Sources/Services/AWSDocDB/DocDBClient.swift index 58743b4d804..de64c8a508b 100644 --- a/Sources/Services/AWSDocDB/DocDBClient.swift +++ b/Sources/Services/AWSDocDB/DocDBClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class DocDBClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DocDBClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DocDBClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class DocDBClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class DocDBClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class DocDBClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DocDBClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class DocDBClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DocDBClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDocDB/DocDBClientProtocol.swift b/Sources/Services/AWSDocDB/DocDBClientProtocol.swift index 54ffa5d7ae7..fafc33d54d5 100644 --- a/Sources/Services/AWSDocDB/DocDBClientProtocol.swift +++ b/Sources/Services/AWSDocDB/DocDBClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon DocumentDB API documentation diff --git a/Sources/Services/AWSDocDBElastic/DocDBElasticClient.swift b/Sources/Services/AWSDocDBElastic/DocDBElasticClient.swift index 6eaf4ef4b32..3c276e591e2 100644 --- a/Sources/Services/AWSDocDBElastic/DocDBElasticClient.swift +++ b/Sources/Services/AWSDocDBElastic/DocDBElasticClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DocDBElasticClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DocDBElasticClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DocDBElasticClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DocDBElasticClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DocDBElasticClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DocDBElasticClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DocDBElasticClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DocDBElasticClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DocDBElasticClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDocDBElastic/DocDBElasticClientProtocol.swift b/Sources/Services/AWSDocDBElastic/DocDBElasticClientProtocol.swift index 2d91065c7fc..58fc034aaff 100644 --- a/Sources/Services/AWSDocDBElastic/DocDBElasticClientProtocol.swift +++ b/Sources/Services/AWSDocDBElastic/DocDBElasticClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The new Amazon Elastic DocumentDB service endpoint. diff --git a/Sources/Services/AWSDrs/DrsClient.swift b/Sources/Services/AWSDrs/DrsClient.swift index 72dc3a0c9a2..f1ae7b5933b 100644 --- a/Sources/Services/AWSDrs/DrsClient.swift +++ b/Sources/Services/AWSDrs/DrsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DrsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DrsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DrsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DrsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DrsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DrsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DrsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DrsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DrsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDrs/DrsClientProtocol.swift b/Sources/Services/AWSDrs/DrsClientProtocol.swift index 950964fc7a6..2cd7e21633d 100644 --- a/Sources/Services/AWSDrs/DrsClientProtocol.swift +++ b/Sources/Services/AWSDrs/DrsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Elastic Disaster Recovery Service. diff --git a/Sources/Services/AWSDynamoDB/DynamoDBClient.swift b/Sources/Services/AWSDynamoDB/DynamoDBClient.swift index 06f647a23ca..55688071131 100644 --- a/Sources/Services/AWSDynamoDB/DynamoDBClient.swift +++ b/Sources/Services/AWSDynamoDB/DynamoDBClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DynamoDBClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DynamoDBClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DynamoDBClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DynamoDBClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DynamoDBClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DynamoDBClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DynamoDBClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DynamoDBClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DynamoDBClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDynamoDB/DynamoDBClientProtocol.swift b/Sources/Services/AWSDynamoDB/DynamoDBClientProtocol.swift index b20844de817..e8fc0561654 100644 --- a/Sources/Services/AWSDynamoDB/DynamoDBClientProtocol.swift +++ b/Sources/Services/AWSDynamoDB/DynamoDBClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon DynamoDB Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. DynamoDB lets you offload the administrative burdens of operating and scaling a distributed database, so that you don't have to worry about hardware provisioning, setup and configuration, replication, software patching, or cluster scaling. With DynamoDB, you can create database tables that can store and retrieve any amount of data, and serve any level of request traffic. You can scale up or scale down your tables' throughput capacity without downtime or performance degradation, and use the Amazon Web Services Management Console to monitor resource utilization and performance metrics. DynamoDB automatically spreads the data and traffic for your tables over a sufficient number of servers to handle your throughput and storage requirements, while maintaining consistent and fast performance. All of your data is stored on solid state disks (SSDs) and automatically replicated across multiple Availability Zones in an Amazon Web Services Region, providing built-in high availability and data durability. diff --git a/Sources/Services/AWSDynamoDBStreams/DynamoDBStreamsClient.swift b/Sources/Services/AWSDynamoDBStreams/DynamoDBStreamsClient.swift index 5fdebf26cd2..7de94ade42a 100644 --- a/Sources/Services/AWSDynamoDBStreams/DynamoDBStreamsClient.swift +++ b/Sources/Services/AWSDynamoDBStreams/DynamoDBStreamsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class DynamoDBStreamsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await DynamoDBStreamsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try DynamoDBStreamsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class DynamoDBStreamsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class DynamoDBStreamsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class DynamoDBStreamsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DynamoDBStreamsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class DynamoDBStreamsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("DynamoDBStreamsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSDynamoDBStreams/DynamoDBStreamsClientProtocol.swift b/Sources/Services/AWSDynamoDBStreams/DynamoDBStreamsClientProtocol.swift index 52bea55af61..667b0e9d671 100644 --- a/Sources/Services/AWSDynamoDBStreams/DynamoDBStreamsClientProtocol.swift +++ b/Sources/Services/AWSDynamoDBStreams/DynamoDBStreamsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon DynamoDB Amazon DynamoDB Streams provides API actions for accessing streams and processing stream records. To learn more about application development with Streams, see [Capturing Table Activity with DynamoDB Streams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) in the Amazon DynamoDB Developer Guide. diff --git a/Sources/Services/AWSEBS/EBSClient.swift b/Sources/Services/AWSEBS/EBSClient.swift index 7a3e8417994..6145077e961 100644 --- a/Sources/Services/AWSEBS/EBSClient.swift +++ b/Sources/Services/AWSEBS/EBSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class EBSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EBSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EBSClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class EBSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class EBSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class EBSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EBSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class EBSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EBSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEBS/EBSClientProtocol.swift b/Sources/Services/AWSEBS/EBSClientProtocol.swift index 622bc953ba9..7ab8a93f4ba 100644 --- a/Sources/Services/AWSEBS/EBSClientProtocol.swift +++ b/Sources/Services/AWSEBS/EBSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// You can use the Amazon Elastic Block Store (Amazon EBS) direct APIs to create Amazon EBS snapshots, write data directly to your snapshots, read data on your snapshots, and identify the differences or changes between two snapshots. If you’re an independent software vendor (ISV) who offers backup services for Amazon EBS, the EBS direct APIs make it more efficient and cost-effective to track incremental changes on your Amazon EBS volumes through snapshots. This can be done without having to create new volumes from snapshots, and then use Amazon Elastic Compute Cloud (Amazon EC2) instances to compare the differences. You can create incremental snapshots directly from data on-premises into volumes and the cloud to use for quick disaster recovery. With the ability to write and read snapshots, you can write your on-premises data to an snapshot during a disaster. Then after recovery, you can restore it back to Amazon Web Services or on-premises from the snapshot. You no longer need to build and maintain complex mechanisms to copy data to and from Amazon EBS. This API reference provides detailed information about the actions, data types, parameters, and errors of the EBS direct APIs. For more information about the elements that make up the EBS direct APIs, and examples of how to use them effectively, see [Accessing the Contents of an Amazon EBS Snapshot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html) in the Amazon Elastic Compute Cloud User Guide. For more information about the supported Amazon Web Services Regions, endpoints, and service quotas for the EBS direct APIs, see [Amazon Elastic Block Store Endpoints and Quotas](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html) in the Amazon Web Services General Reference. diff --git a/Sources/Services/AWSEC2/EC2Client.swift b/Sources/Services/AWSEC2/EC2Client.swift index 99c2ae332bd..aeed6782233 100644 --- a/Sources/Services/AWSEC2/EC2Client.swift +++ b/Sources/Services/AWSEC2/EC2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class EC2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EC2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EC2ClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class EC2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class EC2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class EC2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EC2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class EC2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EC2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEC2/EC2ClientProtocol.swift b/Sources/Services/AWSEC2/EC2ClientProtocol.swift index 6a89ae85940..4cf4f956b4e 100644 --- a/Sources/Services/AWSEC2/EC2ClientProtocol.swift +++ b/Sources/Services/AWSEC2/EC2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Elastic Compute Cloud Amazon Elastic Compute Cloud (Amazon EC2) provides secure and resizable computing capacity in the Amazon Web Services Cloud. Using Amazon EC2 eliminates the need to invest in hardware up front, so you can develop and deploy applications faster. Amazon Virtual Private Cloud (Amazon VPC) enables you to provision a logically isolated section of the Amazon Web Services Cloud where you can launch Amazon Web Services resources in a virtual network that you've defined. Amazon Elastic Block Store (Amazon EBS) provides block level storage volumes for use with EC2 instances. EBS volumes are highly available diff --git a/Sources/Services/AWSEC2InstanceConnect/EC2InstanceConnectClient.swift b/Sources/Services/AWSEC2InstanceConnect/EC2InstanceConnectClient.swift index e2d9dfde8e1..86351673c41 100644 --- a/Sources/Services/AWSEC2InstanceConnect/EC2InstanceConnectClient.swift +++ b/Sources/Services/AWSEC2InstanceConnect/EC2InstanceConnectClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class EC2InstanceConnectClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EC2InstanceConnectClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EC2InstanceConnectClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class EC2InstanceConnectClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class EC2InstanceConnectClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class EC2InstanceConnectClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EC2InstanceConnectClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class EC2InstanceConnectClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EC2InstanceConnectClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEC2InstanceConnect/EC2InstanceConnectClientProtocol.swift b/Sources/Services/AWSEC2InstanceConnect/EC2InstanceConnectClientProtocol.swift index 5d2926d5ada..1b586b21919 100644 --- a/Sources/Services/AWSEC2InstanceConnect/EC2InstanceConnectClientProtocol.swift +++ b/Sources/Services/AWSEC2InstanceConnect/EC2InstanceConnectClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EC2 Instance Connect enables system administrators to publish one-time use SSH public keys to EC2, providing users a simple and secure way to connect to their instances. diff --git a/Sources/Services/AWSECR/ECRClient.swift b/Sources/Services/AWSECR/ECRClient.swift index b96bfecb2ff..27686226bfc 100644 --- a/Sources/Services/AWSECR/ECRClient.swift +++ b/Sources/Services/AWSECR/ECRClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ECRClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ECRClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ECRClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ECRClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ECRClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ECRClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ECRClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ECRClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ECRClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSECR/ECRClientProtocol.swift b/Sources/Services/AWSECR/ECRClientProtocol.swift index f9dccc04ff7..5f3732ab0f4 100644 --- a/Sources/Services/AWSECR/ECRClientProtocol.swift +++ b/Sources/Services/AWSECR/ECRClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Elastic Container Registry Amazon Elastic Container Registry (Amazon ECR) is a managed container image registry service. Customers can use the familiar Docker CLI, or their preferred client, to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry for your Docker or Open Container Initiative (OCI) images. Amazon ECR supports private repositories with resource-based permissions using IAM so that specific users or Amazon EC2 instances can access repositories and images. Amazon ECR has service endpoints in each supported Region. For more information, see [Amazon ECR endpoints](https://docs.aws.amazon.com/general/latest/gr/ecr.html) in the Amazon Web Services General Reference. diff --git a/Sources/Services/AWSECRPUBLIC/ECRPUBLICClient.swift b/Sources/Services/AWSECRPUBLIC/ECRPUBLICClient.swift index 517ad76947c..152a8f2f236 100644 --- a/Sources/Services/AWSECRPUBLIC/ECRPUBLICClient.swift +++ b/Sources/Services/AWSECRPUBLIC/ECRPUBLICClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ECRPUBLICClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ECRPUBLICClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ECRPUBLICClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ECRPUBLICClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ECRPUBLICClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ECRPUBLICClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ECRPUBLICClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ECRPUBLICClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ECRPUBLICClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSECRPUBLIC/ECRPUBLICClientProtocol.swift b/Sources/Services/AWSECRPUBLIC/ECRPUBLICClientProtocol.swift index 08efff51b16..0215e89151b 100644 --- a/Sources/Services/AWSECRPUBLIC/ECRPUBLICClientProtocol.swift +++ b/Sources/Services/AWSECRPUBLIC/ECRPUBLICClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Elastic Container Registry Public Amazon Elastic Container Registry Public (Amazon ECR Public) is a managed container image registry service. Amazon ECR provides both public and private registries to host your container images. You can use the Docker CLI or your preferred client to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry for your Docker or Open Container Initiative (OCI) images. Amazon ECR supports public repositories with this API. For information about the Amazon ECR API for private repositories, see [Amazon Elastic Container Registry API Reference](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/Welcome.html). diff --git a/Sources/Services/AWSECS/ECSClient.swift b/Sources/Services/AWSECS/ECSClient.swift index f5e16698d3b..03e1c1019b7 100644 --- a/Sources/Services/AWSECS/ECSClient.swift +++ b/Sources/Services/AWSECS/ECSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ECSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ECSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ECSClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ECSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ECSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ECSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ECSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ECSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ECSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSECS/ECSClientProtocol.swift b/Sources/Services/AWSECS/ECSClientProtocol.swift index 935385305c3..13d6b772def 100644 --- a/Sources/Services/AWSECS/ECSClientProtocol.swift +++ b/Sources/Services/AWSECS/ECSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Elastic Container Service Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service. It makes it easy to run, stop, and manage Docker containers. You can host your cluster on a serverless infrastructure that's managed by Amazon ECS by launching your services or tasks on Fargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) or External (on-premises) instances that you manage. Amazon ECS makes it easy to launch and stop container-based applications with simple API calls. This makes it easy to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features. You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. With Amazon ECS, you don't need to operate your own cluster management and configuration management systems. You also don't need to worry about scaling your management infrastructure. diff --git a/Sources/Services/AWSEFS/EFSClient.swift b/Sources/Services/AWSEFS/EFSClient.swift index d696c8a3316..dadb1b37cc2 100644 --- a/Sources/Services/AWSEFS/EFSClient.swift +++ b/Sources/Services/AWSEFS/EFSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class EFSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EFSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EFSClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class EFSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class EFSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class EFSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EFSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class EFSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EFSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEFS/EFSClientProtocol.swift b/Sources/Services/AWSEFS/EFSClientProtocol.swift index 78b70e1c58b..5df9d0f18e9 100644 --- a/Sources/Services/AWSEFS/EFSClientProtocol.swift +++ b/Sources/Services/AWSEFS/EFSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Elastic File System Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for use with Amazon EC2 Linux and Mac instances in the Amazon Web Services Cloud. With Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you add and remove files, so that your applications have the storage they need, when they need it. For more information, see the [Amazon Elastic File System API Reference](https://docs.aws.amazon.com/efs/latest/ug/api-reference.html) and the [Amazon Elastic File System User Guide](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html). diff --git a/Sources/Services/AWSEKS/EKSClient.swift b/Sources/Services/AWSEKS/EKSClient.swift index 2e3144c3e66..c67e83d0325 100644 --- a/Sources/Services/AWSEKS/EKSClient.swift +++ b/Sources/Services/AWSEKS/EKSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class EKSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EKSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EKSClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class EKSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class EKSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class EKSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EKSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class EKSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EKSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEKS/EKSClientProtocol.swift b/Sources/Services/AWSEKS/EKSClientProtocol.swift index fce18548a1b..8bae886cc47 100644 --- a/Sources/Services/AWSEKS/EKSClientProtocol.swift +++ b/Sources/Services/AWSEKS/EKSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain your own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications. Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you can use all the existing plugins and tooling from the Kubernetes community. Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment, whether running in on-premises data centers or public clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required. diff --git a/Sources/Services/AWSEMR/EMRClient.swift b/Sources/Services/AWSEMR/EMRClient.swift index 38ff52628f1..b3db6cdd02f 100644 --- a/Sources/Services/AWSEMR/EMRClient.swift +++ b/Sources/Services/AWSEMR/EMRClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class EMRClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EMRClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EMRClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class EMRClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class EMRClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class EMRClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EMRClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class EMRClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EMRClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEMR/EMRClientProtocol.swift b/Sources/Services/AWSEMR/EMRClientProtocol.swift index 39abe1c027f..e56bb00e46a 100644 --- a/Sources/Services/AWSEMR/EMRClientProtocol.swift +++ b/Sources/Services/AWSEMR/EMRClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EMR is a web service that makes it easier to process large amounts of data efficiently. Amazon EMR uses Hadoop processing combined with several Amazon Web Services services to do tasks such as web indexing, data mining, log file analysis, machine learning, scientific simulation, and data warehouse management. diff --git a/Sources/Services/AWSEMRServerless/EMRServerlessClient.swift b/Sources/Services/AWSEMRServerless/EMRServerlessClient.swift index 177be7b2589..894c95d7e79 100644 --- a/Sources/Services/AWSEMRServerless/EMRServerlessClient.swift +++ b/Sources/Services/AWSEMRServerless/EMRServerlessClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class EMRServerlessClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EMRServerlessClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EMRServerlessClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class EMRServerlessClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class EMRServerlessClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class EMRServerlessClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EMRServerlessClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class EMRServerlessClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EMRServerlessClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEMRServerless/EMRServerlessClientProtocol.swift b/Sources/Services/AWSEMRServerless/EMRServerlessClientProtocol.swift index 9ec75232c62..a1f9d7f1dbc 100644 --- a/Sources/Services/AWSEMRServerless/EMRServerlessClientProtocol.swift +++ b/Sources/Services/AWSEMRServerless/EMRServerlessClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EMR Serverless is a new deployment option for Amazon EMR. EMR Serverless provides a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive. With EMR Serverless, you don’t have to configure, optimize, secure, or operate clusters to run applications with these frameworks. The API reference to Amazon EMR Serverless is emr-serverless. The emr-serverless prefix is used in the following scenarios: diff --git a/Sources/Services/AWSEMRcontainers/EMRcontainersClient.swift b/Sources/Services/AWSEMRcontainers/EMRcontainersClient.swift index be63cf45c49..6acd5cccfca 100644 --- a/Sources/Services/AWSEMRcontainers/EMRcontainersClient.swift +++ b/Sources/Services/AWSEMRcontainers/EMRcontainersClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class EMRcontainersClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EMRcontainersClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EMRcontainersClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class EMRcontainersClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class EMRcontainersClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class EMRcontainersClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EMRcontainersClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class EMRcontainersClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EMRcontainersClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEMRcontainers/EMRcontainersClientProtocol.swift b/Sources/Services/AWSEMRcontainers/EMRcontainersClientProtocol.swift index f134c05c078..6b9500b2d5b 100644 --- a/Sources/Services/AWSEMRcontainers/EMRcontainersClientProtocol.swift +++ b/Sources/Services/AWSEMRcontainers/EMRcontainersClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EMR on EKS provides a deployment option for Amazon EMR that allows you to run open-source big data frameworks on Amazon Elastic Kubernetes Service (Amazon EKS). With this deployment option, you can focus on running analytics workloads while Amazon EMR on EKS builds, configures, and manages containers for open-source applications. For more information about Amazon EMR on EKS concepts and tasks, see [What is shared id="EMR-EKS"/>](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks.html). Amazon EMR containers is the API name for Amazon EMR on EKS. The emr-containers prefix is used in the following scenarios: diff --git a/Sources/Services/AWSElastiCache/ElastiCacheClient.swift b/Sources/Services/AWSElastiCache/ElastiCacheClient.swift index 41f496b7b98..7e5afba1b01 100644 --- a/Sources/Services/AWSElastiCache/ElastiCacheClient.swift +++ b/Sources/Services/AWSElastiCache/ElastiCacheClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class ElastiCacheClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ElastiCacheClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ElastiCacheClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class ElastiCacheClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class ElastiCacheClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class ElastiCacheClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElastiCacheClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class ElastiCacheClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElastiCacheClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSElastiCache/ElastiCacheClientProtocol.swift b/Sources/Services/AWSElastiCache/ElastiCacheClientProtocol.swift index 5b05c223285..d88fe3987d4 100644 --- a/Sources/Services/AWSElastiCache/ElastiCacheClientProtocol.swift +++ b/Sources/Services/AWSElastiCache/ElastiCacheClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon ElastiCache Amazon ElastiCache is a web service that makes it easier to set up, operate, and scale a distributed cache in the cloud. With ElastiCache, customers get all of the benefits of a high-performance, in-memory cache with less of the administrative burden involved in launching and managing a distributed cache. The service makes setup, scaling, and cluster failure handling much simpler than in a self-managed cache deployment. In addition, through integration with Amazon CloudWatch, customers get enhanced visibility into the key performance statistics associated with their cache and can receive alarms if a part of their cache runs hot. diff --git a/Sources/Services/AWSElasticBeanstalk/ElasticBeanstalkClient.swift b/Sources/Services/AWSElasticBeanstalk/ElasticBeanstalkClient.swift index d080b95ff17..ad72557bf52 100644 --- a/Sources/Services/AWSElasticBeanstalk/ElasticBeanstalkClient.swift +++ b/Sources/Services/AWSElasticBeanstalk/ElasticBeanstalkClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class ElasticBeanstalkClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ElasticBeanstalkClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ElasticBeanstalkClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class ElasticBeanstalkClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class ElasticBeanstalkClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class ElasticBeanstalkClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticBeanstalkClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class ElasticBeanstalkClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticBeanstalkClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSElasticBeanstalk/ElasticBeanstalkClientProtocol.swift b/Sources/Services/AWSElasticBeanstalk/ElasticBeanstalkClientProtocol.swift index ed9e6bd63f3..5bab4c3f9b4 100644 --- a/Sources/Services/AWSElasticBeanstalk/ElasticBeanstalkClientProtocol.swift +++ b/Sources/Services/AWSElasticBeanstalk/ElasticBeanstalkClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Elastic Beanstalk AWS Elastic Beanstalk makes it easy for you to create, deploy, and manage scalable, fault-tolerant applications running on the Amazon Web Services cloud. For more information about this product, go to the [AWS Elastic Beanstalk](http://aws.amazon.com/elasticbeanstalk/) details page. The location of the latest AWS Elastic Beanstalk WSDL is [https://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl](https://elasticbeanstalk.s3.amazonaws.com/doc/2010-12-01/AWSElasticBeanstalk.wsdl). To install the Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools that enable you to access the API, go to [Tools for Amazon Web Services](http://aws.amazon.com/tools/). Endpoints For a list of region-specific endpoints that AWS Elastic Beanstalk supports, go to [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region) in the Amazon Web Services Glossary. diff --git a/Sources/Services/AWSElasticInference/ElasticInferenceClient.swift b/Sources/Services/AWSElasticInference/ElasticInferenceClient.swift index 6447dcc7225..1464f3c0322 100644 --- a/Sources/Services/AWSElasticInference/ElasticInferenceClient.swift +++ b/Sources/Services/AWSElasticInference/ElasticInferenceClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ElasticInferenceClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ElasticInferenceClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ElasticInferenceClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ElasticInferenceClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ElasticInferenceClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ElasticInferenceClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticInferenceClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ElasticInferenceClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticInferenceClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSElasticInference/ElasticInferenceClientProtocol.swift b/Sources/Services/AWSElasticInference/ElasticInferenceClientProtocol.swift index 22e0af58c20..2ea50a07325 100644 --- a/Sources/Services/AWSElasticInference/ElasticInferenceClientProtocol.swift +++ b/Sources/Services/AWSElasticInference/ElasticInferenceClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Elastic Inference public APIs. February 15, 2023: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. diff --git a/Sources/Services/AWSElasticLoadBalancing/ElasticLoadBalancingClient.swift b/Sources/Services/AWSElasticLoadBalancing/ElasticLoadBalancingClient.swift index 262eaf3099d..e84778229ff 100644 --- a/Sources/Services/AWSElasticLoadBalancing/ElasticLoadBalancingClient.swift +++ b/Sources/Services/AWSElasticLoadBalancing/ElasticLoadBalancingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class ElasticLoadBalancingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ElasticLoadBalancingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ElasticLoadBalancingClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class ElasticLoadBalancingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class ElasticLoadBalancingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class ElasticLoadBalancingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticLoadBalancingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class ElasticLoadBalancingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticLoadBalancingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSElasticLoadBalancing/ElasticLoadBalancingClientProtocol.swift b/Sources/Services/AWSElasticLoadBalancing/ElasticLoadBalancingClientProtocol.swift index 9ae451015a1..11c84c1309d 100644 --- a/Sources/Services/AWSElasticLoadBalancing/ElasticLoadBalancingClientProtocol.swift +++ b/Sources/Services/AWSElasticLoadBalancing/ElasticLoadBalancingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Elastic Load Balancing A load balancer can distribute incoming traffic across your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered instances and ensures that it routes traffic only to healthy instances. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer and a protocol and port number for connections from the load balancer to the instances. Elastic Load Balancing supports three types of load balancers: Application Load Balancers, Network Load Balancers, and Classic Load Balancers. You can select a load balancer based on your application needs. For more information, see the [Elastic Load Balancing User Guide](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/). This reference covers the 2012-06-01 API, which supports Classic Load Balancers. The 2015-12-01 API supports Application Load Balancers and Network Load Balancers. To get started, create a load balancer with one or more listeners using [CreateLoadBalancer]. Register your instances with the load balancer using [RegisterInstancesWithLoadBalancer]. All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds with a 200 OK response code. diff --git a/Sources/Services/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2Client.swift b/Sources/Services/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2Client.swift index 2d8789f44cc..080c89fe398 100644 --- a/Sources/Services/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2Client.swift +++ b/Sources/Services/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class ElasticLoadBalancingv2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ElasticLoadBalancingv2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ElasticLoadBalancingv2ClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class ElasticLoadBalancingv2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class ElasticLoadBalancingv2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class ElasticLoadBalancingv2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticLoadBalancingv2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class ElasticLoadBalancingv2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticLoadBalancingv2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2ClientProtocol.swift b/Sources/Services/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2ClientProtocol.swift index c4e8dabcf54..290bfab898e 100644 --- a/Sources/Services/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2ClientProtocol.swift +++ b/Sources/Services/AWSElasticLoadBalancingv2/ElasticLoadBalancingv2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Elastic Load Balancing A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets. Elastic Load Balancing supports the following types of load balancers: Application Load Balancers, Network Load Balancers, Gateway Load Balancers, and Classic Load Balancers. This reference covers the following load balancer types: diff --git a/Sources/Services/AWSElasticTranscoder/ElasticTranscoderClient.swift b/Sources/Services/AWSElasticTranscoder/ElasticTranscoderClient.swift index ab93a167f03..e39c30fc33d 100644 --- a/Sources/Services/AWSElasticTranscoder/ElasticTranscoderClient.swift +++ b/Sources/Services/AWSElasticTranscoder/ElasticTranscoderClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ElasticTranscoderClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ElasticTranscoderClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ElasticTranscoderClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ElasticTranscoderClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ElasticTranscoderClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ElasticTranscoderClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticTranscoderClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ElasticTranscoderClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticTranscoderClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSElasticTranscoder/ElasticTranscoderClientProtocol.swift b/Sources/Services/AWSElasticTranscoder/ElasticTranscoderClientProtocol.swift index 78bc7cdf88d..bf3eda47931 100644 --- a/Sources/Services/AWSElasticTranscoder/ElasticTranscoderClientProtocol.swift +++ b/Sources/Services/AWSElasticTranscoder/ElasticTranscoderClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Elastic Transcoder Service The AWS Elastic Transcoder Service. diff --git a/Sources/Services/AWSElasticsearchService/ElasticsearchClient.swift b/Sources/Services/AWSElasticsearchService/ElasticsearchClient.swift index 20c426bb62d..db982f8ffad 100644 --- a/Sources/Services/AWSElasticsearchService/ElasticsearchClient.swift +++ b/Sources/Services/AWSElasticsearchService/ElasticsearchClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ElasticsearchClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ElasticsearchClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ElasticsearchClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ElasticsearchClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ElasticsearchClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ElasticsearchClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticsearchClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ElasticsearchClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ElasticsearchClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSElasticsearchService/ElasticsearchClientProtocol.swift b/Sources/Services/AWSElasticsearchService/ElasticsearchClientProtocol.swift index fc6e10a2e01..cb9d2ea647c 100644 --- a/Sources/Services/AWSElasticsearchService/ElasticsearchClientProtocol.swift +++ b/Sources/Services/AWSElasticsearchService/ElasticsearchClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Elasticsearch Configuration Service Use the Amazon Elasticsearch Configuration API to create, configure, and manage Elasticsearch domains. For sample code that uses the Configuration API, see the [Amazon Elasticsearch Service Developer Guide](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-configuration-samples.html). The guide also contains [sample code for sending signed HTTP requests to the Elasticsearch APIs](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-request-signing.html). The endpoint for configuration service requests is region-specific: es.region.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see [Regions and Endpoints](http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticsearch-service-regions). diff --git a/Sources/Services/AWSEventBridge/EventBridgeClient.swift b/Sources/Services/AWSEventBridge/EventBridgeClient.swift index e9983054979..5dc159babf7 100644 --- a/Sources/Services/AWSEventBridge/EventBridgeClient.swift +++ b/Sources/Services/AWSEventBridge/EventBridgeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class EventBridgeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EventBridgeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EventBridgeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class EventBridgeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class EventBridgeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class EventBridgeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EventBridgeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class EventBridgeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EventBridgeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEventBridge/EventBridgeClientProtocol.swift b/Sources/Services/AWSEventBridge/EventBridgeClientProtocol.swift index 1b038c22456..f5eb0447e15 100644 --- a/Sources/Services/AWSEventBridge/EventBridgeClientProtocol.swift +++ b/Sources/Services/AWSEventBridge/EventBridgeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EventBridge helps you to respond to state changes in your Amazon Web Services resources. When your resources change state, they automatically send events to an event stream. You can create rules that match selected events in the stream and route them to targets to take action. You can also use rules to take action on a predetermined schedule. For example, you can configure rules to: diff --git a/Sources/Services/AWSEvidently/EvidentlyClient.swift b/Sources/Services/AWSEvidently/EvidentlyClient.swift index 4a8bdfc67e6..04ed5e43a02 100644 --- a/Sources/Services/AWSEvidently/EvidentlyClient.swift +++ b/Sources/Services/AWSEvidently/EvidentlyClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class EvidentlyClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await EvidentlyClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try EvidentlyClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class EvidentlyClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class EvidentlyClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class EvidentlyClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EvidentlyClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class EvidentlyClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("EvidentlyClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSEvidently/EvidentlyClientProtocol.swift b/Sources/Services/AWSEvidently/EvidentlyClientProtocol.swift index 47c56855c92..976472edd6e 100644 --- a/Sources/Services/AWSEvidently/EvidentlyClientProtocol.swift +++ b/Sources/Services/AWSEvidently/EvidentlyClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// You can use Amazon CloudWatch Evidently to safely validate new features by serving them to a specified percentage of your users while you roll out the feature. You can monitor the performance of the new feature to help you decide when to ramp up traffic to your users. This helps you reduce risk and identify unintended consequences before you fully launch the feature. You can also conduct A/B experiments to make feature design decisions based on evidence and data. An experiment can test as many as five variations at once. Evidently collects experiment data and analyzes it using statistical methods. It also provides clear recommendations about which variations perform better. You can test both user-facing features and backend features. diff --git a/Sources/Services/AWSFMS/FMSClient.swift b/Sources/Services/AWSFMS/FMSClient.swift index 0c9cbd5bc8e..6e808bd949f 100644 --- a/Sources/Services/AWSFMS/FMSClient.swift +++ b/Sources/Services/AWSFMS/FMSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class FMSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await FMSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try FMSClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class FMSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class FMSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class FMSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FMSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class FMSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FMSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSFMS/FMSClientProtocol.swift b/Sources/Services/AWSFMS/FMSClientProtocol.swift index 15aeafd353a..928d4603e04 100644 --- a/Sources/Services/AWSFMS/FMSClientProtocol.swift +++ b/Sources/Services/AWSFMS/FMSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the Firewall Manager API Reference. This guide is for developers who need detailed information about the Firewall Manager API actions, data types, and errors. For detailed information about Firewall Manager features, see the [Firewall Manager Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/fms-chapter.html). Some API actions require explicit resource permissions. For information, see the developer guide topic [Firewall Manager required permissions for API actions](https://docs.aws.amazon.com/waf/latest/developerguide/fms-api-permissions-ref.html). diff --git a/Sources/Services/AWSFSx/FSxClient.swift b/Sources/Services/AWSFSx/FSxClient.swift index 9a58cf8fc60..37de5807300 100644 --- a/Sources/Services/AWSFSx/FSxClient.swift +++ b/Sources/Services/AWSFSx/FSxClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class FSxClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await FSxClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try FSxClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class FSxClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class FSxClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class FSxClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FSxClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class FSxClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FSxClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSFSx/FSxClientProtocol.swift b/Sources/Services/AWSFSx/FSxClientProtocol.swift index 42ef226d6cd..48946cc6756 100644 --- a/Sources/Services/AWSFSx/FSxClientProtocol.swift +++ b/Sources/Services/AWSFSx/FSxClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon FSx is a fully managed service that makes it easy for storage and application administrators to launch and use shared file storage. diff --git a/Sources/Services/AWSFinspace/FinspaceClient.swift b/Sources/Services/AWSFinspace/FinspaceClient.swift index aa414f2e062..80de3a7fca6 100644 --- a/Sources/Services/AWSFinspace/FinspaceClient.swift +++ b/Sources/Services/AWSFinspace/FinspaceClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class FinspaceClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await FinspaceClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try FinspaceClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class FinspaceClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class FinspaceClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class FinspaceClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FinspaceClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class FinspaceClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FinspaceClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSFinspace/FinspaceClientProtocol.swift b/Sources/Services/AWSFinspace/FinspaceClientProtocol.swift index ac1a2c2cea9..999bcd6f65e 100644 --- a/Sources/Services/AWSFinspace/FinspaceClientProtocol.swift +++ b/Sources/Services/AWSFinspace/FinspaceClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The FinSpace management service provides the APIs for managing FinSpace environments. diff --git a/Sources/Services/AWSFinspacedata/FinspacedataClient.swift b/Sources/Services/AWSFinspacedata/FinspacedataClient.swift index 6ec3188887d..ced75d978e5 100644 --- a/Sources/Services/AWSFinspacedata/FinspacedataClient.swift +++ b/Sources/Services/AWSFinspacedata/FinspacedataClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class FinspacedataClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await FinspacedataClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try FinspacedataClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class FinspacedataClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class FinspacedataClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class FinspacedataClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FinspacedataClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class FinspacedataClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FinspacedataClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSFinspacedata/FinspacedataClientProtocol.swift b/Sources/Services/AWSFinspacedata/FinspacedataClientProtocol.swift index ba2b048d3fa..f36621bebd8 100644 --- a/Sources/Services/AWSFinspacedata/FinspacedataClientProtocol.swift +++ b/Sources/Services/AWSFinspacedata/FinspacedataClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The FinSpace APIs let you take actions inside the FinSpace. diff --git a/Sources/Services/AWSFirehose/FirehoseClient.swift b/Sources/Services/AWSFirehose/FirehoseClient.swift index 07268ea5063..0ee5aeefa7f 100644 --- a/Sources/Services/AWSFirehose/FirehoseClient.swift +++ b/Sources/Services/AWSFirehose/FirehoseClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class FirehoseClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await FirehoseClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try FirehoseClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class FirehoseClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class FirehoseClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class FirehoseClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FirehoseClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class FirehoseClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FirehoseClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSFirehose/FirehoseClientProtocol.swift b/Sources/Services/AWSFirehose/FirehoseClientProtocol.swift index b86638c1967..e1f5e014dcc 100644 --- a/Sources/Services/AWSFirehose/FirehoseClientProtocol.swift +++ b/Sources/Services/AWSFirehose/FirehoseClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Kinesis Data Firehose API Reference Amazon Kinesis Data Firehose is a fully managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon OpenSearch Service, Amazon Redshift, Splunk, and various other supportd destinations. diff --git a/Sources/Services/AWSFis/FisClient.swift b/Sources/Services/AWSFis/FisClient.swift index 3057579b0b2..00d282d03e3 100644 --- a/Sources/Services/AWSFis/FisClient.swift +++ b/Sources/Services/AWSFis/FisClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class FisClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await FisClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try FisClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class FisClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class FisClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class FisClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FisClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class FisClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FisClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSFis/FisClientProtocol.swift b/Sources/Services/AWSFis/FisClientProtocol.swift index 0eca639d48d..55c7c66fad9 100644 --- a/Sources/Services/AWSFis/FisClientProtocol.swift +++ b/Sources/Services/AWSFis/FisClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Fault Injection Simulator is a managed service that enables you to perform fault injection experiments on your Amazon Web Services workloads. For more information, see the [Fault Injection Simulator User Guide](https://docs.aws.amazon.com/fis/latest/userguide/). diff --git a/Sources/Services/AWSForecast/ForecastClient.swift b/Sources/Services/AWSForecast/ForecastClient.swift index f298f91be35..dcbfc78b495 100644 --- a/Sources/Services/AWSForecast/ForecastClient.swift +++ b/Sources/Services/AWSForecast/ForecastClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ForecastClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ForecastClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ForecastClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ForecastClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ForecastClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ForecastClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ForecastClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ForecastClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ForecastClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSForecast/ForecastClientProtocol.swift b/Sources/Services/AWSForecast/ForecastClientProtocol.swift index e0802dc354d..9a318bd666b 100644 --- a/Sources/Services/AWSForecast/ForecastClientProtocol.swift +++ b/Sources/Services/AWSForecast/ForecastClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Provides APIs for creating and managing Amazon Forecast resources. diff --git a/Sources/Services/AWSForecastquery/ForecastqueryClient.swift b/Sources/Services/AWSForecastquery/ForecastqueryClient.swift index 9c2a35e423b..06d7ea97223 100644 --- a/Sources/Services/AWSForecastquery/ForecastqueryClient.swift +++ b/Sources/Services/AWSForecastquery/ForecastqueryClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ForecastqueryClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ForecastqueryClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ForecastqueryClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ForecastqueryClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ForecastqueryClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ForecastqueryClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ForecastqueryClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ForecastqueryClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ForecastqueryClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSForecastquery/ForecastqueryClientProtocol.swift b/Sources/Services/AWSForecastquery/ForecastqueryClientProtocol.swift index 34911d02255..89ab2238df6 100644 --- a/Sources/Services/AWSForecastquery/ForecastqueryClientProtocol.swift +++ b/Sources/Services/AWSForecastquery/ForecastqueryClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Provides APIs for creating and managing Amazon Forecast resources. diff --git a/Sources/Services/AWSFraudDetector/FraudDetectorClient.swift b/Sources/Services/AWSFraudDetector/FraudDetectorClient.swift index 48c15722f92..8b6fe40f899 100644 --- a/Sources/Services/AWSFraudDetector/FraudDetectorClient.swift +++ b/Sources/Services/AWSFraudDetector/FraudDetectorClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class FraudDetectorClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await FraudDetectorClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try FraudDetectorClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class FraudDetectorClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class FraudDetectorClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class FraudDetectorClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FraudDetectorClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class FraudDetectorClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("FraudDetectorClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSFraudDetector/FraudDetectorClientProtocol.swift b/Sources/Services/AWSFraudDetector/FraudDetectorClientProtocol.swift index b1c6774edee..53f7ac22ea7 100644 --- a/Sources/Services/AWSFraudDetector/FraudDetectorClientProtocol.swift +++ b/Sources/Services/AWSFraudDetector/FraudDetectorClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the Amazon Fraud Detector API Reference. This guide is for developers who need detailed information about Amazon Fraud Detector API actions, data types, and errors. For more information about Amazon Fraud Detector features, see the [Amazon Fraud Detector User Guide](https://docs.aws.amazon.com/frauddetector/latest/ug/). We provide the Query API as well as AWS software development kits (SDK) for Amazon Fraud Detector in Java and Python programming languages. The Amazon Fraud Detector Query API provides HTTPS requests that use the HTTP verb GET or POST and a Query parameter Action. AWS SDK provides libraries, sample code, tutorials, and other resources for software developers who prefer to build applications using language-specific APIs instead of submitting a request over HTTP or HTTPS. These libraries provide basic functions that automatically take care of tasks such as cryptographically signing your requests, retrying requests, and handling error responses, so that it is easier for you to get started. For more information about the AWS SDKs, see [Tools to build on AWS](https://docs.aws.amazon.com/https:/aws.amazon.com/tools/). diff --git a/Sources/Services/AWSGameLift/GameLiftClient.swift b/Sources/Services/AWSGameLift/GameLiftClient.swift index fe58cc046fe..58ef08f2d73 100644 --- a/Sources/Services/AWSGameLift/GameLiftClient.swift +++ b/Sources/Services/AWSGameLift/GameLiftClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GameLiftClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GameLiftClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GameLiftClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GameLiftClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GameLiftClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GameLiftClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GameLiftClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GameLiftClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GameLiftClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGameLift/GameLiftClientProtocol.swift b/Sources/Services/AWSGameLift/GameLiftClientProtocol.swift index 1f98e2ac991..fea85a835ab 100644 --- a/Sources/Services/AWSGameLift/GameLiftClientProtocol.swift +++ b/Sources/Services/AWSGameLift/GameLiftClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon GameLift provides solutions for hosting session-based multiplayer game servers in the cloud, including tools for deploying, operating, and scaling game servers. Built on Amazon Web Services global computing infrastructure, GameLift helps you deliver high-performance, high-reliability, low-cost game servers while dynamically scaling your resource usage to meet player demand. About GameLift solutions Get more information on these GameLift solutions in the [GameLift Developer Guide](https://docs.aws.amazon.com/gamelift/latest/developerguide/). diff --git a/Sources/Services/AWSGameSparks/GameSparksClient.swift b/Sources/Services/AWSGameSparks/GameSparksClient.swift index 6aa329138c1..abba4766680 100644 --- a/Sources/Services/AWSGameSparks/GameSparksClient.swift +++ b/Sources/Services/AWSGameSparks/GameSparksClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GameSparksClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GameSparksClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GameSparksClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GameSparksClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GameSparksClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GameSparksClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GameSparksClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GameSparksClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GameSparksClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGameSparks/GameSparksClientProtocol.swift b/Sources/Services/AWSGameSparks/GameSparksClientProtocol.swift index bbefb551599..259b1e0fd23 100644 --- a/Sources/Services/AWSGameSparks/GameSparksClientProtocol.swift +++ b/Sources/Services/AWSGameSparks/GameSparksClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// diff --git a/Sources/Services/AWSGlacier/GlacierClient.swift b/Sources/Services/AWSGlacier/GlacierClient.swift index 31798fc19b7..ce4d1b42b8f 100644 --- a/Sources/Services/AWSGlacier/GlacierClient.swift +++ b/Sources/Services/AWSGlacier/GlacierClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GlacierClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GlacierClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GlacierClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GlacierClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GlacierClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GlacierClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GlacierClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GlacierClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GlacierClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGlacier/GlacierClientProtocol.swift b/Sources/Services/AWSGlacier/GlacierClientProtocol.swift index d267dfa7015..7fc1fb46519 100644 --- a/Sources/Services/AWSGlacier/GlacierClientProtocol.swift +++ b/Sources/Services/AWSGlacier/GlacierClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon S3 Glacier (Glacier) is a storage solution for "cold data." Glacier is an extremely low-cost storage service that provides secure, durable, and easy-to-use storage for data backup and archival. With Glacier, customers can store their data cost effectively for months, years, or decades. Glacier also enables customers to offload the administrative burdens of operating and scaling storage to AWS, so they don't have to worry about capacity planning, hardware provisioning, data replication, hardware failure and recovery, or time-consuming hardware migrations. Glacier is a great storage choice when low storage cost is paramount and your data is rarely retrieved. If your application requires fast or frequent access to your data, consider using Amazon S3. For more information, see [Amazon Simple Storage Service (Amazon S3)](http://aws.amazon.com/s3/). You can store any kind of data in any format. There is no maximum limit on the total amount of data you can store in Glacier. If you are a first-time user of Glacier, we recommend that you begin by reading the following sections in the Amazon S3 Glacier Developer Guide: diff --git a/Sources/Services/AWSGlobalAccelerator/GlobalAcceleratorClient.swift b/Sources/Services/AWSGlobalAccelerator/GlobalAcceleratorClient.swift index ca2f6fbb4cf..a71fa51b2f7 100644 --- a/Sources/Services/AWSGlobalAccelerator/GlobalAcceleratorClient.swift +++ b/Sources/Services/AWSGlobalAccelerator/GlobalAcceleratorClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GlobalAcceleratorClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GlobalAcceleratorClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GlobalAcceleratorClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GlobalAcceleratorClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GlobalAcceleratorClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GlobalAcceleratorClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GlobalAcceleratorClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GlobalAcceleratorClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GlobalAcceleratorClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGlobalAccelerator/GlobalAcceleratorClientProtocol.swift b/Sources/Services/AWSGlobalAccelerator/GlobalAcceleratorClientProtocol.swift index 5f9b1e9d29f..a055cb972a9 100644 --- a/Sources/Services/AWSGlobalAccelerator/GlobalAcceleratorClientProtocol.swift +++ b/Sources/Services/AWSGlobalAccelerator/GlobalAcceleratorClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Global Accelerator This is the Global Accelerator API Reference. This guide is for developers who need detailed information about Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the [Global Accelerator Developer Guide](https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html). Global Accelerator is a service in which you create accelerators to improve the performance of your applications for local and global users. Depending on the type of accelerator you choose, you can gain additional benefits. diff --git a/Sources/Services/AWSGlue/GlueClient.swift b/Sources/Services/AWSGlue/GlueClient.swift index 6935b164494..ab7c3eb62ff 100644 --- a/Sources/Services/AWSGlue/GlueClient.swift +++ b/Sources/Services/AWSGlue/GlueClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GlueClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GlueClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GlueClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GlueClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GlueClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GlueClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GlueClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GlueClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GlueClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGlue/GlueClientProtocol.swift b/Sources/Services/AWSGlue/GlueClientProtocol.swift index 0c19612f63f..712389f190d 100644 --- a/Sources/Services/AWSGlue/GlueClientProtocol.swift +++ b/Sources/Services/AWSGlue/GlueClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Glue Defines the public endpoint for the Glue service. diff --git a/Sources/Services/AWSGrafana/GrafanaClient.swift b/Sources/Services/AWSGrafana/GrafanaClient.swift index 59be4b9ec1f..23f3e239e60 100644 --- a/Sources/Services/AWSGrafana/GrafanaClient.swift +++ b/Sources/Services/AWSGrafana/GrafanaClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GrafanaClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GrafanaClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GrafanaClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GrafanaClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GrafanaClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GrafanaClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GrafanaClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GrafanaClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GrafanaClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGrafana/GrafanaClientProtocol.swift b/Sources/Services/AWSGrafana/GrafanaClientProtocol.swift index 7ac117a62a7..08614936bf6 100644 --- a/Sources/Services/AWSGrafana/GrafanaClientProtocol.swift +++ b/Sources/Services/AWSGrafana/GrafanaClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Managed Grafana is a fully managed and secure data visualization service that you can use to instantly query, correlate, and visualize operational metrics, logs, and traces from multiple sources. Amazon Managed Grafana makes it easy to deploy, operate, and scale Grafana, a widely deployed data visualization tool that is popular for its extensible data support. With Amazon Managed Grafana, you create logically isolated Grafana servers called workspaces. In a workspace, you can create Grafana dashboards and visualizations to analyze your metrics, logs, and traces without having to build, package, or deploy any hardware to run Grafana servers. diff --git a/Sources/Services/AWSGreengrass/GreengrassClient.swift b/Sources/Services/AWSGreengrass/GreengrassClient.swift index 00e5fb432a3..9798aecb76c 100644 --- a/Sources/Services/AWSGreengrass/GreengrassClient.swift +++ b/Sources/Services/AWSGreengrass/GreengrassClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GreengrassClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GreengrassClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GreengrassClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GreengrassClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GreengrassClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GreengrassClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GreengrassClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GreengrassClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GreengrassClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGreengrass/GreengrassClientProtocol.swift b/Sources/Services/AWSGreengrass/GreengrassClientProtocol.swift index c9956cabab8..2fa13a7e848 100644 --- a/Sources/Services/AWSGreengrass/GreengrassClientProtocol.swift +++ b/Sources/Services/AWSGreengrass/GreengrassClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS IoT Greengrass seamlessly extends AWS onto physical devices so they can act locally on the data they generate, while still using the cloud for management, analytics, and durable storage. AWS IoT Greengrass ensures your devices can respond quickly to local events and operate with intermittent connectivity. AWS IoT Greengrass minimizes the cost of transmitting data to the cloud by allowing you to author AWS Lambda functions that execute locally. diff --git a/Sources/Services/AWSGreengrassV2/GreengrassV2Client.swift b/Sources/Services/AWSGreengrassV2/GreengrassV2Client.swift index e4cb063685f..5a2816cf10d 100644 --- a/Sources/Services/AWSGreengrassV2/GreengrassV2Client.swift +++ b/Sources/Services/AWSGreengrassV2/GreengrassV2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GreengrassV2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GreengrassV2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GreengrassV2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GreengrassV2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GreengrassV2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GreengrassV2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GreengrassV2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GreengrassV2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GreengrassV2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGreengrassV2/GreengrassV2ClientProtocol.swift b/Sources/Services/AWSGreengrassV2/GreengrassV2ClientProtocol.swift index b4f31333456..300dcdfe1d5 100644 --- a/Sources/Services/AWSGreengrassV2/GreengrassV2ClientProtocol.swift +++ b/Sources/Services/AWSGreengrassV2/GreengrassV2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// IoT Greengrass brings local compute, messaging, data management, sync, and ML inference capabilities to edge devices. This enables devices to collect and analyze data closer to the source of information, react autonomously to local events, and communicate securely with each other on local networks. Local devices can also communicate securely with Amazon Web Services IoT Core and export IoT data to the Amazon Web Services Cloud. IoT Greengrass developers can use Lambda functions and components to create and deploy applications to fleets of edge devices for local operation. IoT Greengrass Version 2 provides a new major version of the IoT Greengrass Core software, new APIs, and a new console. Use this API reference to learn how to use the IoT Greengrass V2 API operations to manage components, manage deployments, and core devices. For more information, see [What is IoT Greengrass?](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html) in the IoT Greengrass V2 Developer Guide. diff --git a/Sources/Services/AWSGroundStation/GroundStationClient.swift b/Sources/Services/AWSGroundStation/GroundStationClient.swift index 3199827afd7..1192af36383 100644 --- a/Sources/Services/AWSGroundStation/GroundStationClient.swift +++ b/Sources/Services/AWSGroundStation/GroundStationClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GroundStationClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GroundStationClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GroundStationClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GroundStationClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GroundStationClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GroundStationClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GroundStationClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GroundStationClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GroundStationClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGroundStation/GroundStationClientProtocol.swift b/Sources/Services/AWSGroundStation/GroundStationClientProtocol.swift index 31c67ae0c2a..c7b6a723eeb 100644 --- a/Sources/Services/AWSGroundStation/GroundStationClientProtocol.swift +++ b/Sources/Services/AWSGroundStation/GroundStationClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the AWS Ground Station API Reference. AWS Ground Station is a fully managed service that enables you to control satellite communications, downlink and process satellite data, and scale your satellite operations efficiently and cost-effectively without having to build or manage your own ground station infrastructure. diff --git a/Sources/Services/AWSGuardDuty/GuardDutyClient.swift b/Sources/Services/AWSGuardDuty/GuardDutyClient.swift index 8f0f4ccd00f..2658212ce83 100644 --- a/Sources/Services/AWSGuardDuty/GuardDutyClient.swift +++ b/Sources/Services/AWSGuardDuty/GuardDutyClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class GuardDutyClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await GuardDutyClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try GuardDutyClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class GuardDutyClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class GuardDutyClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class GuardDutyClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GuardDutyClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class GuardDutyClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("GuardDutyClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSGuardDuty/GuardDutyClientProtocol.swift b/Sources/Services/AWSGuardDuty/GuardDutyClientProtocol.swift index e72c135d9ca..67193cd3796 100644 --- a/Sources/Services/AWSGuardDuty/GuardDutyClientProtocol.swift +++ b/Sources/Services/AWSGuardDuty/GuardDutyClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon GuardDuty is a continuous security monitoring service that analyzes and processes the following data sources: VPC flow logs, Amazon Web Services CloudTrail management event logs, CloudTrail S3 data event logs, EKS audit logs, DNS logs, and Amazon EBS volume data. It uses threat intelligence feeds, such as lists of malicious IPs and domains, and machine learning to identify unexpected, potentially unauthorized, and malicious activity within your Amazon Web Services environment. This can include issues like escalations of privileges, uses of exposed credentials, or communication with malicious IPs, domains, or presence of malware on your Amazon EC2 instances and container workloads. For example, GuardDuty can detect compromised EC2 instances and container workloads serving malware, or mining bitcoin. GuardDuty also monitors Amazon Web Services account access behavior for signs of compromise, such as unauthorized infrastructure deployments like EC2 instances deployed in a Region that has never been used, or unusual API calls like a password policy change to reduce password strength. GuardDuty informs you about the status of your Amazon Web Services environment by producing security findings that you can view in the GuardDuty console or through Amazon EventBridge. For more information, see the [Amazon GuardDuty User Guide](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html) . diff --git a/Sources/Services/AWSHealth/HealthClient.swift b/Sources/Services/AWSHealth/HealthClient.swift index 6309752bd4a..157b852a106 100644 --- a/Sources/Services/AWSHealth/HealthClient.swift +++ b/Sources/Services/AWSHealth/HealthClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class HealthClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await HealthClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try HealthClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class HealthClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class HealthClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class HealthClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("HealthClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class HealthClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("HealthClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSHealth/HealthClientProtocol.swift b/Sources/Services/AWSHealth/HealthClientProtocol.swift index b53de294467..a0a6284fa46 100644 --- a/Sources/Services/AWSHealth/HealthClientProtocol.swift +++ b/Sources/Services/AWSHealth/HealthClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Health The Health API provides programmatic access to the Health information that appears in the [Personal Health Dashboard](https://phd.aws.amazon.com/phd/home#/). You can use the API operations to get information about events that might affect your Amazon Web Services services and resources. diff --git a/Sources/Services/AWSHealthLake/HealthLakeClient.swift b/Sources/Services/AWSHealthLake/HealthLakeClient.swift index dbceb6ac63d..d3af3bfdf6f 100644 --- a/Sources/Services/AWSHealthLake/HealthLakeClient.swift +++ b/Sources/Services/AWSHealthLake/HealthLakeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class HealthLakeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await HealthLakeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try HealthLakeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class HealthLakeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class HealthLakeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class HealthLakeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("HealthLakeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class HealthLakeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("HealthLakeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSHealthLake/HealthLakeClientProtocol.swift b/Sources/Services/AWSHealthLake/HealthLakeClientProtocol.swift index 11089df1606..34506f72180 100644 --- a/Sources/Services/AWSHealthLake/HealthLakeClientProtocol.swift +++ b/Sources/Services/AWSHealthLake/HealthLakeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon HealthLake is a HIPAA eligibile service that allows customers to store, transform, query, and analyze their FHIR-formatted data in a consistent fashion in the cloud. diff --git a/Sources/Services/AWSHoneycode/HoneycodeClient.swift b/Sources/Services/AWSHoneycode/HoneycodeClient.swift index a193478d0ce..fd1f9dbbd09 100644 --- a/Sources/Services/AWSHoneycode/HoneycodeClient.swift +++ b/Sources/Services/AWSHoneycode/HoneycodeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class HoneycodeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await HoneycodeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try HoneycodeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class HoneycodeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class HoneycodeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class HoneycodeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("HoneycodeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class HoneycodeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("HoneycodeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSHoneycode/HoneycodeClientProtocol.swift b/Sources/Services/AWSHoneycode/HoneycodeClientProtocol.swift index 20d210c9825..e5d630225a7 100644 --- a/Sources/Services/AWSHoneycode/HoneycodeClientProtocol.swift +++ b/Sources/Services/AWSHoneycode/HoneycodeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Honeycode is a fully managed service that allows you to quickly build mobile and web apps for teams—without programming. Build Honeycode apps for managing almost anything, like projects, customers, operations, approvals, resources, and even your team. diff --git a/Sources/Services/AWSIAM/IAMClient.swift b/Sources/Services/AWSIAM/IAMClient.swift index 4aebb45e90e..e5d7eccdc9e 100644 --- a/Sources/Services/AWSIAM/IAMClient.swift +++ b/Sources/Services/AWSIAM/IAMClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class IAMClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IAMClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IAMClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class IAMClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class IAMClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class IAMClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IAMClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class IAMClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IAMClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIAM/IAMClientProtocol.swift b/Sources/Services/AWSIAM/IAMClientProtocol.swift index 3d67f5b5555..043953b8acb 100644 --- a/Sources/Services/AWSIAM/IAMClientProtocol.swift +++ b/Sources/Services/AWSIAM/IAMClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Identity and Access Management Identity and Access Management (IAM) is a web service for securely controlling access to Amazon Web Services services. With IAM, you can centrally manage users, security credentials such as access keys, and permissions that control which Amazon Web Services resources users and applications can access. For more information about IAM, see [Identity and Access Management (IAM)](http://aws.amazon.com/iam/) and the [Identity and Access Management User Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/). diff --git a/Sources/Services/AWSIVSRealTime/IVSRealTimeClient.swift b/Sources/Services/AWSIVSRealTime/IVSRealTimeClient.swift index 15b6fa7418a..a30abdfc2c6 100644 --- a/Sources/Services/AWSIVSRealTime/IVSRealTimeClient.swift +++ b/Sources/Services/AWSIVSRealTime/IVSRealTimeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IVSRealTimeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IVSRealTimeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IVSRealTimeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IVSRealTimeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IVSRealTimeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IVSRealTimeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IVSRealTimeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IVSRealTimeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IVSRealTimeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIVSRealTime/IVSRealTimeClientProtocol.swift b/Sources/Services/AWSIVSRealTime/IVSRealTimeClientProtocol.swift index db8e2dc1c62..aa02b2090c8 100644 --- a/Sources/Services/AWSIVSRealTime/IVSRealTimeClientProtocol.swift +++ b/Sources/Services/AWSIVSRealTime/IVSRealTimeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Introduction The Amazon Interactive Video Service (IVS) stage API is REST compatible, using a standard HTTP API and an AWS EventBridge event stream for responses. JSON is used for both requests and responses, including errors. Terminology: The IVS stage API sometimes is referred to as the IVS RealTime API. Resources The following resources contain information about your IVS live stream (see [Getting Started with Amazon IVS](https://docs.aws.amazon.com/ivs/latest/userguide/getting-started.html)): diff --git a/Sources/Services/AWSIdentitystore/IdentitystoreClient.swift b/Sources/Services/AWSIdentitystore/IdentitystoreClient.swift index 3d43cacde42..8a4c016dc44 100644 --- a/Sources/Services/AWSIdentitystore/IdentitystoreClient.swift +++ b/Sources/Services/AWSIdentitystore/IdentitystoreClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IdentitystoreClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IdentitystoreClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IdentitystoreClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IdentitystoreClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IdentitystoreClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IdentitystoreClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IdentitystoreClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IdentitystoreClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IdentitystoreClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIdentitystore/IdentitystoreClientProtocol.swift b/Sources/Services/AWSIdentitystore/IdentitystoreClientProtocol.swift index 82afb9aa5d1..cbbcf4dcf62 100644 --- a/Sources/Services/AWSIdentitystore/IdentitystoreClientProtocol.swift +++ b/Sources/Services/AWSIdentitystore/IdentitystoreClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Identity Store service used by AWS IAM Identity Center (successor to AWS Single Sign-On) provides a single place to retrieve all of your identities (users and groups). For more information, see the [IAM Identity Center User Guide](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html). Although AWS Single Sign-On was renamed, the sso and identitystore API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see [IAM Identity Center rename](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed). This reference guide describes the identity store operations that you can call programatically and includes detailed information about data types and errors. diff --git a/Sources/Services/AWSImagebuilder/ImagebuilderClient.swift b/Sources/Services/AWSImagebuilder/ImagebuilderClient.swift index 5d5432e7399..60d6d4323d0 100644 --- a/Sources/Services/AWSImagebuilder/ImagebuilderClient.swift +++ b/Sources/Services/AWSImagebuilder/ImagebuilderClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ImagebuilderClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ImagebuilderClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ImagebuilderClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ImagebuilderClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ImagebuilderClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ImagebuilderClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ImagebuilderClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ImagebuilderClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ImagebuilderClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSImagebuilder/ImagebuilderClientProtocol.swift b/Sources/Services/AWSImagebuilder/ImagebuilderClientProtocol.swift index 392c4db30c7..737ffc65112 100644 --- a/Sources/Services/AWSImagebuilder/ImagebuilderClientProtocol.swift +++ b/Sources/Services/AWSImagebuilder/ImagebuilderClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// EC2 Image Builder is a fully managed Amazon Web Services service that makes it easier to automate the creation, management, and deployment of customized, secure, and up-to-date "golden" server images that are pre-installed and pre-configured with software and settings to meet specific IT standards. diff --git a/Sources/Services/AWSInspector/InspectorClient.swift b/Sources/Services/AWSInspector/InspectorClient.swift index 8a5ba0d0c64..77467456c0d 100644 --- a/Sources/Services/AWSInspector/InspectorClient.swift +++ b/Sources/Services/AWSInspector/InspectorClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class InspectorClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await InspectorClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try InspectorClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class InspectorClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class InspectorClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class InspectorClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("InspectorClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class InspectorClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("InspectorClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSInspector/InspectorClientProtocol.swift b/Sources/Services/AWSInspector/InspectorClientProtocol.swift index f011e53870e..21774c6a5ca 100644 --- a/Sources/Services/AWSInspector/InspectorClientProtocol.swift +++ b/Sources/Services/AWSInspector/InspectorClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Inspector Amazon Inspector enables you to analyze the behavior of your AWS resources and to identify potential security issues. For more information, see [ Amazon Inspector User Guide](https://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html). diff --git a/Sources/Services/AWSInspector2/Inspector2Client.swift b/Sources/Services/AWSInspector2/Inspector2Client.swift index ce32d24aa70..28e5e53835f 100644 --- a/Sources/Services/AWSInspector2/Inspector2Client.swift +++ b/Sources/Services/AWSInspector2/Inspector2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class Inspector2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await Inspector2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try Inspector2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class Inspector2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class Inspector2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class Inspector2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Inspector2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class Inspector2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Inspector2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSInspector2/Inspector2ClientProtocol.swift b/Sources/Services/AWSInspector2/Inspector2ClientProtocol.swift index f7bf38215d8..96497a63b2a 100644 --- a/Sources/Services/AWSInspector2/Inspector2ClientProtocol.swift +++ b/Sources/Services/AWSInspector2/Inspector2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Inspector is a vulnerability discovery service that automates continuous scanning for security vulnerabilities within your Amazon EC2 and Amazon ECR environments. diff --git a/Sources/Services/AWSInternetMonitor/InternetMonitorClient.swift b/Sources/Services/AWSInternetMonitor/InternetMonitorClient.swift index a26ea4ac5e8..1e8b1c9cca6 100644 --- a/Sources/Services/AWSInternetMonitor/InternetMonitorClient.swift +++ b/Sources/Services/AWSInternetMonitor/InternetMonitorClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class InternetMonitorClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await InternetMonitorClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try InternetMonitorClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class InternetMonitorClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class InternetMonitorClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class InternetMonitorClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("InternetMonitorClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class InternetMonitorClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("InternetMonitorClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSInternetMonitor/InternetMonitorClientProtocol.swift b/Sources/Services/AWSInternetMonitor/InternetMonitorClientProtocol.swift index 462be25cc83..80a535a09a7 100644 --- a/Sources/Services/AWSInternetMonitor/InternetMonitorClientProtocol.swift +++ b/Sources/Services/AWSInternetMonitor/InternetMonitorClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon CloudWatch Internet Monitor provides visibility into how internet issues impact the performance and availability between your applications hosted on Amazon Web Services and your end users. It reduces the time it takes for you to diagnose internet issues from days to minutes. Internet Monitor uses the connectivity data that Amazon Web Services captures from its global networking footprint to calculate a baseline of performance and availability for internet traffic. This is the same data that Amazon Web Services uses to monitor internet uptime and availability. With those measurements as a baseline, Internet Monitor raises awareness for you when there are significant problems for your end users in the different geographic locations where your application runs. Internet Monitor publishes internet measurements to CloudWatch Logs and CloudWatch Metrics, to easily support using CloudWatch tools with health information for geographies and networks specific to your application. Internet Monitor sends health events to Amazon EventBridge so that you can set up notifications. If an issue is caused by the Amazon Web Services network, you also automatically receive an Amazon Web Services Health Dashboard notification with the steps that Amazon Web Services is taking to mitigate the problem. To use Internet Monitor, you create a monitor and associate your application's resources with it, VPCs, CloudFront distributions, or WorkSpaces directories, to enable Internet Monitor to know where your application's internet traffic is. Internet Monitor then provides internet measurements from Amazon Web Services that are specific to the locations and networks that communicate with your application. For more information, see [Using Amazon CloudWatch Internet Monitor](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-InternetMonitor.html) in the Amazon CloudWatch User Guide. diff --git a/Sources/Services/AWSIoT/IoTClient.swift b/Sources/Services/AWSIoT/IoTClient.swift index 4fb01a6e29e..678355fc19a 100644 --- a/Sources/Services/AWSIoT/IoTClient.swift +++ b/Sources/Services/AWSIoT/IoTClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoT/IoTClientProtocol.swift b/Sources/Services/AWSIoT/IoTClientProtocol.swift index 5321b92c259..49cdc71407c 100644 --- a/Sources/Services/AWSIoT/IoTClientProtocol.swift +++ b/Sources/Services/AWSIoT/IoTClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// IoT IoT provides secure, bi-directional communication between Internet-connected devices (such as sensors, actuators, embedded devices, or smart appliances) and the Amazon Web Services cloud. You can discover your custom IoT-Data endpoint to communicate with, configure rules for data processing and integration with other services, organize resources associated with each device (Registry), configure logging, and create and manage policies and credentials to authenticate devices. The service endpoints that expose this API are listed in [Amazon Web Services IoT Core Endpoints and Quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html). You must use the endpoint for the region that has the resources you want to access. The service name used by [Amazon Web Services Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) to sign the request is: execute-api. For more information about how IoT works, see the [Developer Guide](https://docs.aws.amazon.com/iot/latest/developerguide/aws-iot-how-it-works.html). For information about how to use the credentials provider for IoT, see [Authorizing Direct Calls to Amazon Web Services Services](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html). diff --git a/Sources/Services/AWSIoT1ClickDevicesService/IoT1ClickDevicesClient.swift b/Sources/Services/AWSIoT1ClickDevicesService/IoT1ClickDevicesClient.swift index f0b13837b95..dc333250fc5 100644 --- a/Sources/Services/AWSIoT1ClickDevicesService/IoT1ClickDevicesClient.swift +++ b/Sources/Services/AWSIoT1ClickDevicesService/IoT1ClickDevicesClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoT1ClickDevicesClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoT1ClickDevicesClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoT1ClickDevicesClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoT1ClickDevicesClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoT1ClickDevicesClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoT1ClickDevicesClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoT1ClickDevicesClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoT1ClickDevicesClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoT1ClickDevicesClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoT1ClickDevicesService/IoT1ClickDevicesClientProtocol.swift b/Sources/Services/AWSIoT1ClickDevicesService/IoT1ClickDevicesClientProtocol.swift index ef692aa46af..9f47cfb2597 100644 --- a/Sources/Services/AWSIoT1ClickDevicesService/IoT1ClickDevicesClientProtocol.swift +++ b/Sources/Services/AWSIoT1ClickDevicesService/IoT1ClickDevicesClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Describes all of the AWS IoT 1-Click device-related API operations for the service. Also provides sample requests, responses, and errors for the supported web services protocols. diff --git a/Sources/Services/AWSIoT1ClickProjects/IoT1ClickProjectsClient.swift b/Sources/Services/AWSIoT1ClickProjects/IoT1ClickProjectsClient.swift index 5b4c62bb7ac..247b936a2e0 100644 --- a/Sources/Services/AWSIoT1ClickProjects/IoT1ClickProjectsClient.swift +++ b/Sources/Services/AWSIoT1ClickProjects/IoT1ClickProjectsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoT1ClickProjectsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoT1ClickProjectsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoT1ClickProjectsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoT1ClickProjectsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoT1ClickProjectsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoT1ClickProjectsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoT1ClickProjectsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoT1ClickProjectsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoT1ClickProjectsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoT1ClickProjects/IoT1ClickProjectsClientProtocol.swift b/Sources/Services/AWSIoT1ClickProjects/IoT1ClickProjectsClientProtocol.swift index d74ad378cc8..11313da8ed4 100644 --- a/Sources/Services/AWSIoT1ClickProjects/IoT1ClickProjectsClientProtocol.swift +++ b/Sources/Services/AWSIoT1ClickProjects/IoT1ClickProjectsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The AWS IoT 1-Click Projects API Reference diff --git a/Sources/Services/AWSIoTAnalytics/IoTAnalyticsClient.swift b/Sources/Services/AWSIoTAnalytics/IoTAnalyticsClient.swift index e880a4b2212..61da21f3883 100644 --- a/Sources/Services/AWSIoTAnalytics/IoTAnalyticsClient.swift +++ b/Sources/Services/AWSIoTAnalytics/IoTAnalyticsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTAnalyticsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTAnalyticsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTAnalyticsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTAnalyticsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTAnalyticsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTAnalyticsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTAnalyticsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTAnalyticsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTAnalyticsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTAnalytics/IoTAnalyticsClientProtocol.swift b/Sources/Services/AWSIoTAnalytics/IoTAnalyticsClientProtocol.swift index 3f70bd257f6..5e4f763a469 100644 --- a/Sources/Services/AWSIoTAnalytics/IoTAnalyticsClientProtocol.swift +++ b/Sources/Services/AWSIoTAnalytics/IoTAnalyticsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// IoT Analytics allows you to collect large amounts of device data, process messages, and store them. You can then query the data and run sophisticated analytics on it. IoT Analytics enables advanced data exploration through integration with Jupyter Notebooks and data visualization through integration with Amazon QuickSight. Traditional analytics and business intelligence tools are designed to process structured data. IoT data often comes from devices that record noisy processes (such as temperature, motion, or sound). As a result the data from these devices can have significant gaps, corrupted messages, and false readings that must be cleaned up before analysis can occur. Also, IoT data is often only meaningful in the context of other data from external sources. IoT Analytics automates the steps required to analyze data from IoT devices. IoT Analytics filters, transforms, and enriches IoT data before storing it in a time-series data store for analysis. You can set up the service to collect only the data you need from your devices, apply mathematical transforms to process the data, and enrich the data with device-specific metadata such as device type and location before storing it. Then, you can analyze your data by running queries using the built-in SQL query engine, or perform more complex analytics and machine learning inference. IoT Analytics includes pre-built models for common IoT use cases so you can answer questions like which devices are about to fail or which customers are at risk of abandoning their wearable devices. diff --git a/Sources/Services/AWSIoTDataPlane/IoTDataPlaneClient.swift b/Sources/Services/AWSIoTDataPlane/IoTDataPlaneClient.swift index 99d07b1ba19..334add30d9d 100644 --- a/Sources/Services/AWSIoTDataPlane/IoTDataPlaneClient.swift +++ b/Sources/Services/AWSIoTDataPlane/IoTDataPlaneClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTDataPlaneClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTDataPlaneClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTDataPlaneClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTDataPlaneClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTDataPlaneClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTDataPlaneClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTDataPlaneClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTDataPlaneClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTDataPlaneClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTDataPlane/IoTDataPlaneClientProtocol.swift b/Sources/Services/AWSIoTDataPlane/IoTDataPlaneClientProtocol.swift index d842f81f553..5052c258018 100644 --- a/Sources/Services/AWSIoTDataPlane/IoTDataPlaneClientProtocol.swift +++ b/Sources/Services/AWSIoTDataPlane/IoTDataPlaneClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// IoT data IoT data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the Amazon Web Services cloud. It implements a broker for applications and things to publish messages over HTTP (Publish) and retrieve, update, and delete shadows. A shadow is a persistent representation of your things and their state in the Amazon Web Services cloud. Find the endpoint address for actions in IoT data by running this CLI command: aws iot describe-endpoint --endpoint-type iot:Data-ATS The service name used by [Amazon Web ServicesSignature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) to sign requests is: iotdevicegateway. diff --git a/Sources/Services/AWSIoTEvents/IoTEventsClient.swift b/Sources/Services/AWSIoTEvents/IoTEventsClient.swift index 84323ba4855..b49bc38293e 100644 --- a/Sources/Services/AWSIoTEvents/IoTEventsClient.swift +++ b/Sources/Services/AWSIoTEvents/IoTEventsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTEventsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTEventsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTEventsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTEventsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTEventsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTEventsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTEventsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTEventsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTEventsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTEvents/IoTEventsClientProtocol.swift b/Sources/Services/AWSIoTEvents/IoTEventsClientProtocol.swift index c1693d32855..216a383cc22 100644 --- a/Sources/Services/AWSIoTEvents/IoTEventsClientProtocol.swift +++ b/Sources/Services/AWSIoTEvents/IoTEventsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS IoT Events monitors your equipment or device fleets for failures or changes in operation, and triggers actions when such events occur. You can use AWS IoT Events API operations to create, read, update, and delete inputs and detector models, and to list their versions. diff --git a/Sources/Services/AWSIoTEventsData/IoTEventsDataClient.swift b/Sources/Services/AWSIoTEventsData/IoTEventsDataClient.swift index 300ffa1adda..8909dfa2ebe 100644 --- a/Sources/Services/AWSIoTEventsData/IoTEventsDataClient.swift +++ b/Sources/Services/AWSIoTEventsData/IoTEventsDataClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTEventsDataClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTEventsDataClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTEventsDataClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTEventsDataClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTEventsDataClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTEventsDataClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTEventsDataClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTEventsDataClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTEventsDataClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTEventsData/IoTEventsDataClientProtocol.swift b/Sources/Services/AWSIoTEventsData/IoTEventsDataClientProtocol.swift index 36982d17349..4af361732af 100644 --- a/Sources/Services/AWSIoTEventsData/IoTEventsDataClientProtocol.swift +++ b/Sources/Services/AWSIoTEventsData/IoTEventsDataClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// IoT Events monitors your equipment or device fleets for failures or changes in operation, and triggers actions when such events occur. You can use IoT Events Data API commands to send inputs to detectors, list detectors, and view or update a detector's status. For more information, see [What is IoT Events?](https://docs.aws.amazon.com/iotevents/latest/developerguide/what-is-iotevents.html) in the IoT Events Developer Guide. diff --git a/Sources/Services/AWSIoTFleetHub/IoTFleetHubClient.swift b/Sources/Services/AWSIoTFleetHub/IoTFleetHubClient.swift index 3c69919385e..265d4a5ae46 100644 --- a/Sources/Services/AWSIoTFleetHub/IoTFleetHubClient.swift +++ b/Sources/Services/AWSIoTFleetHub/IoTFleetHubClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTFleetHubClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTFleetHubClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTFleetHubClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTFleetHubClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTFleetHubClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTFleetHubClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTFleetHubClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTFleetHubClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTFleetHubClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTFleetHub/IoTFleetHubClientProtocol.swift b/Sources/Services/AWSIoTFleetHub/IoTFleetHubClientProtocol.swift index f8e4d0b1bd2..1f95034f8a7 100644 --- a/Sources/Services/AWSIoTFleetHub/IoTFleetHubClientProtocol.swift +++ b/Sources/Services/AWSIoTFleetHub/IoTFleetHubClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// With Fleet Hub for AWS IoT Device Management you can build stand-alone web applications for monitoring the health of your device fleets. Fleet Hub for AWS IoT Device Management is in public preview and is subject to change. diff --git a/Sources/Services/AWSIoTFleetWise/IoTFleetWiseClient.swift b/Sources/Services/AWSIoTFleetWise/IoTFleetWiseClient.swift index 8d0207306f6..3696a44da18 100644 --- a/Sources/Services/AWSIoTFleetWise/IoTFleetWiseClient.swift +++ b/Sources/Services/AWSIoTFleetWise/IoTFleetWiseClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTFleetWiseClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTFleetWiseClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTFleetWiseClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTFleetWiseClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTFleetWiseClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTFleetWiseClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTFleetWiseClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTFleetWiseClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTFleetWiseClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTFleetWise/IoTFleetWiseClientProtocol.swift b/Sources/Services/AWSIoTFleetWise/IoTFleetWiseClientProtocol.swift index 1d9803437a1..868c80ff4a7 100644 --- a/Sources/Services/AWSIoTFleetWise/IoTFleetWiseClientProtocol.swift +++ b/Sources/Services/AWSIoTFleetWise/IoTFleetWiseClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services IoT FleetWise is a fully managed service that you can use to collect, model, and transfer vehicle data to the Amazon Web Services cloud at scale. With Amazon Web Services IoT FleetWise, you can standardize all of your vehicle data models, independent of the in-vehicle communication architecture, and define data collection rules to transfer only high-value data to the cloud. For more information, see [What is Amazon Web Services IoT FleetWise?](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/) in the Amazon Web Services IoT FleetWise Developer Guide. diff --git a/Sources/Services/AWSIoTJobsDataPlane/IoTJobsDataPlaneClient.swift b/Sources/Services/AWSIoTJobsDataPlane/IoTJobsDataPlaneClient.swift index 216c47ffb85..17b39d6ff11 100644 --- a/Sources/Services/AWSIoTJobsDataPlane/IoTJobsDataPlaneClient.swift +++ b/Sources/Services/AWSIoTJobsDataPlane/IoTJobsDataPlaneClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTJobsDataPlaneClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTJobsDataPlaneClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTJobsDataPlaneClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTJobsDataPlaneClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTJobsDataPlaneClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTJobsDataPlaneClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTJobsDataPlaneClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTJobsDataPlaneClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTJobsDataPlaneClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTJobsDataPlane/IoTJobsDataPlaneClientProtocol.swift b/Sources/Services/AWSIoTJobsDataPlane/IoTJobsDataPlaneClientProtocol.swift index a04aa762a7c..1ddf64a4455 100644 --- a/Sources/Services/AWSIoTJobsDataPlane/IoTJobsDataPlaneClientProtocol.swift +++ b/Sources/Services/AWSIoTJobsDataPlane/IoTJobsDataPlaneClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS IoT Jobs is a service that allows you to define a set of jobs — remote operations that are sent to and executed on one or more devices connected to AWS IoT. For example, you can define a job that instructs a set of devices to download and install application or firmware updates, reboot, rotate certificates, or perform remote troubleshooting operations. To create a job, you make a job document which is a description of the remote operations to be performed, and you specify a list of targets that should perform the operations. The targets can be individual things, thing groups or both. AWS IoT Jobs sends a message to inform the targets that a job is available. The target starts the execution of the job by downloading the job document, performing the operations it specifies, and reporting its progress to AWS IoT. The Jobs service provides commands to track the progress of a job on a specific target and for all the targets of the job diff --git a/Sources/Services/AWSIoTRoboRunner/IoTRoboRunnerClient.swift b/Sources/Services/AWSIoTRoboRunner/IoTRoboRunnerClient.swift index 933323b1e8d..31490639f8e 100644 --- a/Sources/Services/AWSIoTRoboRunner/IoTRoboRunnerClient.swift +++ b/Sources/Services/AWSIoTRoboRunner/IoTRoboRunnerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTRoboRunnerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTRoboRunnerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTRoboRunnerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTRoboRunnerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTRoboRunnerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTRoboRunnerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTRoboRunnerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTRoboRunnerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTRoboRunnerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTRoboRunner/IoTRoboRunnerClientProtocol.swift b/Sources/Services/AWSIoTRoboRunner/IoTRoboRunnerClientProtocol.swift index bbc5587e451..6c8c464d6a1 100644 --- a/Sources/Services/AWSIoTRoboRunner/IoTRoboRunnerClientProtocol.swift +++ b/Sources/Services/AWSIoTRoboRunner/IoTRoboRunnerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// An example service, deployed with the Octane Service creator, which will echo the string diff --git a/Sources/Services/AWSIoTSecureTunneling/IoTSecureTunnelingClient.swift b/Sources/Services/AWSIoTSecureTunneling/IoTSecureTunnelingClient.swift index a20a4434cc8..838818cacad 100644 --- a/Sources/Services/AWSIoTSecureTunneling/IoTSecureTunnelingClient.swift +++ b/Sources/Services/AWSIoTSecureTunneling/IoTSecureTunnelingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTSecureTunnelingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTSecureTunnelingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTSecureTunnelingClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTSecureTunnelingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTSecureTunnelingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTSecureTunnelingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTSecureTunnelingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTSecureTunnelingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTSecureTunnelingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTSecureTunneling/IoTSecureTunnelingClientProtocol.swift b/Sources/Services/AWSIoTSecureTunneling/IoTSecureTunnelingClientProtocol.swift index 1a07125a6db..999a6b8c0ce 100644 --- a/Sources/Services/AWSIoTSecureTunneling/IoTSecureTunnelingClientProtocol.swift +++ b/Sources/Services/AWSIoTSecureTunneling/IoTSecureTunnelingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// IoT Secure Tunneling IoT Secure Tunneling creates remote connections to devices deployed in the field. For more information about how IoT Secure Tunneling works, see [IoT Secure Tunneling](https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html). diff --git a/Sources/Services/AWSIoTSiteWise/IoTSiteWiseClient.swift b/Sources/Services/AWSIoTSiteWise/IoTSiteWiseClient.swift index ff66d98c300..1ce52ed8896 100644 --- a/Sources/Services/AWSIoTSiteWise/IoTSiteWiseClient.swift +++ b/Sources/Services/AWSIoTSiteWise/IoTSiteWiseClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTSiteWiseClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTSiteWiseClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTSiteWiseClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTSiteWiseClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTSiteWiseClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTSiteWiseClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTSiteWiseClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTSiteWiseClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTSiteWiseClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTSiteWise/IoTSiteWiseClientProtocol.swift b/Sources/Services/AWSIoTSiteWise/IoTSiteWiseClientProtocol.swift index 32ca460c50d..5b9de25d258 100644 --- a/Sources/Services/AWSIoTSiteWise/IoTSiteWiseClientProtocol.swift +++ b/Sources/Services/AWSIoTSiteWise/IoTSiteWiseClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the IoT SiteWise API Reference. IoT SiteWise is an Amazon Web Services service that connects [Industrial Internet of Things (IIoT)](https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications) devices to the power of the Amazon Web Services Cloud. For more information, see the [IoT SiteWise User Guide](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/). For information about IoT SiteWise quotas, see [Quotas](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html) in the IoT SiteWise User Guide. diff --git a/Sources/Services/AWSIoTThingsGraph/IoTThingsGraphClient.swift b/Sources/Services/AWSIoTThingsGraph/IoTThingsGraphClient.swift index 74f401134ef..14ddd34412b 100644 --- a/Sources/Services/AWSIoTThingsGraph/IoTThingsGraphClient.swift +++ b/Sources/Services/AWSIoTThingsGraph/IoTThingsGraphClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTThingsGraphClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTThingsGraphClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTThingsGraphClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTThingsGraphClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTThingsGraphClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTThingsGraphClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTThingsGraphClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTThingsGraphClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTThingsGraphClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTThingsGraph/IoTThingsGraphClientProtocol.swift b/Sources/Services/AWSIoTThingsGraph/IoTThingsGraphClientProtocol.swift index 38f0cb3606d..dadd407382c 100644 --- a/Sources/Services/AWSIoTThingsGraph/IoTThingsGraphClientProtocol.swift +++ b/Sources/Services/AWSIoTThingsGraph/IoTThingsGraphClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS IoT Things Graph AWS IoT Things Graph provides an integrated set of tools that enable developers to connect devices and services that use different standards, such as units of measure and communication protocols. AWS IoT Things Graph makes it possible to build IoT applications with little to no code by connecting devices and services and defining how they interact at an abstract level. For more information about how AWS IoT Things Graph works, see the [User Guide](https://docs.aws.amazon.com/thingsgraph/latest/ug/iot-tg-whatis.html). The AWS IoT Things Graph service is discontinued. diff --git a/Sources/Services/AWSIoTTwinMaker/IoTTwinMakerClient.swift b/Sources/Services/AWSIoTTwinMaker/IoTTwinMakerClient.swift index 72e7c1e5fbb..ab46bfd4537 100644 --- a/Sources/Services/AWSIoTTwinMaker/IoTTwinMakerClient.swift +++ b/Sources/Services/AWSIoTTwinMaker/IoTTwinMakerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTTwinMakerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTTwinMakerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTTwinMakerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTTwinMakerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTTwinMakerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTTwinMakerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTTwinMakerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTTwinMakerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTTwinMakerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTTwinMaker/IoTTwinMakerClientProtocol.swift b/Sources/Services/AWSIoTTwinMaker/IoTTwinMakerClientProtocol.swift index 2d47cf32c4b..62defe271ce 100644 --- a/Sources/Services/AWSIoTTwinMaker/IoTTwinMakerClientProtocol.swift +++ b/Sources/Services/AWSIoTTwinMaker/IoTTwinMakerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// IoT TwinMaker is a service with which you can build operational digital twins of physical systems. IoT TwinMaker overlays measurements and analysis from real-world sensors, cameras, and enterprise applications so you can create data visualizations to monitor your physical factory, building, or industrial plant. You can use this real-world data to monitor operations and diagnose and repair errors. diff --git a/Sources/Services/AWSIoTWireless/IoTWirelessClient.swift b/Sources/Services/AWSIoTWireless/IoTWirelessClient.swift index 193eb9ada15..e8d44953458 100644 --- a/Sources/Services/AWSIoTWireless/IoTWirelessClient.swift +++ b/Sources/Services/AWSIoTWireless/IoTWirelessClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IoTWirelessClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IoTWirelessClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IoTWirelessClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IoTWirelessClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IoTWirelessClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IoTWirelessClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTWirelessClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IoTWirelessClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IoTWirelessClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIoTWireless/IoTWirelessClientProtocol.swift b/Sources/Services/AWSIoTWireless/IoTWirelessClientProtocol.swift index 3d49b8dd738..8687c3d3d07 100644 --- a/Sources/Services/AWSIoTWireless/IoTWirelessClientProtocol.swift +++ b/Sources/Services/AWSIoTWireless/IoTWirelessClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS IoT Wireless provides bi-directional communication between internet-connected wireless devices and the AWS Cloud. To onboard both LoRaWAN and Sidewalk devices to AWS IoT, use the IoT Wireless API. These wireless devices use the Low Power Wide Area Networking (LPWAN) communication protocol to communicate with AWS IoT. Using the API, you can perform create, read, update, and delete operations for your wireless devices, gateways, destinations, and profiles. After onboarding your devices, you can use the API operations to set log levels and monitor your devices with CloudWatch. You can also use the API operations to create multicast groups and schedule a multicast session for sending a downlink message to devices in the group. By using Firmware Updates Over-The-Air (FUOTA) API operations, you can create a FUOTA task and schedule a session to update the firmware of individual devices or an entire group of devices in a multicast group. diff --git a/Sources/Services/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift b/Sources/Services/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift index 198ba1ba91c..06eea593d09 100644 --- a/Sources/Services/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift +++ b/Sources/Services/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IotDeviceAdvisorClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IotDeviceAdvisorClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IotDeviceAdvisorClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IotDeviceAdvisorClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IotDeviceAdvisorClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IotDeviceAdvisorClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IotDeviceAdvisorClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IotDeviceAdvisorClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IotDeviceAdvisorClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIotDeviceAdvisor/IotDeviceAdvisorClientProtocol.swift b/Sources/Services/AWSIotDeviceAdvisor/IotDeviceAdvisorClientProtocol.swift index 0ffa2b0115c..bbdd5e451c8 100644 --- a/Sources/Services/AWSIotDeviceAdvisor/IotDeviceAdvisorClientProtocol.swift +++ b/Sources/Services/AWSIotDeviceAdvisor/IotDeviceAdvisorClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services IoT Core Device Advisor is a cloud-based, fully managed test capability for validating IoT devices during device software development. Device Advisor provides pre-built tests that you can use to validate IoT devices for reliable and secure connectivity with Amazon Web Services IoT Core before deploying devices to production. By using Device Advisor, you can confirm that your devices can connect to Amazon Web Services IoT Core, follow security best practices and, if applicable, receive software updates from IoT Device Management. You can also download signed qualification reports to submit to the Amazon Web Services Partner Network to get your device qualified for the Amazon Web Services Partner Device Catalog without the need to send your device in and wait for it to be tested. diff --git a/Sources/Services/AWSIvs/IvsClient.swift b/Sources/Services/AWSIvs/IvsClient.swift index aefa9717b99..690fa7071fe 100644 --- a/Sources/Services/AWSIvs/IvsClient.swift +++ b/Sources/Services/AWSIvs/IvsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IvsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IvsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IvsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IvsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IvsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IvsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IvsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IvsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IvsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIvs/IvsClientProtocol.swift b/Sources/Services/AWSIvs/IvsClientProtocol.swift index 042aa24fafa..de104ba64cd 100644 --- a/Sources/Services/AWSIvs/IvsClientProtocol.swift +++ b/Sources/Services/AWSIvs/IvsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Introduction The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an Amazon Web Services EventBridge event stream for responses. JSON is used for both requests and responses, including errors. The API is an Amazon Web Services regional service. For a list of supported regions and Amazon IVS HTTPS service endpoints, see the [Amazon IVS page](https://docs.aws.amazon.com/general/latest/gr/ivs.html) in the Amazon Web Services General Reference. All API request parameters and URLs are case sensitive. For a summary of notable documentation changes in each release, see [ Document History](https://docs.aws.amazon.com/ivs/latest/userguide/doc-history.html). Allowed Header Values diff --git a/Sources/Services/AWSIvschat/IvschatClient.swift b/Sources/Services/AWSIvschat/IvschatClient.swift index c3429b3fbcc..c5f3ec84b71 100644 --- a/Sources/Services/AWSIvschat/IvschatClient.swift +++ b/Sources/Services/AWSIvschat/IvschatClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class IvschatClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await IvschatClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try IvschatClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class IvschatClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class IvschatClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class IvschatClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IvschatClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class IvschatClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("IvschatClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSIvschat/IvschatClientProtocol.swift b/Sources/Services/AWSIvschat/IvschatClientProtocol.swift index 396e7fd02a1..bae8082b5e4 100644 --- a/Sources/Services/AWSIvschat/IvschatClientProtocol.swift +++ b/Sources/Services/AWSIvschat/IvschatClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Introduction The Amazon IVS Chat control-plane API enables you to create and manage Amazon IVS Chat resources. You also need to integrate with the [ Amazon IVS Chat Messaging API](https://docs.aws.amazon.com/ivs/latest/chatmsgapireference/chat-messaging-api.html), to enable users to interact with chat rooms in real time. The API is an AWS regional service. For a list of supported regions and Amazon IVS Chat HTTPS service endpoints, see the Amazon IVS Chat information on the [Amazon IVS page](https://docs.aws.amazon.com/general/latest/gr/ivs.html) in the AWS General Reference. Notes on terminology: diff --git a/Sources/Services/AWSKMS/KMSClient.swift b/Sources/Services/AWSKMS/KMSClient.swift index bf458abc182..e50642f14ca 100644 --- a/Sources/Services/AWSKMS/KMSClient.swift +++ b/Sources/Services/AWSKMS/KMSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KMSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KMSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KMSClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KMSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KMSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KMSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KMSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KMSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KMSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKMS/KMSClientProtocol.swift b/Sources/Services/AWSKMS/KMSClientProtocol.swift index c6115771c18..24efd6c8ea3 100644 --- a/Sources/Services/AWSKMS/KMSClientProtocol.swift +++ b/Sources/Services/AWSKMS/KMSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Key Management Service Key Management Service (KMS) is an encryption and key management web service. This guide describes the KMS operations that you can call programmatically. For general information about KMS, see the [ Key Management Service Developer Guide ](https://docs.aws.amazon.com/kms/latest/developerguide/). KMS has replaced the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term. Amazon Web Services provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to KMS and other Amazon Web Services services. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to download and install them, see [Tools for Amazon Web Services](http://aws.amazon.com/tools/). We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS. If you need to use FIPS 140-2 validated cryptographic modules when communicating with Amazon Web Services, use the FIPS endpoint in your preferred Amazon Web Services Region. For more information about the available FIPS endpoints, see [Service endpoints](https://docs.aws.amazon.com/general/latest/gr/kms.html#kms_region) in the Key Management Service topic of the Amazon Web Services General Reference. All KMS API calls must be signed and be transmitted using Transport Layer Security (TLS). KMS recommends you always use the latest supported TLS version. Clients must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes. Signing Requests Requests must be signed using an access key ID and a secret access key. We strongly recommend that you do not use your Amazon Web Services account root access key ID and secret access key for everyday work. You can use the access key ID and secret access key for an IAM user or you can use the Security Token Service (STS) to generate temporary security credentials and use those to sign requests. All KMS requests must be signed with [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). Logging API Requests KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can determine what requests were made to KMS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the [CloudTrail User Guide](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). Additional Resources For more information about credentials and request signing, see the following: diff --git a/Sources/Services/AWSKafka/KafkaClient.swift b/Sources/Services/AWSKafka/KafkaClient.swift index 55a5105c16a..2b739d18d0e 100644 --- a/Sources/Services/AWSKafka/KafkaClient.swift +++ b/Sources/Services/AWSKafka/KafkaClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KafkaClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KafkaClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KafkaClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KafkaClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KafkaClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KafkaClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KafkaClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KafkaClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KafkaClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKafka/KafkaClientProtocol.swift b/Sources/Services/AWSKafka/KafkaClientProtocol.swift index 330741585d2..e710d475f6e 100644 --- a/Sources/Services/AWSKafka/KafkaClientProtocol.swift +++ b/Sources/Services/AWSKafka/KafkaClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The operations for managing an Amazon MSK cluster. diff --git a/Sources/Services/AWSKafkaConnect/KafkaConnectClient.swift b/Sources/Services/AWSKafkaConnect/KafkaConnectClient.swift index b3d370ef0cf..4d7f9028492 100644 --- a/Sources/Services/AWSKafkaConnect/KafkaConnectClient.swift +++ b/Sources/Services/AWSKafkaConnect/KafkaConnectClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KafkaConnectClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KafkaConnectClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KafkaConnectClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KafkaConnectClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KafkaConnectClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KafkaConnectClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KafkaConnectClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KafkaConnectClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KafkaConnectClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKafkaConnect/KafkaConnectClientProtocol.swift b/Sources/Services/AWSKafkaConnect/KafkaConnectClientProtocol.swift index dc1b467cf36..f762330a3a7 100644 --- a/Sources/Services/AWSKafkaConnect/KafkaConnectClientProtocol.swift +++ b/Sources/Services/AWSKafkaConnect/KafkaConnectClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// diff --git a/Sources/Services/AWSKendra/KendraClient.swift b/Sources/Services/AWSKendra/KendraClient.swift index 5a7b3c2c5c1..901b89ced9e 100644 --- a/Sources/Services/AWSKendra/KendraClient.swift +++ b/Sources/Services/AWSKendra/KendraClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KendraClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KendraClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KendraClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KendraClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KendraClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KendraClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KendraClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KendraClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KendraClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKendra/KendraClientProtocol.swift b/Sources/Services/AWSKendra/KendraClientProtocol.swift index 05bd0c446ea..86f426fa13a 100644 --- a/Sources/Services/AWSKendra/KendraClientProtocol.swift +++ b/Sources/Services/AWSKendra/KendraClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Kendra is a service for indexing large document sets. diff --git a/Sources/Services/AWSKendraRanking/KendraRankingClient.swift b/Sources/Services/AWSKendraRanking/KendraRankingClient.swift index 6c66b660af7..fb56633816a 100644 --- a/Sources/Services/AWSKendraRanking/KendraRankingClient.swift +++ b/Sources/Services/AWSKendraRanking/KendraRankingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KendraRankingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KendraRankingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KendraRankingClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KendraRankingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KendraRankingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KendraRankingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KendraRankingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KendraRankingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KendraRankingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKendraRanking/KendraRankingClientProtocol.swift b/Sources/Services/AWSKendraRanking/KendraRankingClientProtocol.swift index 855333cbb95..5374cbbf725 100644 --- a/Sources/Services/AWSKendraRanking/KendraRankingClientProtocol.swift +++ b/Sources/Services/AWSKendraRanking/KendraRankingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Kendra Intelligent Ranking uses Amazon Kendra semantic search capabilities to intelligently re-rank a search service's results. diff --git a/Sources/Services/AWSKeyspaces/KeyspacesClient.swift b/Sources/Services/AWSKeyspaces/KeyspacesClient.swift index 3187055ade0..b298a93a640 100644 --- a/Sources/Services/AWSKeyspaces/KeyspacesClient.swift +++ b/Sources/Services/AWSKeyspaces/KeyspacesClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KeyspacesClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KeyspacesClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KeyspacesClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KeyspacesClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KeyspacesClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KeyspacesClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KeyspacesClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KeyspacesClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KeyspacesClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKeyspaces/KeyspacesClientProtocol.swift b/Sources/Services/AWSKeyspaces/KeyspacesClientProtocol.swift index 04b6ad37855..ff48814d2a2 100644 --- a/Sources/Services/AWSKeyspaces/KeyspacesClientProtocol.swift +++ b/Sources/Services/AWSKeyspaces/KeyspacesClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Keyspaces (for Apache Cassandra) is a scalable, highly available, and managed Apache Cassandra-compatible database service. Amazon Keyspaces makes it easy to migrate, run, and scale Cassandra workloads in the Amazon Web Services Cloud. With just a few clicks on the Amazon Web Services Management Console or a few lines of code, you can create keyspaces and tables in Amazon Keyspaces, without deploying any infrastructure or installing software. In addition to supporting Cassandra Query Language (CQL) requests via open-source Cassandra drivers, Amazon Keyspaces supports data definition language (DDL) operations to manage keyspaces and tables using the Amazon Web Services SDK and CLI, as well as infrastructure as code (IaC) services and tools such as CloudFormation and Terraform. This API reference describes the supported DDL operations in detail. For the list of all supported CQL APIs, see [Supported Cassandra APIs, operations, and data types in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/cassandra-apis.html) in the Amazon Keyspaces Developer Guide. To learn how Amazon Keyspaces API actions are recorded with CloudTrail, see [Amazon Keyspaces information in CloudTrail](https://docs.aws.amazon.com/keyspaces/latest/devguide/logging-using-cloudtrail.html#service-name-info-in-cloudtrail) in the Amazon Keyspaces Developer Guide. For more information about Amazon Web Services APIs, for example how to implement retry logic or how to sign Amazon Web Services API requests, see [Amazon Web Services APIs](https://docs.aws.amazon.com/general/latest/gr/aws-apis.html) in the General Reference. diff --git a/Sources/Services/AWSKinesis/KinesisClient.swift b/Sources/Services/AWSKinesis/KinesisClient.swift index 0d09676e2ea..89ba467836d 100644 --- a/Sources/Services/AWSKinesis/KinesisClient.swift +++ b/Sources/Services/AWSKinesis/KinesisClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KinesisClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KinesisClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KinesisClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KinesisClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KinesisClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KinesisClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KinesisClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKinesis/KinesisClientProtocol.swift b/Sources/Services/AWSKinesis/KinesisClientProtocol.swift index bf7cc23b850..fc6aab5eff6 100644 --- a/Sources/Services/AWSKinesis/KinesisClientProtocol.swift +++ b/Sources/Services/AWSKinesis/KinesisClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Kinesis Data Streams Service API Reference Amazon Kinesis Data Streams is a managed service that scales elastically for real-time processing of streaming big data. diff --git a/Sources/Services/AWSKinesisAnalytics/KinesisAnalyticsClient.swift b/Sources/Services/AWSKinesisAnalytics/KinesisAnalyticsClient.swift index 02ca478a5f6..475ef848c69 100644 --- a/Sources/Services/AWSKinesisAnalytics/KinesisAnalyticsClient.swift +++ b/Sources/Services/AWSKinesisAnalytics/KinesisAnalyticsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KinesisAnalyticsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KinesisAnalyticsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KinesisAnalyticsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KinesisAnalyticsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KinesisAnalyticsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KinesisAnalyticsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisAnalyticsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KinesisAnalyticsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisAnalyticsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKinesisAnalytics/KinesisAnalyticsClientProtocol.swift b/Sources/Services/AWSKinesisAnalytics/KinesisAnalyticsClientProtocol.swift index cfc7b87421f..0b11d022c00 100644 --- a/Sources/Services/AWSKinesisAnalytics/KinesisAnalyticsClientProtocol.swift +++ b/Sources/Services/AWSKinesisAnalytics/KinesisAnalyticsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Kinesis Analytics Overview This documentation is for version 1 of the Amazon Kinesis Data Analytics API, which only supports SQL applications. Version 2 of the API supports SQL and Java applications. For more information about version 2, see [Amazon Kinesis Data Analytics API V2 Documentation]. This is the Amazon Kinesis Analytics v1 API Reference. The Amazon Kinesis Analytics Developer Guide provides additional information. diff --git a/Sources/Services/AWSKinesisAnalyticsV2/KinesisAnalyticsV2Client.swift b/Sources/Services/AWSKinesisAnalyticsV2/KinesisAnalyticsV2Client.swift index 466499c6bed..187b7ada18c 100644 --- a/Sources/Services/AWSKinesisAnalyticsV2/KinesisAnalyticsV2Client.swift +++ b/Sources/Services/AWSKinesisAnalyticsV2/KinesisAnalyticsV2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KinesisAnalyticsV2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KinesisAnalyticsV2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KinesisAnalyticsV2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KinesisAnalyticsV2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KinesisAnalyticsV2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KinesisAnalyticsV2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisAnalyticsV2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KinesisAnalyticsV2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisAnalyticsV2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKinesisAnalyticsV2/KinesisAnalyticsV2ClientProtocol.swift b/Sources/Services/AWSKinesisAnalyticsV2/KinesisAnalyticsV2ClientProtocol.swift index 28b13cb3096..9fc3b133706 100644 --- a/Sources/Services/AWSKinesisAnalyticsV2/KinesisAnalyticsV2ClientProtocol.swift +++ b/Sources/Services/AWSKinesisAnalyticsV2/KinesisAnalyticsV2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Kinesis Data Analytics is a fully managed service that you can use to process and analyze streaming data using Java, SQL, or Scala. The service enables you to quickly author and run Java, SQL, or Scala code against streaming sources to perform time series analytics, feed real-time dashboards, and create real-time metrics. diff --git a/Sources/Services/AWSKinesisVideo/KinesisVideoClient.swift b/Sources/Services/AWSKinesisVideo/KinesisVideoClient.swift index 56fe51dddf6..fc5374c8ddd 100644 --- a/Sources/Services/AWSKinesisVideo/KinesisVideoClient.swift +++ b/Sources/Services/AWSKinesisVideo/KinesisVideoClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KinesisVideoClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KinesisVideoClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KinesisVideoClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KinesisVideoClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KinesisVideoClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KinesisVideoClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KinesisVideoClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKinesisVideo/KinesisVideoClientProtocol.swift b/Sources/Services/AWSKinesisVideo/KinesisVideoClientProtocol.swift index 37a25468312..823bb6a2c53 100644 --- a/Sources/Services/AWSKinesisVideo/KinesisVideoClientProtocol.swift +++ b/Sources/Services/AWSKinesisVideo/KinesisVideoClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// diff --git a/Sources/Services/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.swift b/Sources/Services/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.swift index 4255c9e16fe..ce6ef4309ef 100644 --- a/Sources/Services/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.swift +++ b/Sources/Services/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KinesisVideoArchivedMediaClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KinesisVideoArchivedMediaClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KinesisVideoArchivedMediaClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KinesisVideoArchivedMediaClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KinesisVideoArchivedMediaClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KinesisVideoArchivedMediaClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoArchivedMediaClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KinesisVideoArchivedMediaClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoArchivedMediaClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClientProtocol.swift b/Sources/Services/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClientProtocol.swift index e1032aa839f..f3efb2d22bf 100644 --- a/Sources/Services/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClientProtocol.swift +++ b/Sources/Services/AWSKinesisVideoArchivedMedia/KinesisVideoArchivedMediaClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// diff --git a/Sources/Services/AWSKinesisVideoMedia/KinesisVideoMediaClient.swift b/Sources/Services/AWSKinesisVideoMedia/KinesisVideoMediaClient.swift index 1a15236f977..26bc7dc3021 100644 --- a/Sources/Services/AWSKinesisVideoMedia/KinesisVideoMediaClient.swift +++ b/Sources/Services/AWSKinesisVideoMedia/KinesisVideoMediaClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KinesisVideoMediaClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KinesisVideoMediaClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KinesisVideoMediaClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KinesisVideoMediaClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KinesisVideoMediaClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KinesisVideoMediaClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoMediaClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KinesisVideoMediaClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoMediaClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKinesisVideoMedia/KinesisVideoMediaClientProtocol.swift b/Sources/Services/AWSKinesisVideoMedia/KinesisVideoMediaClientProtocol.swift index cc0f4342cc7..d32490ff4a0 100644 --- a/Sources/Services/AWSKinesisVideoMedia/KinesisVideoMediaClientProtocol.swift +++ b/Sources/Services/AWSKinesisVideoMedia/KinesisVideoMediaClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// diff --git a/Sources/Services/AWSKinesisVideoSignaling/KinesisVideoSignalingClient.swift b/Sources/Services/AWSKinesisVideoSignaling/KinesisVideoSignalingClient.swift index 801c89bebe1..51dadc5af8d 100644 --- a/Sources/Services/AWSKinesisVideoSignaling/KinesisVideoSignalingClient.swift +++ b/Sources/Services/AWSKinesisVideoSignaling/KinesisVideoSignalingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KinesisVideoSignalingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KinesisVideoSignalingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KinesisVideoSignalingClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KinesisVideoSignalingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KinesisVideoSignalingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KinesisVideoSignalingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoSignalingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KinesisVideoSignalingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoSignalingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKinesisVideoSignaling/KinesisVideoSignalingClientProtocol.swift b/Sources/Services/AWSKinesisVideoSignaling/KinesisVideoSignalingClientProtocol.swift index 4be55c62e5e..53e98b935b8 100644 --- a/Sources/Services/AWSKinesisVideoSignaling/KinesisVideoSignalingClientProtocol.swift +++ b/Sources/Services/AWSKinesisVideoSignaling/KinesisVideoSignalingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Kinesis Video Streams Signaling Service is a intermediate service that establishes a communication channel for discovering peers, transmitting offers and answers in order to establish peer-to-peer connection in webRTC technology. diff --git a/Sources/Services/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClient.swift b/Sources/Services/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClient.swift index 47ebef08420..c8f8d1b14d4 100644 --- a/Sources/Services/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClient.swift +++ b/Sources/Services/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class KinesisVideoWebRTCStorageClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await KinesisVideoWebRTCStorageClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try KinesisVideoWebRTCStorageClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class KinesisVideoWebRTCStorageClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class KinesisVideoWebRTCStorageClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class KinesisVideoWebRTCStorageClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoWebRTCStorageClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class KinesisVideoWebRTCStorageClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("KinesisVideoWebRTCStorageClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClientProtocol.swift b/Sources/Services/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClientProtocol.swift index a66a9390afa..393be04f869 100644 --- a/Sources/Services/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClientProtocol.swift +++ b/Sources/Services/AWSKinesisVideoWebRTCStorage/KinesisVideoWebRTCStorageClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// diff --git a/Sources/Services/AWSLakeFormation/LakeFormationClient.swift b/Sources/Services/AWSLakeFormation/LakeFormationClient.swift index 53172aedb67..b0abf3259ab 100644 --- a/Sources/Services/AWSLakeFormation/LakeFormationClient.swift +++ b/Sources/Services/AWSLakeFormation/LakeFormationClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LakeFormationClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LakeFormationClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LakeFormationClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LakeFormationClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LakeFormationClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LakeFormationClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LakeFormationClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LakeFormationClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LakeFormationClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLakeFormation/LakeFormationClientProtocol.swift b/Sources/Services/AWSLakeFormation/LakeFormationClientProtocol.swift index efca3fd4539..223405decf3 100644 --- a/Sources/Services/AWSLakeFormation/LakeFormationClientProtocol.swift +++ b/Sources/Services/AWSLakeFormation/LakeFormationClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Lake Formation Defines the public endpoint for the Lake Formation service. diff --git a/Sources/Services/AWSLambda/LambdaClient.swift b/Sources/Services/AWSLambda/LambdaClient.swift index 245874335ed..a1a444cd942 100644 --- a/Sources/Services/AWSLambda/LambdaClient.swift +++ b/Sources/Services/AWSLambda/LambdaClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LambdaClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LambdaClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LambdaClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LambdaClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LambdaClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LambdaClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LambdaClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LambdaClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LambdaClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLambda/LambdaClientProtocol.swift b/Sources/Services/AWSLambda/LambdaClientProtocol.swift index 9256fe1246c..8c841c200b0 100644 --- a/Sources/Services/AWSLambda/LambdaClientProtocol.swift +++ b/Sources/Services/AWSLambda/LambdaClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Lambda Overview Lambda is a compute service that lets you run code without provisioning or managing servers. Lambda runs your code on a high-availability compute infrastructure and performs all of the administration of the compute resources, including server and operating system maintenance, capacity provisioning and automatic scaling, code monitoring and logging. With Lambda, you can run code for virtually any type of application or backend service. For more information about the Lambda service, see [What is Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) in the Lambda Developer Guide. The Lambda API Reference provides information about each of the API methods, including details about the parameters in each API request and response. You can use Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools to access the API. For installation instructions, see [Tools for Amazon Web Services](http://aws.amazon.com/tools/). For a list of Region-specific endpoints that Lambda supports, see [Lambda endpoints and quotas ](https://docs.aws.amazon.com/general/latest/gr/lambda-service.html/) in the Amazon Web Services General Reference.. When making the API calls, you will need to authenticate your request by providing a signature. Lambda supports signature version 4. For more information, see [Signature Version 4 signing process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) in the Amazon Web Services General Reference.. CA certificates Because Amazon Web Services SDKs use the CA certificates from your computer, changes to the certificates on the Amazon Web Services servers can cause connection failures when you attempt to use an SDK. You can prevent these failures by keeping your computer's CA certificates and operating system up-to-date. If you encounter this issue in a corporate environment and do not manage your own computer, you might need to ask an administrator to assist with the update process. The following list shows minimum operating system and Java versions: diff --git a/Sources/Services/AWSLexModelBuildingService/LexModelBuildingClient.swift b/Sources/Services/AWSLexModelBuildingService/LexModelBuildingClient.swift index 281afebae01..b45a5a99048 100644 --- a/Sources/Services/AWSLexModelBuildingService/LexModelBuildingClient.swift +++ b/Sources/Services/AWSLexModelBuildingService/LexModelBuildingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LexModelBuildingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LexModelBuildingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LexModelBuildingClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LexModelBuildingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LexModelBuildingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LexModelBuildingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LexModelBuildingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LexModelBuildingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LexModelBuildingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLexModelBuildingService/LexModelBuildingClientProtocol.swift b/Sources/Services/AWSLexModelBuildingService/LexModelBuildingClientProtocol.swift index a62d436604b..6e8af5f34a4 100644 --- a/Sources/Services/AWSLexModelBuildingService/LexModelBuildingClientProtocol.swift +++ b/Sources/Services/AWSLexModelBuildingService/LexModelBuildingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Lex Build-Time Actions Amazon Lex is an AWS service for building conversational voice and text interfaces. Use these actions to create, update, and delete conversational bots for new and existing client applications. diff --git a/Sources/Services/AWSLexModelsV2/LexModelsV2Client.swift b/Sources/Services/AWSLexModelsV2/LexModelsV2Client.swift index 840629a9790..303f719b9af 100644 --- a/Sources/Services/AWSLexModelsV2/LexModelsV2Client.swift +++ b/Sources/Services/AWSLexModelsV2/LexModelsV2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LexModelsV2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LexModelsV2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LexModelsV2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LexModelsV2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LexModelsV2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LexModelsV2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LexModelsV2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LexModelsV2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LexModelsV2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLexModelsV2/LexModelsV2ClientProtocol.swift b/Sources/Services/AWSLexModelsV2/LexModelsV2ClientProtocol.swift index ccd6981f8da..cae890784f0 100644 --- a/Sources/Services/AWSLexModelsV2/LexModelsV2ClientProtocol.swift +++ b/Sources/Services/AWSLexModelsV2/LexModelsV2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// diff --git a/Sources/Services/AWSLexRuntimeService/LexRuntimeClient.swift b/Sources/Services/AWSLexRuntimeService/LexRuntimeClient.swift index 1c9dc713614..888f9cb4ab0 100644 --- a/Sources/Services/AWSLexRuntimeService/LexRuntimeClient.swift +++ b/Sources/Services/AWSLexRuntimeService/LexRuntimeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LexRuntimeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LexRuntimeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LexRuntimeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LexRuntimeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LexRuntimeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LexRuntimeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LexRuntimeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LexRuntimeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LexRuntimeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLexRuntimeService/LexRuntimeClientProtocol.swift b/Sources/Services/AWSLexRuntimeService/LexRuntimeClientProtocol.swift index 92ffed1b7b0..5b704b156ea 100644 --- a/Sources/Services/AWSLexRuntimeService/LexRuntimeClientProtocol.swift +++ b/Sources/Services/AWSLexRuntimeService/LexRuntimeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Lex provides both build and runtime endpoints. Each endpoint provides a set of operations (API). Your conversational bot uses the runtime API to understand user utterances (user input text or voice). For example, suppose a user says "I want pizza", your bot sends this input to Amazon Lex using the runtime API. Amazon Lex recognizes that the user request is for the OrderPizza intent (one of the intents defined in the bot). Then Amazon Lex engages in user conversation on behalf of the bot to elicit required information (slot values, such as pizza size and crust type), and then performs fulfillment activity (that you configured when you created the bot). You use the build-time API to create and manage your Amazon Lex bot. For a list of build-time operations, see the build-time API, . diff --git a/Sources/Services/AWSLexRuntimeV2/LexRuntimeV2Client.swift b/Sources/Services/AWSLexRuntimeV2/LexRuntimeV2Client.swift index 31dcd3b811d..5cdc1798441 100644 --- a/Sources/Services/AWSLexRuntimeV2/LexRuntimeV2Client.swift +++ b/Sources/Services/AWSLexRuntimeV2/LexRuntimeV2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LexRuntimeV2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LexRuntimeV2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LexRuntimeV2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LexRuntimeV2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LexRuntimeV2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LexRuntimeV2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LexRuntimeV2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LexRuntimeV2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LexRuntimeV2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLexRuntimeV2/LexRuntimeV2ClientProtocol.swift b/Sources/Services/AWSLexRuntimeV2/LexRuntimeV2ClientProtocol.swift index 246fd0d01a9..4d8fd2d9e2a 100644 --- a/Sources/Services/AWSLexRuntimeV2/LexRuntimeV2ClientProtocol.swift +++ b/Sources/Services/AWSLexRuntimeV2/LexRuntimeV2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This section contains documentation for the Amazon Lex V2 Runtime V2 API operations. diff --git a/Sources/Services/AWSLicenseManager/LicenseManagerClient.swift b/Sources/Services/AWSLicenseManager/LicenseManagerClient.swift index 51006adeeb9..31bf1566bf0 100644 --- a/Sources/Services/AWSLicenseManager/LicenseManagerClient.swift +++ b/Sources/Services/AWSLicenseManager/LicenseManagerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LicenseManagerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LicenseManagerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LicenseManagerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LicenseManagerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LicenseManagerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LicenseManagerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LicenseManagerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LicenseManagerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LicenseManagerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLicenseManager/LicenseManagerClientProtocol.swift b/Sources/Services/AWSLicenseManager/LicenseManagerClientProtocol.swift index 9cdd8c1b7fe..d914c68f221 100644 --- a/Sources/Services/AWSLicenseManager/LicenseManagerClientProtocol.swift +++ b/Sources/Services/AWSLicenseManager/LicenseManagerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// License Manager makes it easier to manage licenses from software vendors across multiple Amazon Web Services accounts and on-premises servers. diff --git a/Sources/Services/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClient.swift b/Sources/Services/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClient.swift index 209b429e732..3e26cb58564 100644 --- a/Sources/Services/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClient.swift +++ b/Sources/Services/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LicenseManagerLinuxSubscriptionsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LicenseManagerLinuxSubscriptionsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LicenseManagerLinuxSubscriptionsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LicenseManagerLinuxSubscriptionsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LicenseManagerLinuxSubscriptionsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LicenseManagerLinuxSubscriptionsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LicenseManagerLinuxSubscriptionsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LicenseManagerLinuxSubscriptionsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LicenseManagerLinuxSubscriptionsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClientProtocol.swift b/Sources/Services/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClientProtocol.swift index 4cef9ba9b5c..fc633a540f2 100644 --- a/Sources/Services/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClientProtocol.swift +++ b/Sources/Services/AWSLicenseManagerLinuxSubscriptions/LicenseManagerLinuxSubscriptionsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// With License Manager, you can discover and track your commercial Linux subscriptions on running Amazon EC2 instances. diff --git a/Sources/Services/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClient.swift b/Sources/Services/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClient.swift index b24531e5a61..55924ebc276 100644 --- a/Sources/Services/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClient.swift +++ b/Sources/Services/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LicenseManagerUserSubscriptionsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LicenseManagerUserSubscriptionsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LicenseManagerUserSubscriptionsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LicenseManagerUserSubscriptionsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LicenseManagerUserSubscriptionsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LicenseManagerUserSubscriptionsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LicenseManagerUserSubscriptionsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LicenseManagerUserSubscriptionsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LicenseManagerUserSubscriptionsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClientProtocol.swift b/Sources/Services/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClientProtocol.swift index bbaae481e7d..ca6aedbe659 100644 --- a/Sources/Services/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClientProtocol.swift +++ b/Sources/Services/AWSLicenseManagerUserSubscriptions/LicenseManagerUserSubscriptionsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// With License Manager, you can create user-based subscriptions to utilize licensed software with a per user subscription fee on Amazon EC2 instances. diff --git a/Sources/Services/AWSLightsail/LightsailClient.swift b/Sources/Services/AWSLightsail/LightsailClient.swift index 9ad4c0b8877..0d04dda3e82 100644 --- a/Sources/Services/AWSLightsail/LightsailClient.swift +++ b/Sources/Services/AWSLightsail/LightsailClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LightsailClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LightsailClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LightsailClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LightsailClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LightsailClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LightsailClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LightsailClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LightsailClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LightsailClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLightsail/LightsailClientProtocol.swift b/Sources/Services/AWSLightsail/LightsailClientProtocol.swift index feff49c42ca..cdc0eebb173 100644 --- a/Sources/Services/AWSLightsail/LightsailClientProtocol.swift +++ b/Sources/Services/AWSLightsail/LightsailClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Lightsail is the easiest way to get started with Amazon Web Services (Amazon Web Services) for developers who need to build websites or web applications. It includes everything you need to launch your project quickly - instances (virtual private servers), container services, storage buckets, managed databases, SSD-based block storage, static IP addresses, load balancers, content delivery network (CDN) distributions, DNS management of registered domains, and resource snapshots (backups) - for a low, predictable monthly price. You can manage your Lightsail resources using the Lightsail console, Lightsail API, Command Line Interface (CLI), or SDKs. For more information about Lightsail concepts and tasks, see the [Amazon Lightsail Developer Guide](https://lightsail.aws.amazon.com/ls/docs/en_us/articles/lightsail-how-to-set-up-access-keys-to-use-sdk-api-cli). This API Reference provides detailed information about the actions, data types, parameters, and errors of the Lightsail service. For more information about the supported Amazon Web Services Regions, endpoints, and service quotas of the Lightsail service, see [Amazon Lightsail Endpoints and Quotas](https://docs.aws.amazon.com/general/latest/gr/lightsail.html) in the Amazon Web Services General Reference. diff --git a/Sources/Services/AWSLocation/LocationClient.swift b/Sources/Services/AWSLocation/LocationClient.swift index 0cac6ac3b58..ee8b8aa1e44 100644 --- a/Sources/Services/AWSLocation/LocationClient.swift +++ b/Sources/Services/AWSLocation/LocationClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LocationClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LocationClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LocationClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LocationClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LocationClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LocationClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LocationClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LocationClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LocationClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLocation/LocationClientProtocol.swift b/Sources/Services/AWSLocation/LocationClientProtocol.swift index 72ded83933a..883fbc93814 100644 --- a/Sources/Services/AWSLocation/LocationClientProtocol.swift +++ b/Sources/Services/AWSLocation/LocationClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// "Suite of geospatial services including Maps, Places, Routes, Tracking, and Geofencing" diff --git a/Sources/Services/AWSLookoutEquipment/LookoutEquipmentClient.swift b/Sources/Services/AWSLookoutEquipment/LookoutEquipmentClient.swift index 1f4a79613d2..382af42a349 100644 --- a/Sources/Services/AWSLookoutEquipment/LookoutEquipmentClient.swift +++ b/Sources/Services/AWSLookoutEquipment/LookoutEquipmentClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LookoutEquipmentClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LookoutEquipmentClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LookoutEquipmentClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LookoutEquipmentClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LookoutEquipmentClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LookoutEquipmentClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LookoutEquipmentClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LookoutEquipmentClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LookoutEquipmentClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLookoutEquipment/LookoutEquipmentClientProtocol.swift b/Sources/Services/AWSLookoutEquipment/LookoutEquipmentClientProtocol.swift index ff45c681b0c..49b75b4c050 100644 --- a/Sources/Services/AWSLookoutEquipment/LookoutEquipmentClientProtocol.swift +++ b/Sources/Services/AWSLookoutEquipment/LookoutEquipmentClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Lookout for Equipment is a machine learning service that uses advanced analytics to identify anomalies in machines from sensor data for use in predictive maintenance. diff --git a/Sources/Services/AWSLookoutMetrics/LookoutMetricsClient.swift b/Sources/Services/AWSLookoutMetrics/LookoutMetricsClient.swift index 4d8b88e878e..137c00cf201 100644 --- a/Sources/Services/AWSLookoutMetrics/LookoutMetricsClient.swift +++ b/Sources/Services/AWSLookoutMetrics/LookoutMetricsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LookoutMetricsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LookoutMetricsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LookoutMetricsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LookoutMetricsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LookoutMetricsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LookoutMetricsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LookoutMetricsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LookoutMetricsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LookoutMetricsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLookoutMetrics/LookoutMetricsClientProtocol.swift b/Sources/Services/AWSLookoutMetrics/LookoutMetricsClientProtocol.swift index dea251ec48b..ea13253cb2f 100644 --- a/Sources/Services/AWSLookoutMetrics/LookoutMetricsClientProtocol.swift +++ b/Sources/Services/AWSLookoutMetrics/LookoutMetricsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the Amazon Lookout for Metrics API Reference. For an introduction to the service with tutorials for getting started, visit [Amazon Lookout for Metrics Developer Guide](https://docs.aws.amazon.com/lookoutmetrics/latest/dev). diff --git a/Sources/Services/AWSLookoutVision/LookoutVisionClient.swift b/Sources/Services/AWSLookoutVision/LookoutVisionClient.swift index e1f7dfd58a1..62e66e653e9 100644 --- a/Sources/Services/AWSLookoutVision/LookoutVisionClient.swift +++ b/Sources/Services/AWSLookoutVision/LookoutVisionClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class LookoutVisionClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await LookoutVisionClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try LookoutVisionClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class LookoutVisionClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class LookoutVisionClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class LookoutVisionClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LookoutVisionClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class LookoutVisionClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("LookoutVisionClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSLookoutVision/LookoutVisionClientProtocol.swift b/Sources/Services/AWSLookoutVision/LookoutVisionClientProtocol.swift index 08e6bc43191..3038676b205 100644 --- a/Sources/Services/AWSLookoutVision/LookoutVisionClientProtocol.swift +++ b/Sources/Services/AWSLookoutVision/LookoutVisionClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the Amazon Lookout for Vision API Reference. It provides descriptions of actions, data types, common parameters, and common errors. Amazon Lookout for Vision enables you to find visual defects in industrial products, accurately and at scale. It uses computer vision to identify missing components in an industrial product, damage to vehicles or structures, irregularities in production lines, and even minuscule defects in silicon wafers — or any other physical item where quality is important such as a missing capacitor on printed circuit boards. diff --git a/Sources/Services/AWSM2/M2Client.swift b/Sources/Services/AWSM2/M2Client.swift index 54c3277fdc3..b5fef3755d8 100644 --- a/Sources/Services/AWSM2/M2Client.swift +++ b/Sources/Services/AWSM2/M2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class M2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await M2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try M2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class M2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class M2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class M2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("M2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class M2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("M2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSM2/M2ClientProtocol.swift b/Sources/Services/AWSM2/M2ClientProtocol.swift index 513b1471b76..6fc98900aef 100644 --- a/Sources/Services/AWSM2/M2ClientProtocol.swift +++ b/Sources/Services/AWSM2/M2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Mainframe Modernization provides tools and resources to help you plan and implement migration and modernization from mainframes to Amazon Web Services managed runtime environments. It provides tools for analyzing existing mainframe applications, developing or updating mainframe applications using COBOL or PL/I, and implementing an automated pipeline for continuous integration and continuous delivery (CI/CD) of the applications. diff --git a/Sources/Services/AWSMTurk/MTurkClient.swift b/Sources/Services/AWSMTurk/MTurkClient.swift index 42711f263f3..cb42645b7d5 100644 --- a/Sources/Services/AWSMTurk/MTurkClient.swift +++ b/Sources/Services/AWSMTurk/MTurkClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MTurkClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MTurkClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MTurkClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MTurkClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MTurkClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MTurkClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MTurkClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MTurkClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MTurkClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMTurk/MTurkClientProtocol.swift b/Sources/Services/AWSMTurk/MTurkClientProtocol.swift index 0c7cc913d10..7a6bf94cd69 100644 --- a/Sources/Services/AWSMTurk/MTurkClientProtocol.swift +++ b/Sources/Services/AWSMTurk/MTurkClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Mechanical Turk API Reference diff --git a/Sources/Services/AWSMWAA/MWAAClient.swift b/Sources/Services/AWSMWAA/MWAAClient.swift index f34d199cbc8..51021f5d18b 100644 --- a/Sources/Services/AWSMWAA/MWAAClient.swift +++ b/Sources/Services/AWSMWAA/MWAAClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MWAAClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MWAAClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MWAAClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MWAAClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MWAAClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MWAAClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MWAAClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MWAAClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MWAAClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMWAA/MWAAClientProtocol.swift b/Sources/Services/AWSMWAA/MWAAClientProtocol.swift index cd7defcb5ec..86a7f4003ff 100644 --- a/Sources/Services/AWSMWAA/MWAAClientProtocol.swift +++ b/Sources/Services/AWSMWAA/MWAAClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Managed Workflows for Apache Airflow This section contains the Amazon Managed Workflows for Apache Airflow (MWAA) API reference documentation. For more information, see [What Is Amazon MWAA?](https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html). Endpoints diff --git a/Sources/Services/AWSMachineLearning/MachineLearningClient.swift b/Sources/Services/AWSMachineLearning/MachineLearningClient.swift index 184971d967f..dbecdcc291b 100644 --- a/Sources/Services/AWSMachineLearning/MachineLearningClient.swift +++ b/Sources/Services/AWSMachineLearning/MachineLearningClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MachineLearningClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MachineLearningClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MachineLearningClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MachineLearningClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MachineLearningClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MachineLearningClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MachineLearningClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MachineLearningClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MachineLearningClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMachineLearning/MachineLearningClientProtocol.swift b/Sources/Services/AWSMachineLearning/MachineLearningClientProtocol.swift index 0233a7052fd..3a297d1aeb8 100644 --- a/Sources/Services/AWSMachineLearning/MachineLearningClientProtocol.swift +++ b/Sources/Services/AWSMachineLearning/MachineLearningClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Definition of the public APIs exposed by Amazon Machine Learning diff --git a/Sources/Services/AWSMacie/MacieClient.swift b/Sources/Services/AWSMacie/MacieClient.swift index e40fb988608..8182897f0dc 100644 --- a/Sources/Services/AWSMacie/MacieClient.swift +++ b/Sources/Services/AWSMacie/MacieClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MacieClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MacieClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MacieClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MacieClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MacieClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MacieClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MacieClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MacieClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MacieClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMacie/MacieClientProtocol.swift b/Sources/Services/AWSMacie/MacieClientProtocol.swift index 716c3ca0259..9a638be7c02 100644 --- a/Sources/Services/AWSMacie/MacieClientProtocol.swift +++ b/Sources/Services/AWSMacie/MacieClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Macie Classic Amazon Macie Classic has been discontinued and is no longer available. A new Amazon Macie is now available with significant design improvements and additional features, at a lower price and in most Amazon Web Services Regions. We encourage you to take advantage of the new and improved features, and benefit from the reduced cost. To learn about features and pricing for the new Macie, see [Amazon Macie](http://aws.amazon.com/macie/). To learn how to use the new Macie, see the [Amazon Macie User Guide](https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html). diff --git a/Sources/Services/AWSMacie2/Macie2Client.swift b/Sources/Services/AWSMacie2/Macie2Client.swift index eceab204a24..81d8f10d3e8 100644 --- a/Sources/Services/AWSMacie2/Macie2Client.swift +++ b/Sources/Services/AWSMacie2/Macie2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class Macie2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await Macie2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try Macie2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class Macie2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class Macie2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class Macie2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Macie2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class Macie2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Macie2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMacie2/Macie2ClientProtocol.swift b/Sources/Services/AWSMacie2/Macie2ClientProtocol.swift index f83296f4304..d342d5fdad3 100644 --- a/Sources/Services/AWSMacie2/Macie2ClientProtocol.swift +++ b/Sources/Services/AWSMacie2/Macie2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Macie diff --git a/Sources/Services/AWSManagedBlockchain/ManagedBlockchainClient.swift b/Sources/Services/AWSManagedBlockchain/ManagedBlockchainClient.swift index 6b216a6faba..4fb9fd08536 100644 --- a/Sources/Services/AWSManagedBlockchain/ManagedBlockchainClient.swift +++ b/Sources/Services/AWSManagedBlockchain/ManagedBlockchainClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ManagedBlockchainClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ManagedBlockchainClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ManagedBlockchainClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ManagedBlockchainClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ManagedBlockchainClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ManagedBlockchainClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ManagedBlockchainClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ManagedBlockchainClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ManagedBlockchainClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSManagedBlockchain/ManagedBlockchainClientProtocol.swift b/Sources/Services/AWSManagedBlockchain/ManagedBlockchainClientProtocol.swift index 075b92c58aa..d32a5c39503 100644 --- a/Sources/Services/AWSManagedBlockchain/ManagedBlockchainClientProtocol.swift +++ b/Sources/Services/AWSManagedBlockchain/ManagedBlockchainClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Managed Blockchain is a fully managed service for creating and managing blockchain networks using open-source frameworks. Blockchain allows you to build applications where multiple parties can securely and transparently run transactions and share data without the need for a trusted, central authority. Managed Blockchain supports the Hyperledger Fabric and Ethereum open-source frameworks. Because of fundamental differences between the frameworks, some API actions or data types may only apply in the context of one framework and not the other. For example, actions related to Hyperledger Fabric network members such as CreateMember and DeleteMember don't apply to Ethereum. The description for each action indicates the framework or frameworks to which it applies. Data types and properties that apply only in the context of a particular framework are similarly indicated. diff --git a/Sources/Services/AWSMarketplaceCatalog/MarketplaceCatalogClient.swift b/Sources/Services/AWSMarketplaceCatalog/MarketplaceCatalogClient.swift index aa2222c2ba1..36de803c188 100644 --- a/Sources/Services/AWSMarketplaceCatalog/MarketplaceCatalogClient.swift +++ b/Sources/Services/AWSMarketplaceCatalog/MarketplaceCatalogClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MarketplaceCatalogClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MarketplaceCatalogClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MarketplaceCatalogClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MarketplaceCatalogClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MarketplaceCatalogClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MarketplaceCatalogClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MarketplaceCatalogClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MarketplaceCatalogClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MarketplaceCatalogClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMarketplaceCatalog/MarketplaceCatalogClientProtocol.swift b/Sources/Services/AWSMarketplaceCatalog/MarketplaceCatalogClientProtocol.swift index 8d4b653a060..2dd8c650f5e 100644 --- a/Sources/Services/AWSMarketplaceCatalog/MarketplaceCatalogClientProtocol.swift +++ b/Sources/Services/AWSMarketplaceCatalog/MarketplaceCatalogClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Catalog API actions allow you to manage your entities through list, describe, and update capabilities. An entity can be a product or an offer on AWS Marketplace. You can automate your entity update process by integrating the AWS Marketplace Catalog API with your AWS Marketplace product build or deployment pipelines. You can also create your own applications on top of the Catalog API to manage your products on AWS Marketplace. diff --git a/Sources/Services/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.swift b/Sources/Services/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.swift index 11b4eeb4766..b1fdc423d88 100644 --- a/Sources/Services/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.swift +++ b/Sources/Services/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MarketplaceCommerceAnalyticsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MarketplaceCommerceAnalyticsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MarketplaceCommerceAnalyticsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MarketplaceCommerceAnalyticsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MarketplaceCommerceAnalyticsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MarketplaceCommerceAnalyticsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MarketplaceCommerceAnalyticsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MarketplaceCommerceAnalyticsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MarketplaceCommerceAnalyticsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClientProtocol.swift b/Sources/Services/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClientProtocol.swift index 3ce0522a3a3..72a653a8915 100644 --- a/Sources/Services/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClientProtocol.swift +++ b/Sources/Services/AWSMarketplaceCommerceAnalytics/MarketplaceCommerceAnalyticsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Provides AWS Marketplace business intelligence data on-demand. diff --git a/Sources/Services/AWSMarketplaceEntitlementService/MarketplaceEntitlementClient.swift b/Sources/Services/AWSMarketplaceEntitlementService/MarketplaceEntitlementClient.swift index 5908a36043f..fdc1bdd09a7 100644 --- a/Sources/Services/AWSMarketplaceEntitlementService/MarketplaceEntitlementClient.swift +++ b/Sources/Services/AWSMarketplaceEntitlementService/MarketplaceEntitlementClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MarketplaceEntitlementClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MarketplaceEntitlementClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MarketplaceEntitlementClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MarketplaceEntitlementClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MarketplaceEntitlementClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MarketplaceEntitlementClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MarketplaceEntitlementClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MarketplaceEntitlementClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MarketplaceEntitlementClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMarketplaceEntitlementService/MarketplaceEntitlementClientProtocol.swift b/Sources/Services/AWSMarketplaceEntitlementService/MarketplaceEntitlementClientProtocol.swift index 0f20d5956ca..f620c3a65da 100644 --- a/Sources/Services/AWSMarketplaceEntitlementService/MarketplaceEntitlementClientProtocol.swift +++ b/Sources/Services/AWSMarketplaceEntitlementService/MarketplaceEntitlementClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Marketplace Entitlement Service This reference provides descriptions of the AWS Marketplace Entitlement Service API. AWS Marketplace Entitlement Service is used to determine the entitlement of a customer to a given product. An entitlement represents capacity in a product owned by the customer. For example, a customer might own some number of users or seats in an SaaS application or some amount of data capacity in a multi-tenant database. Getting Entitlement Records diff --git a/Sources/Services/AWSMarketplaceMetering/MarketplaceMeteringClient.swift b/Sources/Services/AWSMarketplaceMetering/MarketplaceMeteringClient.swift index f4ab489ea80..fb49e5b10f8 100644 --- a/Sources/Services/AWSMarketplaceMetering/MarketplaceMeteringClient.swift +++ b/Sources/Services/AWSMarketplaceMetering/MarketplaceMeteringClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MarketplaceMeteringClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MarketplaceMeteringClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MarketplaceMeteringClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MarketplaceMeteringClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MarketplaceMeteringClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MarketplaceMeteringClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MarketplaceMeteringClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MarketplaceMeteringClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MarketplaceMeteringClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMarketplaceMetering/MarketplaceMeteringClientProtocol.swift b/Sources/Services/AWSMarketplaceMetering/MarketplaceMeteringClientProtocol.swift index 5560b47d93d..e54e093876a 100644 --- a/Sources/Services/AWSMarketplaceMetering/MarketplaceMeteringClientProtocol.swift +++ b/Sources/Services/AWSMarketplaceMetering/MarketplaceMeteringClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Marketplace Metering Service This reference provides descriptions of the low-level AWS Marketplace Metering Service API. AWS Marketplace sellers can use this API to submit usage data for custom usage dimensions. For information on the permissions you need to use this API, see [AWS Marketplace metering and entitlement API permissions](https://docs.aws.amazon.com/marketplace/latest/userguide/iam-user-policy-for-aws-marketplace-actions.html) in the AWS Marketplace Seller Guide. Submitting Metering Records diff --git a/Sources/Services/AWSMediaConnect/MediaConnectClient.swift b/Sources/Services/AWSMediaConnect/MediaConnectClient.swift index 0bd7b64f448..05e01631b2f 100644 --- a/Sources/Services/AWSMediaConnect/MediaConnectClient.swift +++ b/Sources/Services/AWSMediaConnect/MediaConnectClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MediaConnectClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MediaConnectClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MediaConnectClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MediaConnectClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MediaConnectClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MediaConnectClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaConnectClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MediaConnectClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaConnectClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMediaConnect/MediaConnectClientProtocol.swift b/Sources/Services/AWSMediaConnect/MediaConnectClientProtocol.swift index 8d4f06a82bd..1ad33838ec9 100644 --- a/Sources/Services/AWSMediaConnect/MediaConnectClientProtocol.swift +++ b/Sources/Services/AWSMediaConnect/MediaConnectClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// API for AWS Elemental MediaConnect diff --git a/Sources/Services/AWSMediaConvert/MediaConvertClient.swift b/Sources/Services/AWSMediaConvert/MediaConvertClient.swift index 3a10e050ad2..a1d35fcdb81 100644 --- a/Sources/Services/AWSMediaConvert/MediaConvertClient.swift +++ b/Sources/Services/AWSMediaConvert/MediaConvertClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MediaConvertClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MediaConvertClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MediaConvertClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MediaConvertClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MediaConvertClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MediaConvertClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaConvertClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MediaConvertClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaConvertClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMediaConvert/MediaConvertClientProtocol.swift b/Sources/Services/AWSMediaConvert/MediaConvertClientProtocol.swift index 0ef1f5d9f98..cbcf1122cb2 100644 --- a/Sources/Services/AWSMediaConvert/MediaConvertClientProtocol.swift +++ b/Sources/Services/AWSMediaConvert/MediaConvertClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Elemental MediaConvert diff --git a/Sources/Services/AWSMediaLive/MediaLiveClient.swift b/Sources/Services/AWSMediaLive/MediaLiveClient.swift index 287673dc46e..63179de0d5f 100644 --- a/Sources/Services/AWSMediaLive/MediaLiveClient.swift +++ b/Sources/Services/AWSMediaLive/MediaLiveClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MediaLiveClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MediaLiveClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MediaLiveClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MediaLiveClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MediaLiveClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MediaLiveClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaLiveClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MediaLiveClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaLiveClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMediaLive/MediaLiveClientProtocol.swift b/Sources/Services/AWSMediaLive/MediaLiveClientProtocol.swift index 58674f6e6cd..8d4e2f22398 100644 --- a/Sources/Services/AWSMediaLive/MediaLiveClientProtocol.swift +++ b/Sources/Services/AWSMediaLive/MediaLiveClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// API for AWS Elemental MediaLive diff --git a/Sources/Services/AWSMediaPackage/MediaPackageClient.swift b/Sources/Services/AWSMediaPackage/MediaPackageClient.swift index aad2a4a825b..8d1e307b06b 100644 --- a/Sources/Services/AWSMediaPackage/MediaPackageClient.swift +++ b/Sources/Services/AWSMediaPackage/MediaPackageClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MediaPackageClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MediaPackageClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MediaPackageClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MediaPackageClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MediaPackageClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MediaPackageClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaPackageClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MediaPackageClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaPackageClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMediaPackage/MediaPackageClientProtocol.swift b/Sources/Services/AWSMediaPackage/MediaPackageClientProtocol.swift index ca2d60b8f74..9c7e35c96a0 100644 --- a/Sources/Services/AWSMediaPackage/MediaPackageClientProtocol.swift +++ b/Sources/Services/AWSMediaPackage/MediaPackageClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Elemental MediaPackage diff --git a/Sources/Services/AWSMediaPackageVod/MediaPackageVodClient.swift b/Sources/Services/AWSMediaPackageVod/MediaPackageVodClient.swift index ba6ce114b4b..13e1db35828 100644 --- a/Sources/Services/AWSMediaPackageVod/MediaPackageVodClient.swift +++ b/Sources/Services/AWSMediaPackageVod/MediaPackageVodClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MediaPackageVodClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MediaPackageVodClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MediaPackageVodClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MediaPackageVodClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MediaPackageVodClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MediaPackageVodClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaPackageVodClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MediaPackageVodClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaPackageVodClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMediaPackageVod/MediaPackageVodClientProtocol.swift b/Sources/Services/AWSMediaPackageVod/MediaPackageVodClientProtocol.swift index 40b4fae3135..e8db6dd733d 100644 --- a/Sources/Services/AWSMediaPackageVod/MediaPackageVodClientProtocol.swift +++ b/Sources/Services/AWSMediaPackageVod/MediaPackageVodClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Elemental MediaPackage VOD diff --git a/Sources/Services/AWSMediaStore/MediaStoreClient.swift b/Sources/Services/AWSMediaStore/MediaStoreClient.swift index 50bccc12a3c..d45cef973fe 100644 --- a/Sources/Services/AWSMediaStore/MediaStoreClient.swift +++ b/Sources/Services/AWSMediaStore/MediaStoreClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MediaStoreClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MediaStoreClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MediaStoreClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MediaStoreClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MediaStoreClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MediaStoreClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaStoreClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MediaStoreClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaStoreClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMediaStore/MediaStoreClientProtocol.swift b/Sources/Services/AWSMediaStore/MediaStoreClientProtocol.swift index 01aabaeee68..5769ad7404c 100644 --- a/Sources/Services/AWSMediaStore/MediaStoreClientProtocol.swift +++ b/Sources/Services/AWSMediaStore/MediaStoreClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// An AWS Elemental MediaStore container is a namespace that holds folders and objects. You use a container endpoint to create, read, and delete objects. diff --git a/Sources/Services/AWSMediaStoreData/MediaStoreDataClient.swift b/Sources/Services/AWSMediaStoreData/MediaStoreDataClient.swift index 37ae06f05e2..405a23ea5f4 100644 --- a/Sources/Services/AWSMediaStoreData/MediaStoreDataClient.swift +++ b/Sources/Services/AWSMediaStoreData/MediaStoreDataClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MediaStoreDataClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MediaStoreDataClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MediaStoreDataClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MediaStoreDataClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MediaStoreDataClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MediaStoreDataClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaStoreDataClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MediaStoreDataClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaStoreDataClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMediaStoreData/MediaStoreDataClientProtocol.swift b/Sources/Services/AWSMediaStoreData/MediaStoreDataClientProtocol.swift index 82a35878146..69027e61721 100644 --- a/Sources/Services/AWSMediaStoreData/MediaStoreDataClientProtocol.swift +++ b/Sources/Services/AWSMediaStoreData/MediaStoreDataClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// An AWS Elemental MediaStore asset is an object, similar to an object in the Amazon S3 service. Objects are the fundamental entities that are stored in AWS Elemental MediaStore. diff --git a/Sources/Services/AWSMediaTailor/MediaTailorClient.swift b/Sources/Services/AWSMediaTailor/MediaTailorClient.swift index 84559004e99..5a07b4adf5a 100644 --- a/Sources/Services/AWSMediaTailor/MediaTailorClient.swift +++ b/Sources/Services/AWSMediaTailor/MediaTailorClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MediaTailorClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MediaTailorClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MediaTailorClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MediaTailorClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MediaTailorClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MediaTailorClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaTailorClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MediaTailorClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MediaTailorClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMediaTailor/MediaTailorClientProtocol.swift b/Sources/Services/AWSMediaTailor/MediaTailorClientProtocol.swift index e7b1f3aa6fc..3afad516739 100644 --- a/Sources/Services/AWSMediaTailor/MediaTailorClientProtocol.swift +++ b/Sources/Services/AWSMediaTailor/MediaTailorClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Use the AWS Elemental MediaTailor SDKs and CLI to configure scalable ad insertion and linear channels. With MediaTailor, you can assemble existing content into a linear stream and serve targeted ads to viewers while maintaining broadcast quality in over-the-top (OTT) video applications. For information about using the service, including detailed information about the settings covered in this guide, see the [AWS Elemental MediaTailor User Guide](https://docs.aws.amazon.com/mediatailor/latest/ug/). Through the SDKs and the CLI you manage AWS Elemental MediaTailor configurations and channels the same as you do through the console. For example, you specify ad insertion behavior and mapping information for the origin server and the ad decision server (ADS). diff --git a/Sources/Services/AWSMemoryDB/MemoryDBClient.swift b/Sources/Services/AWSMemoryDB/MemoryDBClient.swift index c301d8e2826..2473cde5d34 100644 --- a/Sources/Services/AWSMemoryDB/MemoryDBClient.swift +++ b/Sources/Services/AWSMemoryDB/MemoryDBClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MemoryDBClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MemoryDBClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MemoryDBClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MemoryDBClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MemoryDBClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MemoryDBClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MemoryDBClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MemoryDBClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MemoryDBClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMemoryDB/MemoryDBClientProtocol.swift b/Sources/Services/AWSMemoryDB/MemoryDBClientProtocol.swift index bba032bd144..2265b56f317 100644 --- a/Sources/Services/AWSMemoryDB/MemoryDBClientProtocol.swift +++ b/Sources/Services/AWSMemoryDB/MemoryDBClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// MemoryDB for Redis is a fully managed, Redis-compatible, in-memory database that delivers ultra-fast performance and Multi-AZ durability for modern applications built using microservices architectures. MemoryDB stores the entire database in-memory, enabling low latency and high throughput data access. It is compatible with Redis, a popular open source data store, enabling you to leverage Redis’ flexible and friendly data structures, APIs, and commands. diff --git a/Sources/Services/AWSMgn/MgnClient.swift b/Sources/Services/AWSMgn/MgnClient.swift index e86141455c2..97eb5a0ecbd 100644 --- a/Sources/Services/AWSMgn/MgnClient.swift +++ b/Sources/Services/AWSMgn/MgnClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MgnClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MgnClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MgnClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MgnClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MgnClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MgnClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MgnClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MgnClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MgnClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMgn/MgnClientProtocol.swift b/Sources/Services/AWSMgn/MgnClientProtocol.swift index 4f36443395a..e3334ae0997 100644 --- a/Sources/Services/AWSMgn/MgnClientProtocol.swift +++ b/Sources/Services/AWSMgn/MgnClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Application Migration Service service. diff --git a/Sources/Services/AWSMigrationHub/MigrationHubClient.swift b/Sources/Services/AWSMigrationHub/MigrationHubClient.swift index acc1670818e..55dbd0e79b2 100644 --- a/Sources/Services/AWSMigrationHub/MigrationHubClient.swift +++ b/Sources/Services/AWSMigrationHub/MigrationHubClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MigrationHubClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MigrationHubClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MigrationHubClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MigrationHubClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MigrationHubClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MigrationHubClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MigrationHubClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMigrationHub/MigrationHubClientProtocol.swift b/Sources/Services/AWSMigrationHub/MigrationHubClientProtocol.swift index 6c84abc48f9..9510d76d23c 100644 --- a/Sources/Services/AWSMigrationHub/MigrationHubClientProtocol.swift +++ b/Sources/Services/AWSMigrationHub/MigrationHubClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The AWS Migration Hub API methods help to obtain server and application migration status and integrate your resource-specific migration tool by providing a programmatic interface to Migration Hub. Remember that you must set your AWS Migration Hub home region before you call any of these APIs, or a HomeRegionNotSetException error will be returned. Also, you must make the API calls while in your home region. diff --git a/Sources/Services/AWSMigrationHubConfig/MigrationHubConfigClient.swift b/Sources/Services/AWSMigrationHubConfig/MigrationHubConfigClient.swift index ea1c63a628f..1f26e7e061e 100644 --- a/Sources/Services/AWSMigrationHubConfig/MigrationHubConfigClient.swift +++ b/Sources/Services/AWSMigrationHubConfig/MigrationHubConfigClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MigrationHubConfigClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MigrationHubConfigClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MigrationHubConfigClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MigrationHubConfigClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MigrationHubConfigClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MigrationHubConfigClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubConfigClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MigrationHubConfigClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubConfigClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMigrationHubConfig/MigrationHubConfigClientProtocol.swift b/Sources/Services/AWSMigrationHubConfig/MigrationHubConfigClientProtocol.swift index e14bd2bdae2..a784b3eb661 100644 --- a/Sources/Services/AWSMigrationHubConfig/MigrationHubConfigClientProtocol.swift +++ b/Sources/Services/AWSMigrationHubConfig/MigrationHubConfigClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The AWS Migration Hub home region APIs are available specifically for working with your Migration Hub home region. You can use these APIs to determine a home region, as well as to create and work with controls that describe the home region. diff --git a/Sources/Services/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClient.swift b/Sources/Services/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClient.swift index c83853ada53..016c4f8c0a0 100644 --- a/Sources/Services/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClient.swift +++ b/Sources/Services/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MigrationHubOrchestratorClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MigrationHubOrchestratorClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MigrationHubOrchestratorClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MigrationHubOrchestratorClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MigrationHubOrchestratorClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MigrationHubOrchestratorClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubOrchestratorClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MigrationHubOrchestratorClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubOrchestratorClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClientProtocol.swift b/Sources/Services/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClientProtocol.swift index 41bec867151..a8deebe280e 100644 --- a/Sources/Services/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClientProtocol.swift +++ b/Sources/Services/AWSMigrationHubOrchestrator/MigrationHubOrchestratorClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This API reference provides descriptions, syntax, and other details about each of the actions and data types for AWS Migration Hub Orchestrator. he topic for each action shows the API request parameters and the response. Alternatively, you can use one of the AWS SDKs to access an API that is tailored to the programming language or platform that you're using. diff --git a/Sources/Services/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClient.swift b/Sources/Services/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClient.swift index 1d071a5cb6c..985f6e630be 100644 --- a/Sources/Services/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClient.swift +++ b/Sources/Services/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MigrationHubRefactorSpacesClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MigrationHubRefactorSpacesClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MigrationHubRefactorSpacesClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MigrationHubRefactorSpacesClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MigrationHubRefactorSpacesClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MigrationHubRefactorSpacesClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubRefactorSpacesClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MigrationHubRefactorSpacesClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubRefactorSpacesClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClientProtocol.swift b/Sources/Services/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClientProtocol.swift index 474deb972b7..7cc501745a7 100644 --- a/Sources/Services/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClientProtocol.swift +++ b/Sources/Services/AWSMigrationHubRefactorSpaces/MigrationHubRefactorSpacesClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Migration Hub Refactor Spaces This API reference provides descriptions, syntax, and other details about each of the actions and data types for Amazon Web Services Migration Hub Refactor Spaces (Refactor Spaces). The topic for each action shows the API request parameters and the response. Alternatively, you can use one of the Amazon Web Services SDKs to access an API that is tailored to the programming language or platform that you're using. For more information, see [Amazon Web Services SDKs](https://aws.amazon.com/tools/#SDKs). To share Refactor Spaces environments with other Amazon Web Services accounts or with Organizations and their OUs, use Resource Access Manager's CreateResourceShare API. See [CreateResourceShare](https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html) in the Amazon Web Services RAM API Reference. diff --git a/Sources/Services/AWSMigrationHubStrategy/MigrationHubStrategyClient.swift b/Sources/Services/AWSMigrationHubStrategy/MigrationHubStrategyClient.swift index 274aac9e1f5..5eaf4b24c97 100644 --- a/Sources/Services/AWSMigrationHubStrategy/MigrationHubStrategyClient.swift +++ b/Sources/Services/AWSMigrationHubStrategy/MigrationHubStrategyClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MigrationHubStrategyClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MigrationHubStrategyClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MigrationHubStrategyClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MigrationHubStrategyClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MigrationHubStrategyClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MigrationHubStrategyClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubStrategyClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MigrationHubStrategyClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MigrationHubStrategyClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMigrationHubStrategy/MigrationHubStrategyClientProtocol.swift b/Sources/Services/AWSMigrationHubStrategy/MigrationHubStrategyClientProtocol.swift index 03125a39b54..9a914000d77 100644 --- a/Sources/Services/AWSMigrationHubStrategy/MigrationHubStrategyClientProtocol.swift +++ b/Sources/Services/AWSMigrationHubStrategy/MigrationHubStrategyClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Migration Hub Strategy Recommendations This API reference provides descriptions, syntax, and other details about each of the actions and data types for Migration Hub Strategy Recommendations (Strategy Recommendations). The topic for each action shows the API request parameters and the response. Alternatively, you can use one of the AWS SDKs to access an API that is tailored to the programming language or platform that you're using. For more information, see [AWS SDKs](http://aws.amazon.com/tools/#SDKs). diff --git a/Sources/Services/AWSMobile/MobileClient.swift b/Sources/Services/AWSMobile/MobileClient.swift index 490942d693d..ec25a4e801c 100644 --- a/Sources/Services/AWSMobile/MobileClient.swift +++ b/Sources/Services/AWSMobile/MobileClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MobileClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MobileClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MobileClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MobileClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MobileClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MobileClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MobileClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MobileClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MobileClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMobile/MobileClientProtocol.swift b/Sources/Services/AWSMobile/MobileClientProtocol.swift index 2d8ad8dcef9..a7400ca98f1 100644 --- a/Sources/Services/AWSMobile/MobileClientProtocol.swift +++ b/Sources/Services/AWSMobile/MobileClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Mobile Service provides mobile app and website developers with capabilities required to configure AWS resources and bootstrap their developer desktop projects with the necessary SDKs, constants, tools and samples to make use of those resources. diff --git a/Sources/Services/AWSMq/MqClient.swift b/Sources/Services/AWSMq/MqClient.swift index 124c302f3a2..0b1c21616d4 100644 --- a/Sources/Services/AWSMq/MqClient.swift +++ b/Sources/Services/AWSMq/MqClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class MqClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await MqClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try MqClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class MqClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class MqClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class MqClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MqClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class MqClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("MqClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSMq/MqClientProtocol.swift b/Sources/Services/AWSMq/MqClientProtocol.swift index 76a4ed223a9..6747c211bb8 100644 --- a/Sources/Services/AWSMq/MqClientProtocol.swift +++ b/Sources/Services/AWSMq/MqClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon MQ is a managed message broker service for Apache ActiveMQ and RabbitMQ that makes it easy to set up and operate message brokers in the cloud. A message broker allows software applications and components to communicate using various programming languages, operating systems, and formal messaging protocols. diff --git a/Sources/Services/AWSNeptune/NeptuneClient.swift b/Sources/Services/AWSNeptune/NeptuneClient.swift index 8ab30b61b61..21f21fcf41d 100644 --- a/Sources/Services/AWSNeptune/NeptuneClient.swift +++ b/Sources/Services/AWSNeptune/NeptuneClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class NeptuneClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await NeptuneClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try NeptuneClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class NeptuneClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class NeptuneClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class NeptuneClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("NeptuneClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class NeptuneClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("NeptuneClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSNeptune/NeptuneClientProtocol.swift b/Sources/Services/AWSNeptune/NeptuneClientProtocol.swift index 686b5d5c68f..3a4e5098d31 100644 --- a/Sources/Services/AWSNeptune/NeptuneClientProtocol.swift +++ b/Sources/Services/AWSNeptune/NeptuneClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Neptune Amazon Neptune is a fast, reliable, fully-managed graph database service that makes it easy to build and run applications that work with highly connected datasets. The core of Amazon Neptune is a purpose-built, high-performance graph database engine optimized for storing billions of relationships and querying the graph with milliseconds latency. Amazon Neptune supports popular graph models Property Graph and W3C's RDF, and their respective query languages Apache TinkerPop Gremlin and SPARQL, allowing you to easily build queries that efficiently navigate highly connected datasets. Neptune powers graph use cases such as recommendation engines, fraud detection, knowledge graphs, drug discovery, and network security. This interface reference for Amazon Neptune contains documentation for a programming or command line interface you can use to manage Amazon Neptune. Note that Amazon Neptune is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. The reference structure is as follows, and we list following some related topics from the user guide. diff --git a/Sources/Services/AWSNetworkFirewall/NetworkFirewallClient.swift b/Sources/Services/AWSNetworkFirewall/NetworkFirewallClient.swift index 9e3ba6d1ba3..d54a179cf4b 100644 --- a/Sources/Services/AWSNetworkFirewall/NetworkFirewallClient.swift +++ b/Sources/Services/AWSNetworkFirewall/NetworkFirewallClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class NetworkFirewallClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await NetworkFirewallClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try NetworkFirewallClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class NetworkFirewallClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class NetworkFirewallClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class NetworkFirewallClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("NetworkFirewallClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class NetworkFirewallClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("NetworkFirewallClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSNetworkFirewall/NetworkFirewallClientProtocol.swift b/Sources/Services/AWSNetworkFirewall/NetworkFirewallClientProtocol.swift index 9490e970575..c4a72ce4eb6 100644 --- a/Sources/Services/AWSNetworkFirewall/NetworkFirewallClientProtocol.swift +++ b/Sources/Services/AWSNetworkFirewall/NetworkFirewallClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the API Reference for Network Firewall. This guide is for developers who need detailed information about the Network Firewall API actions, data types, and errors. diff --git a/Sources/Services/AWSNetworkManager/NetworkManagerClient.swift b/Sources/Services/AWSNetworkManager/NetworkManagerClient.swift index 47e200e8edc..f947e2be4be 100644 --- a/Sources/Services/AWSNetworkManager/NetworkManagerClient.swift +++ b/Sources/Services/AWSNetworkManager/NetworkManagerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class NetworkManagerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await NetworkManagerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try NetworkManagerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class NetworkManagerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class NetworkManagerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class NetworkManagerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("NetworkManagerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class NetworkManagerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("NetworkManagerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSNetworkManager/NetworkManagerClientProtocol.swift b/Sources/Services/AWSNetworkManager/NetworkManagerClientProtocol.swift index 6b70595c86d..59ba4802ab0 100644 --- a/Sources/Services/AWSNetworkManager/NetworkManagerClientProtocol.swift +++ b/Sources/Services/AWSNetworkManager/NetworkManagerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services enables you to centrally manage your Amazon Web Services Cloud WAN core network and your Transit Gateway network across Amazon Web Services accounts, Regions, and on-premises locations. diff --git a/Sources/Services/AWSNimble/NimbleClient.swift b/Sources/Services/AWSNimble/NimbleClient.swift index ff3f58389be..027ab52f878 100644 --- a/Sources/Services/AWSNimble/NimbleClient.swift +++ b/Sources/Services/AWSNimble/NimbleClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class NimbleClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await NimbleClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try NimbleClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class NimbleClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class NimbleClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class NimbleClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("NimbleClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class NimbleClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("NimbleClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSNimble/NimbleClientProtocol.swift b/Sources/Services/AWSNimble/NimbleClientProtocol.swift index 0866461ab33..00139ca4f93 100644 --- a/Sources/Services/AWSNimble/NimbleClientProtocol.swift +++ b/Sources/Services/AWSNimble/NimbleClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the Amazon Nimble Studio API reference. This API reference provides methods, schema, resources, parameters, and more to help you get the most out of Nimble Studio. Nimble Studio is a virtual studio that empowers visual effects, animation, and interactive content teams to create content securely within a scalable, private cloud service. diff --git a/Sources/Services/AWSOAM/OAMClient.swift b/Sources/Services/AWSOAM/OAMClient.swift index f8976058ee3..645a7ed8330 100644 --- a/Sources/Services/AWSOAM/OAMClient.swift +++ b/Sources/Services/AWSOAM/OAMClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class OAMClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await OAMClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try OAMClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class OAMClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class OAMClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class OAMClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OAMClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class OAMClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OAMClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSOAM/OAMClientProtocol.swift b/Sources/Services/AWSOAM/OAMClientProtocol.swift index 10e27cc5ec2..7106b9df9be 100644 --- a/Sources/Services/AWSOAM/OAMClientProtocol.swift +++ b/Sources/Services/AWSOAM/OAMClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Use Amazon CloudWatch Observability Access Manager to create and manage links between source accounts and monitoring accounts by using CloudWatch cross-account observability. With CloudWatch cross-account observability, you can monitor and troubleshoot applications that span multiple accounts within a Region. Seamlessly search, visualize, and analyze your metrics, logs, and traces in any of the linked accounts without account boundaries. Set up one or more Amazon Web Services accounts as monitoring accounts and link them with multiple source accounts. A monitoring account is a central Amazon Web Services account that can view and interact with observability data generated from source accounts. A source account is an individual Amazon Web Services account that generates observability data for the resources that reside in it. Source accounts share their observability data with the monitoring account. The shared observability data can include metrics in Amazon CloudWatch, logs in Amazon CloudWatch Logs, and traces in X-Ray. diff --git a/Sources/Services/AWSOmics/OmicsClient.swift b/Sources/Services/AWSOmics/OmicsClient.swift index 4508fd3dfb5..3e19fc617d6 100644 --- a/Sources/Services/AWSOmics/OmicsClient.swift +++ b/Sources/Services/AWSOmics/OmicsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class OmicsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await OmicsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try OmicsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class OmicsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class OmicsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class OmicsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OmicsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class OmicsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OmicsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSOmics/OmicsClientProtocol.swift b/Sources/Services/AWSOmics/OmicsClientProtocol.swift index 850077545e5..2442c277e7b 100644 --- a/Sources/Services/AWSOmics/OmicsClientProtocol.swift +++ b/Sources/Services/AWSOmics/OmicsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the Amazon Omics API Reference. For an introduction to the service, see [What is Amazon Omics?](https://docs.aws.amazon.com/omics/latest/dev/) in the Amazon Omics Developer Guide. diff --git a/Sources/Services/AWSOpenSearch/OpenSearchClient.swift b/Sources/Services/AWSOpenSearch/OpenSearchClient.swift index 57937dc959c..dfac4626abc 100644 --- a/Sources/Services/AWSOpenSearch/OpenSearchClient.swift +++ b/Sources/Services/AWSOpenSearch/OpenSearchClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class OpenSearchClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await OpenSearchClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try OpenSearchClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class OpenSearchClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class OpenSearchClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class OpenSearchClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OpenSearchClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class OpenSearchClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OpenSearchClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSOpenSearch/OpenSearchClientProtocol.swift b/Sources/Services/AWSOpenSearch/OpenSearchClientProtocol.swift index 875f764f71d..4a22cf87346 100644 --- a/Sources/Services/AWSOpenSearch/OpenSearchClientProtocol.swift +++ b/Sources/Services/AWSOpenSearch/OpenSearchClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Use the Amazon OpenSearch Service configuration API to create, configure, and manage OpenSearch Service domains. For sample code that uses the configuration API, see the [ Amazon OpenSearch Service Developer Guide ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/opensearch-configuration-samples.html). The guide also contains [sample code](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/request-signing.html) for sending signed HTTP requests to the OpenSearch APIs. The endpoint for configuration service requests is Region specific: es.region.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported Regions and endpoints, see [Amazon Web Services service endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#service-regions). diff --git a/Sources/Services/AWSOpenSearchServerless/OpenSearchServerlessClient.swift b/Sources/Services/AWSOpenSearchServerless/OpenSearchServerlessClient.swift index 62152d97ce4..da5be691621 100644 --- a/Sources/Services/AWSOpenSearchServerless/OpenSearchServerlessClient.swift +++ b/Sources/Services/AWSOpenSearchServerless/OpenSearchServerlessClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class OpenSearchServerlessClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await OpenSearchServerlessClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try OpenSearchServerlessClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class OpenSearchServerlessClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class OpenSearchServerlessClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class OpenSearchServerlessClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OpenSearchServerlessClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class OpenSearchServerlessClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OpenSearchServerlessClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSOpenSearchServerless/OpenSearchServerlessClientProtocol.swift b/Sources/Services/AWSOpenSearchServerless/OpenSearchServerlessClientProtocol.swift index 358187b4be9..c6280c27957 100644 --- a/Sources/Services/AWSOpenSearchServerless/OpenSearchServerlessClientProtocol.swift +++ b/Sources/Services/AWSOpenSearchServerless/OpenSearchServerlessClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Use the Amazon OpenSearch Serverless API to create, configure, and manage OpenSearch Serverless collections and security policies. OpenSearch Serverless is an on-demand, pre-provisioned serverless configuration for Amazon OpenSearch Service. OpenSearch Serverless removes the operational complexities of provisioning, configuring, and tuning your OpenSearch clusters. It enables you to easily search and analyze petabytes of data without having to worry about the underlying infrastructure and data management. To learn more about OpenSearch Serverless, see [What is Amazon OpenSearch Serverless?](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-overview.html) diff --git a/Sources/Services/AWSOpsWorks/OpsWorksClient.swift b/Sources/Services/AWSOpsWorks/OpsWorksClient.swift index 73d92724ede..cdb6f72e344 100644 --- a/Sources/Services/AWSOpsWorks/OpsWorksClient.swift +++ b/Sources/Services/AWSOpsWorks/OpsWorksClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class OpsWorksClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await OpsWorksClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try OpsWorksClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class OpsWorksClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class OpsWorksClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class OpsWorksClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OpsWorksClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class OpsWorksClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OpsWorksClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSOpsWorks/OpsWorksClientProtocol.swift b/Sources/Services/AWSOpsWorks/OpsWorksClientProtocol.swift index 93f0a68614b..4baad81a54f 100644 --- a/Sources/Services/AWSOpsWorks/OpsWorksClientProtocol.swift +++ b/Sources/Services/AWSOpsWorks/OpsWorksClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS OpsWorks Welcome to the AWS OpsWorks Stacks API Reference. This guide provides descriptions, syntax, and usage examples for AWS OpsWorks Stacks actions and data types, including common parameters and error codes. AWS OpsWorks Stacks is an application management service that provides an integrated experience for overseeing the complete application lifecycle. For information about this product, go to the [AWS OpsWorks](http://aws.amazon.com/opsworks/) details page. SDKs and CLI The most common way to use the AWS OpsWorks Stacks API is by using the AWS Command Line Interface (CLI) or by using one of the AWS SDKs to implement applications in your preferred language. For more information, see: diff --git a/Sources/Services/AWSOpsWorksCM/OpsWorksCMClient.swift b/Sources/Services/AWSOpsWorksCM/OpsWorksCMClient.swift index 74f3f91a076..4540dce307d 100644 --- a/Sources/Services/AWSOpsWorksCM/OpsWorksCMClient.swift +++ b/Sources/Services/AWSOpsWorksCM/OpsWorksCMClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class OpsWorksCMClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await OpsWorksCMClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try OpsWorksCMClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class OpsWorksCMClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class OpsWorksCMClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class OpsWorksCMClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OpsWorksCMClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class OpsWorksCMClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OpsWorksCMClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSOpsWorksCM/OpsWorksCMClientProtocol.swift b/Sources/Services/AWSOpsWorksCM/OpsWorksCMClientProtocol.swift index 7213085cb26..79070182639 100644 --- a/Sources/Services/AWSOpsWorksCM/OpsWorksCMClientProtocol.swift +++ b/Sources/Services/AWSOpsWorksCM/OpsWorksCMClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS OpsWorks CM AWS OpsWorks for configuration management (CM) is a service that runs and manages configuration management servers. You can use AWS OpsWorks CM to create and manage AWS OpsWorks for Chef Automate and AWS OpsWorks for Puppet Enterprise servers, and add or remove nodes for the servers to manage. Glossary of terms diff --git a/Sources/Services/AWSOrganizations/OrganizationsClient.swift b/Sources/Services/AWSOrganizations/OrganizationsClient.swift index 1519e6d72ec..9e59dbba127 100644 --- a/Sources/Services/AWSOrganizations/OrganizationsClient.swift +++ b/Sources/Services/AWSOrganizations/OrganizationsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class OrganizationsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await OrganizationsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try OrganizationsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class OrganizationsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class OrganizationsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class OrganizationsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OrganizationsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class OrganizationsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OrganizationsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSOrganizations/OrganizationsClientProtocol.swift b/Sources/Services/AWSOrganizations/OrganizationsClientProtocol.swift index c6ddf8974b3..38e451f839f 100644 --- a/Sources/Services/AWSOrganizations/OrganizationsClientProtocol.swift +++ b/Sources/Services/AWSOrganizations/OrganizationsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Organizations is a web service that enables you to consolidate your multiple Amazon Web Services accounts into an organization and centrally manage your accounts and their resources. This guide provides descriptions of the Organizations operations. For more information about using this service, see the [Organizations User Guide](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html). Support and feedback for Organizations We welcome your feedback. Send your comments to [feedback-awsorganizations@amazon.com](mailto:feedback-awsorganizations@amazon.com) or post your feedback and questions in the [Organizations support forum](http://forums.aws.amazon.com/forum.jspa?forumID=219). For more information about the Amazon Web Services support forums, see [Forums Help](http://forums.aws.amazon.com/help.jspa). Endpoint to call When using the CLI or the Amazon Web Services SDK For the current release of Organizations, specify the us-east-1 region for all Amazon Web Services API and CLI calls made from the commercial Amazon Web Services Regions outside of China. If calling from one of the Amazon Web Services Regions in China, then specify cn-northwest-1. You can do this in the CLI by using these parameters and commands: diff --git a/Sources/Services/AWSOutposts/OutpostsClient.swift b/Sources/Services/AWSOutposts/OutpostsClient.swift index 3f1ed684a3d..07ed83b3004 100644 --- a/Sources/Services/AWSOutposts/OutpostsClient.swift +++ b/Sources/Services/AWSOutposts/OutpostsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class OutpostsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await OutpostsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try OutpostsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class OutpostsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class OutpostsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class OutpostsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OutpostsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class OutpostsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("OutpostsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSOutposts/OutpostsClientProtocol.swift b/Sources/Services/AWSOutposts/OutpostsClientProtocol.swift index 871beb7fac5..5ce168ddf0c 100644 --- a/Sources/Services/AWSOutposts/OutpostsClientProtocol.swift +++ b/Sources/Services/AWSOutposts/OutpostsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Outposts is a fully managed service that extends Amazon Web Services infrastructure, APIs, and tools to customer premises. By providing local access to Amazon Web Services managed infrastructure, Amazon Web Services Outposts enables customers to build and run applications on premises using the same programming interfaces as in Amazon Web Services Regions, while using local compute and storage resources for lower latency and local data processing needs. diff --git a/Sources/Services/AWSPI/PIClient.swift b/Sources/Services/AWSPI/PIClient.swift index b67bcb4af02..b294d392059 100644 --- a/Sources/Services/AWSPI/PIClient.swift +++ b/Sources/Services/AWSPI/PIClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PIClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PIClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PIClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PIClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PIClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PIClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PIClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PIClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PIClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPI/PIClientProtocol.swift b/Sources/Services/AWSPI/PIClientProtocol.swift index 8fc7dc0f4bb..2cb5f8d8927 100644 --- a/Sources/Services/AWSPI/PIClientProtocol.swift +++ b/Sources/Services/AWSPI/PIClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon RDS Performance Insights Amazon RDS Performance Insights enables you to monitor and explore different dimensions of database load based on data captured from a running DB instance. The guide provides detailed information about Performance Insights data types, parameters and errors. When Performance Insights is enabled, the Amazon RDS Performance Insights API provides visibility into the performance of your DB instance. Amazon CloudWatch provides the authoritative source for Amazon Web Services service-vended monitoring metrics. Performance Insights offers a domain-specific view of DB load. DB load is measured as average active sessions. Performance Insights provides the data to API consumers as a two-dimensional time-series dataset. The time dimension provides DB load data for each time point in the queried time range. Each time point decomposes overall load in relation to the requested dimensions, measured at that time point. Examples include SQL, Wait event, User, and Host. diff --git a/Sources/Services/AWSPanorama/PanoramaClient.swift b/Sources/Services/AWSPanorama/PanoramaClient.swift index a8003f56a6e..9e296f03c45 100644 --- a/Sources/Services/AWSPanorama/PanoramaClient.swift +++ b/Sources/Services/AWSPanorama/PanoramaClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PanoramaClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PanoramaClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PanoramaClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PanoramaClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PanoramaClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PanoramaClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PanoramaClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PanoramaClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PanoramaClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPanorama/PanoramaClientProtocol.swift b/Sources/Services/AWSPanorama/PanoramaClientProtocol.swift index a7fbec6dcd7..58a6780035e 100644 --- a/Sources/Services/AWSPanorama/PanoramaClientProtocol.swift +++ b/Sources/Services/AWSPanorama/PanoramaClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Panorama Overview This is the AWS Panorama API Reference. For an introduction to the service, see [What is AWS Panorama?](https://docs.aws.amazon.com/panorama/latest/dev/panorama-welcome.html) in the AWS Panorama Developer Guide. diff --git a/Sources/Services/AWSPersonalize/PersonalizeClient.swift b/Sources/Services/AWSPersonalize/PersonalizeClient.swift index 76851c65f11..b9e8adfc1f7 100644 --- a/Sources/Services/AWSPersonalize/PersonalizeClient.swift +++ b/Sources/Services/AWSPersonalize/PersonalizeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PersonalizeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PersonalizeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PersonalizeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PersonalizeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PersonalizeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PersonalizeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PersonalizeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PersonalizeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PersonalizeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPersonalize/PersonalizeClientProtocol.swift b/Sources/Services/AWSPersonalize/PersonalizeClientProtocol.swift index f3673fe5b30..0774439e750 100644 --- a/Sources/Services/AWSPersonalize/PersonalizeClientProtocol.swift +++ b/Sources/Services/AWSPersonalize/PersonalizeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Personalize is a machine learning service that makes it easy to add individualized recommendations to customers. diff --git a/Sources/Services/AWSPersonalizeEvents/PersonalizeEventsClient.swift b/Sources/Services/AWSPersonalizeEvents/PersonalizeEventsClient.swift index dd9c573052c..2e3b42c48a9 100644 --- a/Sources/Services/AWSPersonalizeEvents/PersonalizeEventsClient.swift +++ b/Sources/Services/AWSPersonalizeEvents/PersonalizeEventsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PersonalizeEventsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PersonalizeEventsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PersonalizeEventsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PersonalizeEventsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PersonalizeEventsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PersonalizeEventsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PersonalizeEventsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PersonalizeEventsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PersonalizeEventsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPersonalizeEvents/PersonalizeEventsClientProtocol.swift b/Sources/Services/AWSPersonalizeEvents/PersonalizeEventsClientProtocol.swift index 46188651816..74a3f3d7613 100644 --- a/Sources/Services/AWSPersonalizeEvents/PersonalizeEventsClientProtocol.swift +++ b/Sources/Services/AWSPersonalizeEvents/PersonalizeEventsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Personalize can consume real-time user event data, such as stream or click data, and use it for model training either alone or combined with historical data. For more information see [Recording Events](https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html). diff --git a/Sources/Services/AWSPersonalizeRuntime/PersonalizeRuntimeClient.swift b/Sources/Services/AWSPersonalizeRuntime/PersonalizeRuntimeClient.swift index fbf9dc300f4..2875c345206 100644 --- a/Sources/Services/AWSPersonalizeRuntime/PersonalizeRuntimeClient.swift +++ b/Sources/Services/AWSPersonalizeRuntime/PersonalizeRuntimeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PersonalizeRuntimeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PersonalizeRuntimeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PersonalizeRuntimeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PersonalizeRuntimeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PersonalizeRuntimeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PersonalizeRuntimeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PersonalizeRuntimeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PersonalizeRuntimeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PersonalizeRuntimeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPersonalizeRuntime/PersonalizeRuntimeClientProtocol.swift b/Sources/Services/AWSPersonalizeRuntime/PersonalizeRuntimeClientProtocol.swift index 7484c8a3506..e4fc0df2db8 100644 --- a/Sources/Services/AWSPersonalizeRuntime/PersonalizeRuntimeClientProtocol.swift +++ b/Sources/Services/AWSPersonalizeRuntime/PersonalizeRuntimeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// diff --git a/Sources/Services/AWSPinpoint/PinpointClient.swift b/Sources/Services/AWSPinpoint/PinpointClient.swift index ef61421f66b..de2deb32d22 100644 --- a/Sources/Services/AWSPinpoint/PinpointClient.swift +++ b/Sources/Services/AWSPinpoint/PinpointClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PinpointClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PinpointClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PinpointClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PinpointClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PinpointClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PinpointClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PinpointClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PinpointClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PinpointClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPinpoint/PinpointClientProtocol.swift b/Sources/Services/AWSPinpoint/PinpointClientProtocol.swift index cfaa4049881..f7918d2dccc 100644 --- a/Sources/Services/AWSPinpoint/PinpointClientProtocol.swift +++ b/Sources/Services/AWSPinpoint/PinpointClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Doc Engage API - Amazon Pinpoint API diff --git a/Sources/Services/AWSPinpointEmail/PinpointEmailClient.swift b/Sources/Services/AWSPinpointEmail/PinpointEmailClient.swift index cf6ca8ebb40..5548bc5deda 100644 --- a/Sources/Services/AWSPinpointEmail/PinpointEmailClient.swift +++ b/Sources/Services/AWSPinpointEmail/PinpointEmailClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PinpointEmailClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PinpointEmailClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PinpointEmailClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PinpointEmailClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PinpointEmailClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PinpointEmailClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PinpointEmailClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PinpointEmailClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PinpointEmailClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPinpointEmail/PinpointEmailClientProtocol.swift b/Sources/Services/AWSPinpointEmail/PinpointEmailClientProtocol.swift index 8af87c29789..0c97c64deea 100644 --- a/Sources/Services/AWSPinpointEmail/PinpointEmailClientProtocol.swift +++ b/Sources/Services/AWSPinpointEmail/PinpointEmailClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Pinpoint Email Service Welcome to the Amazon Pinpoint Email API Reference. This guide provides information about the Amazon Pinpoint Email API (version 1.0), including supported operations, data types, parameters, and schemas. [Amazon Pinpoint](https://aws.amazon.com/pinpoint) is an AWS service that you can use to engage with your customers across multiple messaging channels. You can use Amazon Pinpoint to send email, SMS text messages, voice messages, and push notifications. The Amazon Pinpoint Email API provides programmatic access to options that are unique to the email channel and supplement the options provided by the Amazon Pinpoint API. If you're new to Amazon Pinpoint, you might find it helpful to also review the [Amazon Pinpoint Developer Guide](https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html). The Amazon Pinpoint Developer Guide provides tutorials, code samples, and procedures that demonstrate how to use Amazon Pinpoint features programmatically and how to integrate Amazon Pinpoint functionality into mobile apps and other types of applications. The guide also provides information about key topics such as Amazon Pinpoint integration with other AWS services and the limits that apply to using the service. The Amazon Pinpoint Email API is available in several AWS Regions and it provides an endpoint for each of these Regions. For a list of all the Regions and endpoints where the API is currently available, see [AWS Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#pinpoint_region) in the Amazon Web Services General Reference. To learn more about AWS Regions, see [Managing AWS Regions](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) in the Amazon Web Services General Reference. In each Region, AWS maintains multiple Availability Zones. These Availability Zones are physically isolated from each other, but are united by private, low-latency, high-throughput, and highly redundant network connections. These Availability Zones enable us to provide very high levels of availability and redundancy, while also minimizing latency. To learn more about the number of Availability Zones that are available in each Region, see [AWS Global Infrastructure](http://aws.amazon.com/about-aws/global-infrastructure/). diff --git a/Sources/Services/AWSPinpointSMSVoice/PinpointSMSVoiceClient.swift b/Sources/Services/AWSPinpointSMSVoice/PinpointSMSVoiceClient.swift index aed3a4df1c0..f86ce77c84d 100644 --- a/Sources/Services/AWSPinpointSMSVoice/PinpointSMSVoiceClient.swift +++ b/Sources/Services/AWSPinpointSMSVoice/PinpointSMSVoiceClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PinpointSMSVoiceClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PinpointSMSVoiceClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PinpointSMSVoiceClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PinpointSMSVoiceClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PinpointSMSVoiceClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PinpointSMSVoiceClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PinpointSMSVoiceClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PinpointSMSVoiceClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PinpointSMSVoiceClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPinpointSMSVoice/PinpointSMSVoiceClientProtocol.swift b/Sources/Services/AWSPinpointSMSVoice/PinpointSMSVoiceClientProtocol.swift index 815ea843a61..c921c535a98 100644 --- a/Sources/Services/AWSPinpointSMSVoice/PinpointSMSVoiceClientProtocol.swift +++ b/Sources/Services/AWSPinpointSMSVoice/PinpointSMSVoiceClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Pinpoint SMS and Voice Messaging public facing APIs diff --git a/Sources/Services/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift b/Sources/Services/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift index 7efbfaf29d9..e539fd79eb6 100644 --- a/Sources/Services/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift +++ b/Sources/Services/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PinpointSMSVoiceV2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PinpointSMSVoiceV2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PinpointSMSVoiceV2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PinpointSMSVoiceV2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PinpointSMSVoiceV2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PinpointSMSVoiceV2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PinpointSMSVoiceV2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PinpointSMSVoiceV2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PinpointSMSVoiceV2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2ClientProtocol.swift b/Sources/Services/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2ClientProtocol.swift index 498d8461319..3985bf51fcb 100644 --- a/Sources/Services/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2ClientProtocol.swift +++ b/Sources/Services/AWSPinpointSMSVoiceV2/PinpointSMSVoiceV2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the Amazon Pinpoint SMS and Voice, version 2 API Reference. This guide provides information about Amazon Pinpoint SMS and Voice, version 2 API resources, including supported HTTP methods, parameters, and schemas. Amazon Pinpoint is an Amazon Web Services service that you can use to engage with your recipients across multiple messaging channels. The Amazon Pinpoint SMS and Voice, version 2 API provides programmatic access to options that are unique to the SMS and voice channels and supplements the resources provided by the Amazon Pinpoint API. If you're new to Amazon Pinpoint, it's also helpful to review the [ Amazon Pinpoint Developer Guide](https://docs.aws.amazon.com/pinpoint/latest/developerguide/welcome.html). The Amazon Pinpoint Developer Guide provides tutorials, code samples, and procedures that demonstrate how to use Amazon Pinpoint features programmatically and how to integrate Amazon Pinpoint functionality into mobile apps and other types of applications. The guide also provides key information, such as Amazon Pinpoint integration with other Amazon Web Services services, and the quotas that apply to use of the service. diff --git a/Sources/Services/AWSPipes/PipesClient.swift b/Sources/Services/AWSPipes/PipesClient.swift index 4642d0118c4..ae46d960374 100644 --- a/Sources/Services/AWSPipes/PipesClient.swift +++ b/Sources/Services/AWSPipes/PipesClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PipesClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PipesClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PipesClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PipesClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PipesClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PipesClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PipesClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PipesClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PipesClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPipes/PipesClientProtocol.swift b/Sources/Services/AWSPipes/PipesClientProtocol.swift index 66a16b36380..10b14c61f7d 100644 --- a/Sources/Services/AWSPipes/PipesClientProtocol.swift +++ b/Sources/Services/AWSPipes/PipesClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EventBridge Pipes connects event sources to targets. Pipes reduces the need for specialized knowledge and integration code when developing event driven architectures. This helps ensures consistency across your company’s applications. With Pipes, the target can be any available EventBridge target. To set up a pipe, you select the event source, add optional event filtering, define optional enrichment, and select the target for the event data. diff --git a/Sources/Services/AWSPolly/PollyClient.swift b/Sources/Services/AWSPolly/PollyClient.swift index 597f9539590..eed3cb1b932 100644 --- a/Sources/Services/AWSPolly/PollyClient.swift +++ b/Sources/Services/AWSPolly/PollyClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PollyClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PollyClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PollyClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PollyClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PollyClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PollyClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PollyClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PollyClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PollyClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPolly/PollyClientProtocol.swift b/Sources/Services/AWSPolly/PollyClientProtocol.swift index cc5da73da2f..f4a3109987f 100644 --- a/Sources/Services/AWSPolly/PollyClientProtocol.swift +++ b/Sources/Services/AWSPolly/PollyClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Polly is a web service that makes it easy to synthesize speech from text. The Amazon Polly service provides API operations for synthesizing high-quality speech from plain text and Speech Synthesis Markup Language (SSML), along with managing pronunciations lexicons that enable you to get the best results for your application domain. diff --git a/Sources/Services/AWSPricing/PricingClient.swift b/Sources/Services/AWSPricing/PricingClient.swift index 985927f58d7..34e325ca58e 100644 --- a/Sources/Services/AWSPricing/PricingClient.swift +++ b/Sources/Services/AWSPricing/PricingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PricingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PricingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PricingClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PricingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PricingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PricingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PricingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PricingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PricingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPricing/PricingClientProtocol.swift b/Sources/Services/AWSPricing/PricingClientProtocol.swift index 98a504c48d7..3f0289935fc 100644 --- a/Sources/Services/AWSPricing/PricingClientProtocol.swift +++ b/Sources/Services/AWSPricing/PricingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Price List API is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The Amazon Web Services Price List uses standardized product attributes such as Location, Storage Class, and Operating System, and provides prices at the SKU level. You can use the Amazon Web Services Price List to build cost control and scenario planning tools, reconcile billing data, forecast future spend for budgeting purposes, and provide cost benefit analysis that compare your internal workloads with Amazon Web Services. Use GetServices without a service code to retrieve the service codes for all AWS services, then GetServices with a service code to retrieve the attribute names for that service. After you have the service code and attribute names, you can use GetAttributeValues to see what values are available for an attribute. With the service code and an attribute name and value, you can use GetProducts to find specific products that you're interested in, such as an AmazonEC2 instance, with a Provisioned IOPSvolumeType. Service Endpoint Amazon Web Services Price List service API provides the following two endpoints: diff --git a/Sources/Services/AWSPrivateNetworks/PrivateNetworksClient.swift b/Sources/Services/AWSPrivateNetworks/PrivateNetworksClient.swift index c8cda43dd2e..6421031f49b 100644 --- a/Sources/Services/AWSPrivateNetworks/PrivateNetworksClient.swift +++ b/Sources/Services/AWSPrivateNetworks/PrivateNetworksClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class PrivateNetworksClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await PrivateNetworksClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try PrivateNetworksClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class PrivateNetworksClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class PrivateNetworksClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class PrivateNetworksClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PrivateNetworksClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class PrivateNetworksClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("PrivateNetworksClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSPrivateNetworks/PrivateNetworksClientProtocol.swift b/Sources/Services/AWSPrivateNetworks/PrivateNetworksClientProtocol.swift index c96b3f08a33..ea768543599 100644 --- a/Sources/Services/AWSPrivateNetworks/PrivateNetworksClientProtocol.swift +++ b/Sources/Services/AWSPrivateNetworks/PrivateNetworksClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Private 5G is a managed service that makes it easy to deploy, operate, and scale your own private mobile network at your on-premises location. Private 5G provides the pre-configured hardware and software for mobile networks, helps automate setup, and scales capacity on demand to support additional devices as needed. diff --git a/Sources/Services/AWSProton/ProtonClient.swift b/Sources/Services/AWSProton/ProtonClient.swift index 027540652a8..224a86757b7 100644 --- a/Sources/Services/AWSProton/ProtonClient.swift +++ b/Sources/Services/AWSProton/ProtonClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ProtonClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ProtonClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ProtonClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ProtonClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ProtonClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ProtonClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ProtonClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ProtonClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ProtonClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSProton/ProtonClientProtocol.swift b/Sources/Services/AWSProton/ProtonClientProtocol.swift index 5a83e56c3bc..bfac4d7ce67 100644 --- a/Sources/Services/AWSProton/ProtonClientProtocol.swift +++ b/Sources/Services/AWSProton/ProtonClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the Proton Service API Reference. It provides descriptions, syntax and usage examples for each of the [actions](https://docs.aws.amazon.com/proton/latest/APIReference/API_Operations.html) and [data types](https://docs.aws.amazon.com/proton/latest/APIReference/API_Types.html) for the Proton service. The documentation for each action shows the Query API request parameters and the XML response. Alternatively, you can use the Amazon Web Services CLI to access an API. For more information, see the [Amazon Web Services Command Line Interface User Guide](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html). The Proton service is a two-pronged automation framework. Administrators create service templates to provide standardized infrastructure and deployment tooling for serverless and container based applications. Developers, in turn, select from the available service templates to automate their application or service deployments. Because administrators define the infrastructure and tooling that Proton deploys and manages, they need permissions to use all of the listed API operations. When developers select a specific infrastructure and tooling set, Proton deploys their applications. To monitor their applications that are running on Proton, developers need permissions to the service create, list, update and delete API operations and the service instance list and update API operations. To learn more about Proton, see the [Proton User Guide](https://docs.aws.amazon.com/proton/latest/userguide/Welcome.html). Ensuring Idempotency When you make a mutating API request, the request typically returns a result before the asynchronous workflows of the operation are complete. Operations might also time out or encounter other server issues before they're complete, even if the request already returned a result. This might make it difficult to determine whether the request succeeded. Moreover, you might need to retry the request multiple times to ensure that the operation completes successfully. However, if the original request and the subsequent retries are successful, the operation occurs multiple times. This means that you might create more resources than you intended. Idempotency ensures that an API request action completes no more than one time. With an idempotent request, if the original request action completes successfully, any subsequent retries complete successfully without performing any further actions. However, the result might contain updated information, such as the current creation status. The following lists of APIs are grouped according to methods that ensure idempotency. Idempotent create APIs with a client token The API actions in this list support idempotency with the use of a client token. The corresponding Amazon Web Services CLI commands also support idempotency using a client token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request using one of these actions, specify a client token in the request. We recommend that you don't reuse the same client token for other API requests. If you don’t provide a client token for these APIs, a default client token is automatically provided by SDKs. Given a request action that has succeeded: If you retry the request using the same client token and the same parameters, the retry succeeds without performing any further actions other than returning the original resource detail data in the response. If you retry the request using the same client token, but one or more of the parameters are different, the retry throws a ValidationException with an IdempotentParameterMismatch error. Client tokens expire eight hours after a request is made. If you retry the request with the expired token, a new resource is created. If the original resource is deleted and you retry the request, a new resource is created. Idempotent create APIs with a client token: diff --git a/Sources/Services/AWSQLDB/QLDBClient.swift b/Sources/Services/AWSQLDB/QLDBClient.swift index 1a9925b520e..54f3b092c9c 100644 --- a/Sources/Services/AWSQLDB/QLDBClient.swift +++ b/Sources/Services/AWSQLDB/QLDBClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class QLDBClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await QLDBClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try QLDBClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class QLDBClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class QLDBClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class QLDBClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("QLDBClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class QLDBClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("QLDBClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSQLDB/QLDBClientProtocol.swift b/Sources/Services/AWSQLDB/QLDBClientProtocol.swift index 5cd24ec14c2..48979e1ae62 100644 --- a/Sources/Services/AWSQLDB/QLDBClientProtocol.swift +++ b/Sources/Services/AWSQLDB/QLDBClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The control plane for Amazon QLDB diff --git a/Sources/Services/AWSQLDBSession/QLDBSessionClient.swift b/Sources/Services/AWSQLDBSession/QLDBSessionClient.swift index a18a9e576d4..3bb92e86c8e 100644 --- a/Sources/Services/AWSQLDBSession/QLDBSessionClient.swift +++ b/Sources/Services/AWSQLDBSession/QLDBSessionClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class QLDBSessionClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await QLDBSessionClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try QLDBSessionClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class QLDBSessionClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class QLDBSessionClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class QLDBSessionClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("QLDBSessionClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class QLDBSessionClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("QLDBSessionClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSQLDBSession/QLDBSessionClientProtocol.swift b/Sources/Services/AWSQLDBSession/QLDBSessionClientProtocol.swift index 2c9628d611e..118dc2a0d63 100644 --- a/Sources/Services/AWSQLDBSession/QLDBSessionClientProtocol.swift +++ b/Sources/Services/AWSQLDBSession/QLDBSessionClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The transactional data APIs for Amazon QLDB Instead of interacting directly with this API, we recommend using the QLDB driver or the QLDB shell to execute data transactions on a ledger. diff --git a/Sources/Services/AWSQuickSight/QuickSightClient.swift b/Sources/Services/AWSQuickSight/QuickSightClient.swift index 917d3948d77..da2041c6c25 100644 --- a/Sources/Services/AWSQuickSight/QuickSightClient.swift +++ b/Sources/Services/AWSQuickSight/QuickSightClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class QuickSightClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await QuickSightClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try QuickSightClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class QuickSightClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class QuickSightClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class QuickSightClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("QuickSightClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class QuickSightClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("QuickSightClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSQuickSight/QuickSightClientProtocol.swift b/Sources/Services/AWSQuickSight/QuickSightClientProtocol.swift index 78d94d89163..63e55952df3 100644 --- a/Sources/Services/AWSQuickSight/QuickSightClientProtocol.swift +++ b/Sources/Services/AWSQuickSight/QuickSightClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon QuickSight API Reference Amazon QuickSight is a fully managed, serverless business intelligence service for the Amazon Web Services Cloud that makes it easy to extend data and insights to every user in your organization. This API reference contains documentation for a programming interface that you can use to manage Amazon QuickSight. diff --git a/Sources/Services/AWSRAM/RAMClient.swift b/Sources/Services/AWSRAM/RAMClient.swift index 1f8bf3a034c..f8a4d56dc72 100644 --- a/Sources/Services/AWSRAM/RAMClient.swift +++ b/Sources/Services/AWSRAM/RAMClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class RAMClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RAMClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RAMClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class RAMClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class RAMClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class RAMClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RAMClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class RAMClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RAMClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRAM/RAMClientProtocol.swift b/Sources/Services/AWSRAM/RAMClientProtocol.swift index 50267a772db..3f62f0b4e7d 100644 --- a/Sources/Services/AWSRAM/RAMClientProtocol.swift +++ b/Sources/Services/AWSRAM/RAMClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the Resource Access Manager API Reference. This documentation provides descriptions and syntax for each of the actions and data types in RAM. RAM is a service that helps you securely share your Amazon Web Services resources across Amazon Web Services accounts. If you have multiple Amazon Web Services accounts, you can use RAM to share those resources with other accounts. If you use Organizations to manage your accounts, then you share your resources with your organization or organizational units (OUs). For supported resource types, you can also share resources with individual Identity and Access Management (IAM) roles an users. To learn more about RAM, see the following resources: diff --git a/Sources/Services/AWSRDS/RDSClient.swift b/Sources/Services/AWSRDS/RDSClient.swift index 90a944066de..5e712d1ff9a 100644 --- a/Sources/Services/AWSRDS/RDSClient.swift +++ b/Sources/Services/AWSRDS/RDSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class RDSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RDSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RDSClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class RDSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class RDSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class RDSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RDSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class RDSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RDSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRDS/RDSClientProtocol.swift b/Sources/Services/AWSRDS/RDSClientProtocol.swift index aec50168a89..c38d980440e 100644 --- a/Sources/Services/AWSRDS/RDSClientProtocol.swift +++ b/Sources/Services/AWSRDS/RDSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Relational Database Service Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizeable capacity for an industry-standard relational database and manages common database administration tasks, freeing up developers to focus on what makes their applications and businesses unique. Amazon RDS gives you access to the capabilities of a MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, Oracle, or Amazon Aurora database server. These capabilities mean that the code, applications, and tools you already use today with your existing databases work with Amazon RDS without modification. Amazon RDS automatically backs up your database and maintains the database software that powers your DB instance. Amazon RDS is flexible: you can scale your DB instance's compute resources and storage capacity to meet your application's demand. As with all Amazon Web Services, there are no up-front investments, and you pay only for the resources you use. This interface reference for Amazon RDS contains documentation for a programming or command line interface you can use to manage Amazon RDS. Amazon RDS is asynchronous, which means that some interfaces might require techniques such as polling or callback functions to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a command is applied immediately, on the next instance reboot, or during the maintenance window. The reference structure is as follows, and we list following some related topics from the user guide. Amazon RDS API Reference diff --git a/Sources/Services/AWSRDSData/RDSDataClient.swift b/Sources/Services/AWSRDSData/RDSDataClient.swift index 4d5fa59904f..767f4e525e9 100644 --- a/Sources/Services/AWSRDSData/RDSDataClient.swift +++ b/Sources/Services/AWSRDSData/RDSDataClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class RDSDataClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RDSDataClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RDSDataClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class RDSDataClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class RDSDataClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class RDSDataClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RDSDataClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class RDSDataClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RDSDataClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRDSData/RDSDataClientProtocol.swift b/Sources/Services/AWSRDSData/RDSDataClientProtocol.swift index cb32bec40d4..b4ceb64199a 100644 --- a/Sources/Services/AWSRDSData/RDSDataClientProtocol.swift +++ b/Sources/Services/AWSRDSData/RDSDataClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon RDS Data Service Amazon RDS provides an HTTP endpoint to run SQL statements on an Amazon Aurora Serverless v1 DB cluster. To run these statements, you work with the Data Service API. The Data Service API isn't supported on Amazon Aurora Serverless v2 DB clusters. For more information about the Data Service API, see [Using the Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the Amazon Aurora User Guide. diff --git a/Sources/Services/AWSRUM/RUMClient.swift b/Sources/Services/AWSRUM/RUMClient.swift index c8b9ab0e999..6b3c2cc6f7e 100644 --- a/Sources/Services/AWSRUM/RUMClient.swift +++ b/Sources/Services/AWSRUM/RUMClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class RUMClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RUMClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RUMClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class RUMClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class RUMClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class RUMClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RUMClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class RUMClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RUMClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRUM/RUMClientProtocol.swift b/Sources/Services/AWSRUM/RUMClientProtocol.swift index b9c54386742..a7b95474187 100644 --- a/Sources/Services/AWSRUM/RUMClientProtocol.swift +++ b/Sources/Services/AWSRUM/RUMClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// With Amazon CloudWatch RUM, you can perform real-user monitoring to collect client-side data about your web application performance from actual user sessions in real time. The data collected includes page load times, client-side errors, and user behavior. When you view this data, you can see it all aggregated together and also see breakdowns by the browsers and devices that your customers use. You can use the collected data to quickly identify and debug client-side performance issues. CloudWatch RUM helps you visualize anomalies in your application performance and find relevant debugging data such as error messages, stack traces, and user sessions. You can also use RUM to understand the range of end-user impact including the number of users, geolocations, and browsers used. diff --git a/Sources/Services/AWSRbin/RbinClient.swift b/Sources/Services/AWSRbin/RbinClient.swift index 4731a49edad..941cb320cc1 100644 --- a/Sources/Services/AWSRbin/RbinClient.swift +++ b/Sources/Services/AWSRbin/RbinClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class RbinClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RbinClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RbinClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class RbinClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class RbinClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class RbinClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RbinClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class RbinClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RbinClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRbin/RbinClientProtocol.swift b/Sources/Services/AWSRbin/RbinClientProtocol.swift index 8ac685ac1ed..7bfed6a0bd4 100644 --- a/Sources/Services/AWSRbin/RbinClientProtocol.swift +++ b/Sources/Services/AWSRbin/RbinClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the Recycle Bin API Reference. This documentation provides descriptions and syntax for each of the actions and data types in Recycle Bin. Recycle Bin is a resource recovery feature that enables you to restore accidentally deleted snapshots and EBS-backed AMIs. When using Recycle Bin, if your resources are deleted, they are retained in the Recycle Bin for a time period that you specify. You can restore a resource from the Recycle Bin at any time before its retention period expires. After you restore a resource from the Recycle Bin, the resource is removed from the Recycle Bin, and you can then use it in the same way you use any other resource of that type in your account. If the retention period expires and the resource is not restored, the resource is permanently deleted from the Recycle Bin and is no longer available for recovery. For more information about Recycle Bin, see [ Recycle Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshot-recycle-bin.html) in the Amazon Elastic Compute Cloud User Guide. diff --git a/Sources/Services/AWSRedshift/RedshiftClient.swift b/Sources/Services/AWSRedshift/RedshiftClient.swift index 05933146f88..134203192d1 100644 --- a/Sources/Services/AWSRedshift/RedshiftClient.swift +++ b/Sources/Services/AWSRedshift/RedshiftClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class RedshiftClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RedshiftClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RedshiftClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class RedshiftClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class RedshiftClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class RedshiftClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RedshiftClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class RedshiftClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RedshiftClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRedshift/RedshiftClientProtocol.swift b/Sources/Services/AWSRedshift/RedshiftClientProtocol.swift index f5d72b53483..48c93a95c72 100644 --- a/Sources/Services/AWSRedshift/RedshiftClientProtocol.swift +++ b/Sources/Services/AWSRedshift/RedshiftClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Redshift Overview This is an interface reference for Amazon Redshift. It contains documentation for one of the programming or command line interfaces you can use to manage Amazon Redshift clusters. Note that Amazon Redshift is asynchronous, which means that some interfaces may require techniques, such as polling or asynchronous callback handlers, to determine when a command has been applied. In this reference, the parameter descriptions indicate whether a change is applied immediately, on the next instance reboot, or during the next maintenance window. For a summary of the Amazon Redshift cluster management interfaces, go to [Using the Amazon Redshift Management Interfaces](https://docs.aws.amazon.com/redshift/latest/mgmt/using-aws-sdk.html). Amazon Redshift manages all the work of setting up, operating, and scaling a data warehouse: provisioning capacity, monitoring and backing up the cluster, and applying patches and upgrades to the Amazon Redshift engine. You can focus on using your data to acquire new insights for your business and customers. If you are a first-time user of Amazon Redshift, we recommend that you begin by reading the [Amazon Redshift Getting Started Guide](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html). If you are a database developer, the [Amazon Redshift Database Developer Guide](https://docs.aws.amazon.com/redshift/latest/dg/welcome.html) explains how to design, build, query, and maintain the databases that make up your data warehouse. diff --git a/Sources/Services/AWSRedshiftData/RedshiftDataClient.swift b/Sources/Services/AWSRedshiftData/RedshiftDataClient.swift index 406a8309020..002f09507a0 100644 --- a/Sources/Services/AWSRedshiftData/RedshiftDataClient.swift +++ b/Sources/Services/AWSRedshiftData/RedshiftDataClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class RedshiftDataClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RedshiftDataClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RedshiftDataClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class RedshiftDataClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class RedshiftDataClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class RedshiftDataClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RedshiftDataClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class RedshiftDataClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RedshiftDataClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRedshiftData/RedshiftDataClientProtocol.swift b/Sources/Services/AWSRedshiftData/RedshiftDataClientProtocol.swift index 283a315835a..79650e59b9a 100644 --- a/Sources/Services/AWSRedshiftData/RedshiftDataClientProtocol.swift +++ b/Sources/Services/AWSRedshiftData/RedshiftDataClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// You can use the Amazon Redshift Data API to run queries on Amazon Redshift tables. You can run SQL statements, which are committed if the statement succeeds. For more information about the Amazon Redshift Data API and CLI usage examples, see [Using the Amazon Redshift Data API](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html) in the Amazon Redshift Management Guide. diff --git a/Sources/Services/AWSRedshiftServerless/RedshiftServerlessClient.swift b/Sources/Services/AWSRedshiftServerless/RedshiftServerlessClient.swift index dec65d99b29..fe2073633be 100644 --- a/Sources/Services/AWSRedshiftServerless/RedshiftServerlessClient.swift +++ b/Sources/Services/AWSRedshiftServerless/RedshiftServerlessClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class RedshiftServerlessClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RedshiftServerlessClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RedshiftServerlessClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class RedshiftServerlessClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class RedshiftServerlessClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class RedshiftServerlessClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RedshiftServerlessClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class RedshiftServerlessClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RedshiftServerlessClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRedshiftServerless/RedshiftServerlessClientProtocol.swift b/Sources/Services/AWSRedshiftServerless/RedshiftServerlessClientProtocol.swift index d8a3513a523..39960a96906 100644 --- a/Sources/Services/AWSRedshiftServerless/RedshiftServerlessClientProtocol.swift +++ b/Sources/Services/AWSRedshiftServerless/RedshiftServerlessClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is an interface reference for Amazon Redshift Serverless. It contains documentation for one of the programming or command line interfaces you can use to manage Amazon Redshift Serverless. Amazon Redshift Serverless automatically provisions data warehouse capacity and intelligently scales the underlying resources based on workload demands. Amazon Redshift Serverless adjusts capacity in seconds to deliver consistently high performance and simplified operations for even the most demanding and volatile workloads. Amazon Redshift Serverless lets you focus on using your data to acquire new insights for your business and customers. To learn more about Amazon Redshift Serverless, see [What is Amazon Redshift Serverless](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html). diff --git a/Sources/Services/AWSRekognition/RekognitionClient.swift b/Sources/Services/AWSRekognition/RekognitionClient.swift index 6af4d09635c..8b6a624280a 100644 --- a/Sources/Services/AWSRekognition/RekognitionClient.swift +++ b/Sources/Services/AWSRekognition/RekognitionClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class RekognitionClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RekognitionClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RekognitionClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class RekognitionClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class RekognitionClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class RekognitionClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RekognitionClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class RekognitionClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RekognitionClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRekognition/RekognitionClientProtocol.swift b/Sources/Services/AWSRekognition/RekognitionClientProtocol.swift index ab70daab6fc..cbbd5da2612 100644 --- a/Sources/Services/AWSRekognition/RekognitionClientProtocol.swift +++ b/Sources/Services/AWSRekognition/RekognitionClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is the API Reference for [Amazon Rekognition Image](https://docs.aws.amazon.com/rekognition/latest/dg/images.html), [Amazon Rekognition Custom Labels](https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/what-is.html), [Amazon Rekognition Stored Video](https://docs.aws.amazon.com/rekognition/latest/dg/video.html), [Amazon Rekognition Streaming Video](https://docs.aws.amazon.com/rekognition/latest/dg/streaming-video.html). It provides descriptions of actions, data types, common parameters, and common errors. Amazon Rekognition Image diff --git a/Sources/Services/AWSResiliencehub/ResiliencehubClient.swift b/Sources/Services/AWSResiliencehub/ResiliencehubClient.swift index 1583a16447c..76940318cb3 100644 --- a/Sources/Services/AWSResiliencehub/ResiliencehubClient.swift +++ b/Sources/Services/AWSResiliencehub/ResiliencehubClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ResiliencehubClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ResiliencehubClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ResiliencehubClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ResiliencehubClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ResiliencehubClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ResiliencehubClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ResiliencehubClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ResiliencehubClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ResiliencehubClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSResiliencehub/ResiliencehubClientProtocol.swift b/Sources/Services/AWSResiliencehub/ResiliencehubClientProtocol.swift index bf800eeee3d..6d980b625aa 100644 --- a/Sources/Services/AWSResiliencehub/ResiliencehubClientProtocol.swift +++ b/Sources/Services/AWSResiliencehub/ResiliencehubClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Resilience Hub helps you proactively prepare and protect your Amazon Web Services applications from disruptions. It offers continual resiliency assessment and validation that integrates into your software development lifecycle. This enables you to uncover resiliency weaknesses, ensure recovery time objective (RTO) and recovery point objective (RPO) targets for your applications are met, and resolve issues before they are released into production. diff --git a/Sources/Services/AWSResourceExplorer2/ResourceExplorer2Client.swift b/Sources/Services/AWSResourceExplorer2/ResourceExplorer2Client.swift index 7214fddf5a1..578a208024d 100644 --- a/Sources/Services/AWSResourceExplorer2/ResourceExplorer2Client.swift +++ b/Sources/Services/AWSResourceExplorer2/ResourceExplorer2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ResourceExplorer2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ResourceExplorer2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ResourceExplorer2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ResourceExplorer2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ResourceExplorer2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ResourceExplorer2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ResourceExplorer2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ResourceExplorer2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ResourceExplorer2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSResourceExplorer2/ResourceExplorer2ClientProtocol.swift b/Sources/Services/AWSResourceExplorer2/ResourceExplorer2ClientProtocol.swift index f8bb875c2dc..24299c610b0 100644 --- a/Sources/Services/AWSResourceExplorer2/ResourceExplorer2ClientProtocol.swift +++ b/Sources/Services/AWSResourceExplorer2/ResourceExplorer2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Resource Explorer is a resource search and discovery service. By using Resource Explorer, you can explore your resources using an internet search engine-like experience. Examples of resources include Amazon Relational Database Service (Amazon RDS) instances, Amazon Simple Storage Service (Amazon S3) buckets, or Amazon DynamoDB tables. You can search for your resources using resource metadata like names, tags, and IDs. Resource Explorer can search across all of the Amazon Web Services Regions in your account in which you turn the service on, to simplify your cross-Region workloads. Resource Explorer scans the resources in each of the Amazon Web Services Regions in your Amazon Web Services account in which you turn on Resource Explorer. Resource Explorer [creates and maintains an index](https://docs.aws.amazon.com/resource-explorer/latest/userguide/getting-started-terms-and-concepts.html#term-index) in each Region, with the details of that Region's resources. You can [search across all of the indexed Regions in your account](https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region.html) by designating one of your Amazon Web Services Regions to contain the aggregator index for the account. When you [promote a local index in a Region to become the aggregator index for the account](https://docs.aws.amazon.com/resource-explorer/latest/userguide/manage-aggregator-region-turn-on.html), Resource Explorer automatically replicates the index information from all local indexes in the other Regions to the aggregator index. Therefore, the Region with the aggregator index has a copy of all resource information for all Regions in the account where you turned on Resource Explorer. As a result, views in the aggregator index Region include resources from all of the indexed Regions in your account. For more information about Amazon Web Services Resource Explorer, including how to enable and configure the service, see the [Amazon Web Services Resource Explorer User Guide](https://docs.aws.amazon.com/resource-explorer/latest/userguide/). diff --git a/Sources/Services/AWSResourceGroups/ResourceGroupsClient.swift b/Sources/Services/AWSResourceGroups/ResourceGroupsClient.swift index c1bc50c5681..c6bd9d58d3d 100644 --- a/Sources/Services/AWSResourceGroups/ResourceGroupsClient.swift +++ b/Sources/Services/AWSResourceGroups/ResourceGroupsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ResourceGroupsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ResourceGroupsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ResourceGroupsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ResourceGroupsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ResourceGroupsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ResourceGroupsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ResourceGroupsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ResourceGroupsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ResourceGroupsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSResourceGroups/ResourceGroupsClientProtocol.swift b/Sources/Services/AWSResourceGroups/ResourceGroupsClientProtocol.swift index d3332a89066..d9abe818834 100644 --- a/Sources/Services/AWSResourceGroups/ResourceGroupsClientProtocol.swift +++ b/Sources/Services/AWSResourceGroups/ResourceGroupsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Resource Groups lets you organize Amazon Web Services resources such as Amazon Elastic Compute Cloud instances, Amazon Relational Database Service databases, and Amazon Simple Storage Service buckets into groups using criteria that you define as tags. A resource group is a collection of resources that match the resource types specified in a query, and share one or more tags or portions of tags. You can create a group of resources based on their roles in your cloud infrastructure, lifecycle stages, regions, application layers, or virtually any criteria. Resource Groups enable you to automate management tasks, such as those in Amazon Web Services Systems Manager Automation documents, on tag-related resources in Amazon Web Services Systems Manager. Groups of tagged resources also let you quickly view a custom console in Amazon Web Services Systems Manager that shows Config compliance and other monitoring data about member resources. To create a resource group, build a resource query, and specify tags that identify the criteria that members of the group have in common. Tags are key-value pairs. For more information about Resource Groups, see the [Resource Groups User Guide](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html). Resource Groups uses a REST-compliant API that you can use to perform the following types of operations. diff --git a/Sources/Services/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.swift b/Sources/Services/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.swift index 00f41ce4d1d..93967653333 100644 --- a/Sources/Services/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.swift +++ b/Sources/Services/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ResourceGroupsTaggingAPIClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ResourceGroupsTaggingAPIClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ResourceGroupsTaggingAPIClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ResourceGroupsTaggingAPIClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ResourceGroupsTaggingAPIClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ResourceGroupsTaggingAPIClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ResourceGroupsTaggingAPIClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ResourceGroupsTaggingAPIClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ResourceGroupsTaggingAPIClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClientProtocol.swift b/Sources/Services/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClientProtocol.swift index f88090b1975..f5f2e4d4613 100644 --- a/Sources/Services/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClientProtocol.swift +++ b/Sources/Services/AWSResourceGroupsTaggingAPI/ResourceGroupsTaggingAPIClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Resource Groups Tagging API diff --git a/Sources/Services/AWSRoboMaker/RoboMakerClient.swift b/Sources/Services/AWSRoboMaker/RoboMakerClient.swift index 3e0b81b1fb2..69d2952314c 100644 --- a/Sources/Services/AWSRoboMaker/RoboMakerClient.swift +++ b/Sources/Services/AWSRoboMaker/RoboMakerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class RoboMakerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RoboMakerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RoboMakerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class RoboMakerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class RoboMakerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class RoboMakerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RoboMakerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class RoboMakerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RoboMakerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRoboMaker/RoboMakerClientProtocol.swift b/Sources/Services/AWSRoboMaker/RoboMakerClientProtocol.swift index c0057e93611..e8f99106ede 100644 --- a/Sources/Services/AWSRoboMaker/RoboMakerClientProtocol.swift +++ b/Sources/Services/AWSRoboMaker/RoboMakerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This section provides documentation for the AWS RoboMaker API operations. diff --git a/Sources/Services/AWSRolesAnywhere/RolesAnywhereClient.swift b/Sources/Services/AWSRolesAnywhere/RolesAnywhereClient.swift index c2bf9991a37..2defe9dd769 100644 --- a/Sources/Services/AWSRolesAnywhere/RolesAnywhereClient.swift +++ b/Sources/Services/AWSRolesAnywhere/RolesAnywhereClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class RolesAnywhereClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await RolesAnywhereClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try RolesAnywhereClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class RolesAnywhereClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class RolesAnywhereClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class RolesAnywhereClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RolesAnywhereClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class RolesAnywhereClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("RolesAnywhereClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRolesAnywhere/RolesAnywhereClientProtocol.swift b/Sources/Services/AWSRolesAnywhere/RolesAnywhereClientProtocol.swift index 9a6c5422419..cc8dfb83686 100644 --- a/Sources/Services/AWSRolesAnywhere/RolesAnywhereClientProtocol.swift +++ b/Sources/Services/AWSRolesAnywhere/RolesAnywhereClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Identity and Access Management Roles Anywhere provides a secure way for your workloads such as servers, containers, and applications running outside of AWS to obtain Temporary AWS credentials. Your workloads can use the same IAM policies and roles that you have configured with native AWS applications to access AWS resources. Using IAM Roles Anywhere will eliminate the need to manage long term credentials for workloads running outside of AWS. To use IAM Roles Anywhere customer workloads will need to use X.509 certificates issued by their Certificate Authority (CA) . The Certificate Authority (CA) needs to be registered with IAM Roles Anywhere as a trust anchor to establish trust between customer PKI and IAM Roles Anywhere. Customers who do not manage their own PKI system can use AWS Certificate Manager Private Certificate Authority (ACM PCA) to create a Certificate Authority and use that to establish trust with IAM Roles Anywhere This guide describes the IAM rolesanywhere operations that you can call programmatically. For general information about IAM Roles Anywhere see [https://docs.aws.amazon.com/](https://docs.aws.amazon.com/) diff --git a/Sources/Services/AWSRoute53/Route53Client.swift b/Sources/Services/AWSRoute53/Route53Client.swift index e5b7fc6162c..9f8c87c623b 100644 --- a/Sources/Services/AWSRoute53/Route53Client.swift +++ b/Sources/Services/AWSRoute53/Route53Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -28,8 +28,8 @@ public class Route53Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await Route53ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try Route53ClientConfiguration(region: region) self.init(config: config) } @@ -48,7 +48,7 @@ public class Route53Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -59,8 +59,9 @@ public class Route53Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -71,11 +72,9 @@ public class Route53Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -84,21 +83,84 @@ public class Route53Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRoute53/Route53ClientProtocol.swift b/Sources/Services/AWSRoute53/Route53ClientProtocol.swift index f8b13163fca..449bd406ee1 100644 --- a/Sources/Services/AWSRoute53/Route53ClientProtocol.swift +++ b/Sources/Services/AWSRoute53/Route53ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service. You can use Route 53 to: diff --git a/Sources/Services/AWSRoute53Domains/Route53DomainsClient.swift b/Sources/Services/AWSRoute53Domains/Route53DomainsClient.swift index 7ec066f3a6d..1af620f2ef3 100644 --- a/Sources/Services/AWSRoute53Domains/Route53DomainsClient.swift +++ b/Sources/Services/AWSRoute53Domains/Route53DomainsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class Route53DomainsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await Route53DomainsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try Route53DomainsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class Route53DomainsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class Route53DomainsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class Route53DomainsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53DomainsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class Route53DomainsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53DomainsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRoute53Domains/Route53DomainsClientProtocol.swift b/Sources/Services/AWSRoute53Domains/Route53DomainsClientProtocol.swift index 1b93938f04e..4c56159c0c2 100644 --- a/Sources/Services/AWSRoute53Domains/Route53DomainsClientProtocol.swift +++ b/Sources/Services/AWSRoute53Domains/Route53DomainsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Route 53 API actions let you register domain names and perform related operations. diff --git a/Sources/Services/AWSRoute53RecoveryCluster/Route53RecoveryClusterClient.swift b/Sources/Services/AWSRoute53RecoveryCluster/Route53RecoveryClusterClient.swift index fd46143c652..9a41c60d28c 100644 --- a/Sources/Services/AWSRoute53RecoveryCluster/Route53RecoveryClusterClient.swift +++ b/Sources/Services/AWSRoute53RecoveryCluster/Route53RecoveryClusterClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class Route53RecoveryClusterClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await Route53RecoveryClusterClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try Route53RecoveryClusterClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class Route53RecoveryClusterClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class Route53RecoveryClusterClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class Route53RecoveryClusterClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53RecoveryClusterClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class Route53RecoveryClusterClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53RecoveryClusterClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRoute53RecoveryCluster/Route53RecoveryClusterClientProtocol.swift b/Sources/Services/AWSRoute53RecoveryCluster/Route53RecoveryClusterClientProtocol.swift index 02e3ba8e024..eef28ffae67 100644 --- a/Sources/Services/AWSRoute53RecoveryCluster/Route53RecoveryClusterClientProtocol.swift +++ b/Sources/Services/AWSRoute53RecoveryCluster/Route53RecoveryClusterClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the Routing Control (Recovery Cluster) API Reference Guide for Amazon Route 53 Application Recovery Controller. With Route 53 ARC, you can use routing control with extreme reliability to recover applications by rerouting traffic across Availability Zones or Amazon Web Services Regions. Routing controls are simple on/off switches hosted on a highly available cluster in Route 53 ARC. A cluster provides a set of five redundant Regional endpoints against which you can run API calls to get or update the state of routing controls. To implement failover, you set one routing control On and another one Off, to reroute traffic from one Availability Zone or Amazon Web Services Region to another. Be aware that you must specify a Regional endpoint for a cluster when you work with API cluster operations to get or update routing control states in Route 53 ARC. In addition, you must specify the US West (Oregon) Region for Route 53 ARC API calls. For example, use the parameter --region us-west-2 with AWS CLI commands. For more information, see [ Get and update routing control states using the API](https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.update.api.html) in the Amazon Route 53 Application Recovery Controller Developer Guide. This API guide includes information about the API operations for how to get and update routing control states in Route 53 ARC. To work with routing control in Route 53 ARC, you must first create the required components (clusters, control panels, and routing controls) using the recovery cluster configuration API. For more information about working with routing control in Route 53 ARC, see the following: diff --git a/Sources/Services/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClient.swift b/Sources/Services/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClient.swift index 83a3a4b2fdc..9d04a2103c1 100644 --- a/Sources/Services/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClient.swift +++ b/Sources/Services/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class Route53RecoveryControlConfigClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await Route53RecoveryControlConfigClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try Route53RecoveryControlConfigClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class Route53RecoveryControlConfigClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class Route53RecoveryControlConfigClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class Route53RecoveryControlConfigClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53RecoveryControlConfigClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class Route53RecoveryControlConfigClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53RecoveryControlConfigClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClientProtocol.swift b/Sources/Services/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClientProtocol.swift index 3e5a9c01cdf..a2551735bcd 100644 --- a/Sources/Services/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClientProtocol.swift +++ b/Sources/Services/AWSRoute53RecoveryControlConfig/Route53RecoveryControlConfigClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Recovery Control Configuration API Reference for Amazon Route 53 Application Recovery Controller diff --git a/Sources/Services/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClient.swift b/Sources/Services/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClient.swift index e7db170a5a6..44365ff1f21 100644 --- a/Sources/Services/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClient.swift +++ b/Sources/Services/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class Route53RecoveryReadinessClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await Route53RecoveryReadinessClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try Route53RecoveryReadinessClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class Route53RecoveryReadinessClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class Route53RecoveryReadinessClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class Route53RecoveryReadinessClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53RecoveryReadinessClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class Route53RecoveryReadinessClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53RecoveryReadinessClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClientProtocol.swift b/Sources/Services/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClientProtocol.swift index bfbdaca220d..981d91cbb43 100644 --- a/Sources/Services/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClientProtocol.swift +++ b/Sources/Services/AWSRoute53RecoveryReadiness/Route53RecoveryReadinessClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Recovery readiness diff --git a/Sources/Services/AWSRoute53Resolver/Route53ResolverClient.swift b/Sources/Services/AWSRoute53Resolver/Route53ResolverClient.swift index b583fb5a564..ec2c715172c 100644 --- a/Sources/Services/AWSRoute53Resolver/Route53ResolverClient.swift +++ b/Sources/Services/AWSRoute53Resolver/Route53ResolverClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class Route53ResolverClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await Route53ResolverClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try Route53ResolverClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class Route53ResolverClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class Route53ResolverClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class Route53ResolverClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53ResolverClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class Route53ResolverClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("Route53ResolverClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSRoute53Resolver/Route53ResolverClientProtocol.swift b/Sources/Services/AWSRoute53Resolver/Route53ResolverClientProtocol.swift index 01e2a7d41c1..f653dc29a1d 100644 --- a/Sources/Services/AWSRoute53Resolver/Route53ResolverClientProtocol.swift +++ b/Sources/Services/AWSRoute53Resolver/Route53ResolverClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// When you create a VPC using Amazon VPC, you automatically get DNS resolution within the VPC from Route 53 Resolver. By default, Resolver answers DNS queries for VPC domain names such as domain names for EC2 instances or Elastic Load Balancing load balancers. Resolver performs recursive lookups against public name servers for all other domain names. You can also configure DNS resolution between your VPC and your network over a Direct Connect or VPN connection: Forward DNS queries from resolvers on your network to Route 53 Resolver DNS resolvers on your network can forward DNS queries to Resolver in a specified VPC. This allows your DNS resolvers to easily resolve domain names for Amazon Web Services resources such as EC2 instances or records in a Route 53 private hosted zone. For more information, see [How DNS Resolvers on Your Network Forward DNS Queries to Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-network-to-vpc) in the Amazon Route 53 Developer Guide. Conditionally forward queries from a VPC to resolvers on your network You can configure Resolver to forward queries that it receives from EC2 instances in your VPCs to DNS resolvers on your network. To forward selected queries, you create Resolver rules that specify the domain names for the DNS queries that you want to forward (such as example.com), and the IP addresses of the DNS resolvers on your network that you want to forward the queries to. If a query matches multiple rules (example.com, acme.example.com), Resolver chooses the rule with the most specific match (acme.example.com) and forwards the query to the IP addresses that you specified in that rule. For more information, see [How Route 53 Resolver Forwards DNS Queries from Your VPCs to Your Network](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-vpc-to-network) in the Amazon Route 53 Developer Guide. Like Amazon VPC, Resolver is Regional. In each Region where you have VPCs, you can choose whether to forward queries from your VPCs to your network (outbound queries), from your network to your VPCs (inbound queries), or both. diff --git a/Sources/Services/AWSS3/S3Client.swift b/Sources/Services/AWSS3/S3Client.swift index a85965a72d4..b7e3c6ac08c 100644 --- a/Sources/Services/AWSS3/S3Client.swift +++ b/Sources/Services/AWSS3/S3Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -28,8 +28,8 @@ public class S3Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await S3ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try S3ClientConfiguration(region: region) self.init(config: config) } @@ -48,7 +48,7 @@ public class S3Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -64,9 +64,10 @@ public class S3Client { public var useArnRegion: Swift.Bool? public var useGlobalEndpoint: Swift.Bool? - public init( + /// Creates a configuration asynchronously + public convenience init( accelerate: Swift.Bool? = nil, - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, disableMultiRegionAccessPoints: Swift.Bool? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, @@ -81,11 +82,9 @@ public class S3Client { useFIPS: Swift.Bool? = nil, useGlobalEndpoint: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("S3Client") + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() - - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -94,24 +93,107 @@ public class S3Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + accelerate: accelerate, + credentialsProvider: resolvedCredentialsProvider, + disableMultiRegionAccessPoints: disableMultiRegionAccessPoints, + endpoint: endpoint, + endpointResolver: endpointResolver, + forcePathStyle: forcePathStyle, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useArnRegion: useArnRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + useGlobalEndpoint: useGlobalEndpoint, + runtimeConfig: runtimeConfig + ) + } + + public convenience init( + region: Swift.String, + accelerate: Swift.Bool? = nil, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + disableMultiRegionAccessPoints: Swift.Bool? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + forcePathStyle: Swift.Bool? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useArnRegion: Swift.Bool? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil, + useGlobalEndpoint: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + accelerate: accelerate, + credentialsProvider: resolvedCredentialsProvider, + disableMultiRegionAccessPoints: disableMultiRegionAccessPoints, + endpoint: endpoint, + endpointResolver: endpointResolver, + forcePathStyle: forcePathStyle, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useArnRegion: useArnRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + useGlobalEndpoint: useGlobalEndpoint, + runtimeConfig: runtimeConfig ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + accelerate: Swift.Bool?, + credentialsProvider: AWSClientRuntime.CredentialsProviding, + disableMultiRegionAccessPoints: Swift.Bool?, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + forcePathStyle: Swift.Bool?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useArnRegion: Swift.Bool?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + useGlobalEndpoint: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("S3Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() self.accelerate = accelerate - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.disableMultiRegionAccessPoints = disableMultiRegionAccessPoints self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.forcePathStyle = forcePathStyle self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useArnRegion = useArnRegion self.useDualStack = useDualStack diff --git a/Sources/Services/AWSS3/S3ClientProtocol.swift b/Sources/Services/AWSS3/S3ClientProtocol.swift index dfbf48ae51e..aa610c493fb 100644 --- a/Sources/Services/AWSS3/S3ClientProtocol.swift +++ b/Sources/Services/AWSS3/S3ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// diff --git a/Sources/Services/AWSS3Control/S3ControlClient.swift b/Sources/Services/AWSS3Control/S3ControlClient.swift index ffb3d5f4609..e35db004c26 100644 --- a/Sources/Services/AWSS3Control/S3ControlClient.swift +++ b/Sources/Services/AWSS3Control/S3ControlClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -28,8 +28,8 @@ public class S3ControlClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await S3ControlClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try S3ControlClientConfiguration(region: region) self.init(config: config) } @@ -48,7 +48,7 @@ public class S3ControlClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -60,8 +60,9 @@ public class S3ControlClient { public var endpointResolver: EndpointResolver public var useArnRegion: Swift.Bool? - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -73,11 +74,9 @@ public class S3ControlClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("S3ControlClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -86,21 +85,88 @@ public class S3ControlClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useArnRegion: useArnRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useArnRegion: Swift.Bool? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useArnRegion: useArnRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useArnRegion: Swift.Bool?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("S3ControlClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useArnRegion = useArnRegion self.useDualStack = useDualStack diff --git a/Sources/Services/AWSS3Control/S3ControlClientProtocol.swift b/Sources/Services/AWSS3Control/S3ControlClientProtocol.swift index 28930a438e2..cc716bc6045 100644 --- a/Sources/Services/AWSS3Control/S3ControlClientProtocol.swift +++ b/Sources/Services/AWSS3Control/S3ControlClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services S3 Control provides access to Amazon S3 control plane actions. diff --git a/Sources/Services/AWSS3Outposts/S3OutpostsClient.swift b/Sources/Services/AWSS3Outposts/S3OutpostsClient.swift index 82a8d229997..e273d26bcc8 100644 --- a/Sources/Services/AWSS3Outposts/S3OutpostsClient.swift +++ b/Sources/Services/AWSS3Outposts/S3OutpostsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class S3OutpostsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await S3OutpostsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try S3OutpostsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class S3OutpostsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class S3OutpostsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class S3OutpostsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("S3OutpostsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class S3OutpostsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("S3OutpostsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSS3Outposts/S3OutpostsClientProtocol.swift b/Sources/Services/AWSS3Outposts/S3OutpostsClientProtocol.swift index 3e8dd8db8fe..57a2c8ff9ee 100644 --- a/Sources/Services/AWSS3Outposts/S3OutpostsClientProtocol.swift +++ b/Sources/Services/AWSS3Outposts/S3OutpostsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon S3 on Outposts provides access to S3 on Outposts operations. diff --git a/Sources/Services/AWSSES/SESClient.swift b/Sources/Services/AWSSES/SESClient.swift index 61a0b98a43c..9545d1e8438 100644 --- a/Sources/Services/AWSSES/SESClient.swift +++ b/Sources/Services/AWSSES/SESClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class SESClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SESClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SESClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class SESClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class SESClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class SESClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SESClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class SESClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SESClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSES/SESClientProtocol.swift b/Sources/Services/AWSSES/SESClientProtocol.swift index b316dc1ee23..12b5b6e50c6 100644 --- a/Sources/Services/AWSSES/SESClientProtocol.swift +++ b/Sources/Services/AWSSES/SESClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Simple Email Service This document contains reference information for the [Amazon Simple Email Service](https://aws.amazon.com/ses/) (Amazon SES) API, version 2010-12-01. This document is best used in conjunction with the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html). For a list of Amazon SES endpoints to use in service requests, see [Regions and Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/regions.html) in the [Amazon SES Developer Guide](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html). diff --git a/Sources/Services/AWSSESv2/SESv2Client.swift b/Sources/Services/AWSSESv2/SESv2Client.swift index e314fc6d601..75aac8eab4d 100644 --- a/Sources/Services/AWSSESv2/SESv2Client.swift +++ b/Sources/Services/AWSSESv2/SESv2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SESv2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SESv2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SESv2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SESv2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SESv2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SESv2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SESv2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SESv2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SESv2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSESv2/SESv2ClientProtocol.swift b/Sources/Services/AWSSESv2/SESv2ClientProtocol.swift index deb121a5f29..63d7da5446b 100644 --- a/Sources/Services/AWSSESv2/SESv2ClientProtocol.swift +++ b/Sources/Services/AWSSESv2/SESv2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon SES API v2 [Amazon SES](http://aws.amazon.com/ses) is an Amazon Web Services service that you can use to send email messages to your customers. If you're new to Amazon SES API v2, you might find it helpful to review the [Amazon Simple Email Service Developer Guide](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/). The Amazon SES Developer Guide provides information and code samples that demonstrate how to use Amazon SES API v2 features programmatically. diff --git a/Sources/Services/AWSSFN/SFNClient.swift b/Sources/Services/AWSSFN/SFNClient.swift index b4dbe09fc7b..7145207018d 100644 --- a/Sources/Services/AWSSFN/SFNClient.swift +++ b/Sources/Services/AWSSFN/SFNClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SFNClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SFNClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SFNClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SFNClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SFNClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SFNClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SFNClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SFNClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SFNClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSFN/SFNClientProtocol.swift b/Sources/Services/AWSSFN/SFNClientProtocol.swift index b5d5dabcd21..bc0150ad13f 100644 --- a/Sources/Services/AWSSFN/SFNClientProtocol.swift +++ b/Sources/Services/AWSSFN/SFNClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Step Functions Step Functions is a service that lets you coordinate the components of distributed applications and microservices using visual workflows. You can use Step Functions to build applications from individual components, each of which performs a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a console that helps visualize the components of your application as a series of steps. Step Functions automatically triggers and tracks each step, and retries steps when there are errors, so your application executes predictably and in the right order every time. Step Functions logs the state of each step, so you can quickly diagnose and debug any issues. Step Functions manages operations and underlying infrastructure to ensure your application is available at any scale. You can run tasks on Amazon Web Services, your own servers, or any system that has access to Amazon Web Services. You can access and use Step Functions using the console, the Amazon Web Services SDKs, or an HTTP API. For more information about Step Functions, see the [Step Functions Developer Guide](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) . diff --git a/Sources/Services/AWSSMS/SMSClient.swift b/Sources/Services/AWSSMS/SMSClient.swift index d604ea3f3d1..4838c4c2d91 100644 --- a/Sources/Services/AWSSMS/SMSClient.swift +++ b/Sources/Services/AWSSMS/SMSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SMSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SMSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SMSClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SMSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SMSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SMSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SMSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SMSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SMSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSMS/SMSClientProtocol.swift b/Sources/Services/AWSSMS/SMSClientProtocol.swift index bd21bd3e2d4..90e2311d448 100644 --- a/Sources/Services/AWSSMS/SMSClientProtocol.swift +++ b/Sources/Services/AWSSMS/SMSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Product update We recommend [Amazon Web Services Application Migration Service](http://aws.amazon.com/application-migration-service) (Amazon Web Services MGN) as the primary migration service for lift-and-shift migrations. If Amazon Web Services MGN is unavailable in a specific Amazon Web Services Region, you can use the Server Migration Service APIs through March 2023. Server Migration Service (Server Migration Service) makes it easier and faster for you to migrate your on-premises workloads to Amazon Web Services. To learn more about Server Migration Service, see the following resources: diff --git a/Sources/Services/AWSSNS/SNSClient.swift b/Sources/Services/AWSSNS/SNSClient.swift index bc5f00ec102..f74c6600958 100644 --- a/Sources/Services/AWSSNS/SNSClient.swift +++ b/Sources/Services/AWSSNS/SNSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class SNSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SNSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SNSClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class SNSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class SNSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class SNSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SNSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class SNSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SNSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSNS/SNSClientProtocol.swift b/Sources/Services/AWSSNS/SNSClientProtocol.swift index c14480552d0..481c1893be6 100644 --- a/Sources/Services/AWSSNS/SNSClientProtocol.swift +++ b/Sources/Services/AWSSNS/SNSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Simple Notification Service Amazon Simple Notification Service (Amazon SNS) is a web service that enables you to build distributed web-enabled applications. Applications can use Amazon SNS to easily push real-time notification messages to interested subscribers over multiple delivery protocols. For more information about this product see the [Amazon SNS product page](http://aws.amazon.com/sns/). For detailed information about Amazon SNS features and their associated API calls, see the [Amazon SNS Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/). For information on the permissions you need to use this API, see [Identity and access management in Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-authentication-and-access-control.html) in the Amazon SNS Developer Guide. We also provide SDKs that enable you to access Amazon SNS from your preferred programming language. The SDKs contain functionality that automatically takes care of tasks such as: cryptographically signing your service requests, retrying requests, and handling error responses. For a list of available SDKs, go to [Tools for Amazon Web Services](http://aws.amazon.com/tools/). diff --git a/Sources/Services/AWSSQS/SQSClient.swift b/Sources/Services/AWSSQS/SQSClient.swift index 23abf75adee..6b7c175ebe9 100644 --- a/Sources/Services/AWSSQS/SQSClient.swift +++ b/Sources/Services/AWSSQS/SQSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class SQSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SQSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SQSClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class SQSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -53,8 +53,9 @@ public class SQSClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -65,11 +66,9 @@ public class SQSClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SQSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -78,21 +77,84 @@ public class SQSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SQSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSQS/SQSClientProtocol.swift b/Sources/Services/AWSSQS/SQSClientProtocol.swift index dce92e9fa01..297eff00622 100644 --- a/Sources/Services/AWSSQS/SQSClientProtocol.swift +++ b/Sources/Services/AWSSQS/SQSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Welcome to the Amazon SQS API Reference. Amazon SQS is a reliable, highly-scalable hosted queue for storing messages as they travel between applications or microservices. Amazon SQS moves data between distributed application components and helps you decouple these components. For information on the permissions you need to use this API, see [Identity and access management](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-authentication-and-access-control.html) in the Amazon SQS Developer Guide. You can use [Amazon Web Services SDKs](http://aws.amazon.com/tools/#sdk) to access Amazon SQS using your favorite programming language. The SDKs perform tasks such as the following automatically: diff --git a/Sources/Services/AWSSSM/SSMClient.swift b/Sources/Services/AWSSSM/SSMClient.swift index b65ec7a5d28..39ee673037e 100644 --- a/Sources/Services/AWSSSM/SSMClient.swift +++ b/Sources/Services/AWSSSM/SSMClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SSMClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SSMClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SSMClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SSMClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SSMClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SSMClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSMClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SSMClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSMClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSSM/SSMClientProtocol.swift b/Sources/Services/AWSSSM/SSMClientProtocol.swift index 303ac091a7a..988461511e3 100644 --- a/Sources/Services/AWSSSM/SSMClientProtocol.swift +++ b/Sources/Services/AWSSSM/SSMClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Systems Manager is the operations hub for your Amazon Web Services applications and resources and a secure end-to-end management solution for hybrid cloud environments that enables safe and secure operations at scale. This reference is intended to be used with the [Amazon Web Services Systems Manager User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/). To get started, see [Setting up Amazon Web Services Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html). Related resources diff --git a/Sources/Services/AWSSSMContacts/SSMContactsClient.swift b/Sources/Services/AWSSSMContacts/SSMContactsClient.swift index c39bbb2442c..55404a56873 100644 --- a/Sources/Services/AWSSSMContacts/SSMContactsClient.swift +++ b/Sources/Services/AWSSSMContacts/SSMContactsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SSMContactsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SSMContactsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SSMContactsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SSMContactsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SSMContactsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SSMContactsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSMContactsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SSMContactsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSMContactsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSSMContacts/SSMContactsClientProtocol.swift b/Sources/Services/AWSSSMContacts/SSMContactsClientProtocol.swift index 80afdc3853c..d8ce2354b86 100644 --- a/Sources/Services/AWSSSMContacts/SSMContactsClientProtocol.swift +++ b/Sources/Services/AWSSSMContacts/SSMContactsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Systems Manager Incident Manager is an incident management console designed to help users mitigate and recover from incidents affecting their Amazon Web Services-hosted applications. An incident is any unplanned interruption or reduction in quality of services. Incident Manager increases incident resolution by notifying responders of impact, highlighting relevant troubleshooting data, and providing collaboration tools to get services back up and running. To achieve the primary goal of reducing the time-to-resolution of critical incidents, Incident Manager automates response plans and enables responder team escalation. diff --git a/Sources/Services/AWSSSMIncidents/SSMIncidentsClient.swift b/Sources/Services/AWSSSMIncidents/SSMIncidentsClient.swift index bc04feabcac..29511cbf4c9 100644 --- a/Sources/Services/AWSSSMIncidents/SSMIncidentsClient.swift +++ b/Sources/Services/AWSSSMIncidents/SSMIncidentsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SSMIncidentsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SSMIncidentsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SSMIncidentsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SSMIncidentsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SSMIncidentsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SSMIncidentsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSMIncidentsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SSMIncidentsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSMIncidentsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSSMIncidents/SSMIncidentsClientProtocol.swift b/Sources/Services/AWSSSMIncidents/SSMIncidentsClientProtocol.swift index 8964125cdad..c13cd0da28f 100644 --- a/Sources/Services/AWSSSMIncidents/SSMIncidentsClientProtocol.swift +++ b/Sources/Services/AWSSSMIncidents/SSMIncidentsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Systems Manager Incident Manager is an incident management console designed to help users mitigate and recover from incidents affecting their Amazon Web Services-hosted applications. An incident is any unplanned interruption or reduction in quality of services. Incident Manager increases incident resolution by notifying responders of impact, highlighting relevant troubleshooting data, and providing collaboration tools to get services back up and running. To achieve the primary goal of reducing the time-to-resolution of critical incidents, Incident Manager automates response plans and enables responder team escalation. diff --git a/Sources/Services/AWSSSO/SSOClient.swift b/Sources/Services/AWSSSO/SSOClient.swift index d16c3d4e78d..d3da6476b77 100644 --- a/Sources/Services/AWSSSO/SSOClient.swift +++ b/Sources/Services/AWSSSO/SSOClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SSOClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SSOClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SSOClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SSOClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SSOClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SSOClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSOClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SSOClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSOClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSSO/SSOClientProtocol.swift b/Sources/Services/AWSSSO/SSOClientProtocol.swift index 86e5c5b2f1d..a3cb6e92fd9 100644 --- a/Sources/Services/AWSSSO/SSOClientProtocol.swift +++ b/Sources/Services/AWSSSO/SSOClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS IAM Identity Center (successor to AWS Single Sign-On) Portal is a web service that makes it easy for you to assign user access to IAM Identity Center resources such as the AWS access portal. Users can get AWS account applications and roles assigned to them and get federated into the application. Although AWS Single Sign-On was renamed, the sso and identitystore API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see [IAM Identity Center rename](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed). This reference guide describes the IAM Identity Center Portal operations that you can call programatically and includes detailed information on data types and errors. AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms, such as Java, Ruby, .Net, iOS, or Android. The SDKs provide a convenient way to create programmatic access to IAM Identity Center and other AWS services. For more information about the AWS SDKs, including how to download and install them, see [Tools for Amazon Web Services](http://aws.amazon.com/tools/). diff --git a/Sources/Services/AWSSSOAdmin/SSOAdminClient.swift b/Sources/Services/AWSSSOAdmin/SSOAdminClient.swift index 8d352a625a4..e1178f7cffb 100644 --- a/Sources/Services/AWSSSOAdmin/SSOAdminClient.swift +++ b/Sources/Services/AWSSSOAdmin/SSOAdminClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SSOAdminClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SSOAdminClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SSOAdminClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SSOAdminClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SSOAdminClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SSOAdminClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSOAdminClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SSOAdminClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSOAdminClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSSOAdmin/SSOAdminClientProtocol.swift b/Sources/Services/AWSSSOAdmin/SSOAdminClientProtocol.swift index 221e2029b64..e1a4b7fb8b8 100644 --- a/Sources/Services/AWSSSOAdmin/SSOAdminClientProtocol.swift +++ b/Sources/Services/AWSSSOAdmin/SSOAdminClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS IAM Identity Center (successor to AWS Single Sign-On) helps you securely create, or connect, your workforce identities and manage their access centrally across AWS accounts and applications. IAM Identity Center is the recommended approach for workforce authentication and authorization in AWS, for organizations of any size and type. Although AWS Single Sign-On was renamed, the sso and identitystore API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see [IAM Identity Center rename](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed). This reference guide provides information on single sign-on operations which could be used for access management of AWS accounts. For information about IAM Identity Center features, see the [IAM Identity Center User Guide](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html). Many operations in the IAM Identity Center APIs rely on identifiers for users and groups, known as principals. For more information about how to work with principals and principal IDs in IAM Identity Center, see the [Identity Store API Reference](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/welcome.html). AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, iOS, Android, and more). The SDKs provide a convenient way to create programmatic access to IAM Identity Center and other AWS services. For more information about the AWS SDKs, including how to download and install them, see [Tools for Amazon Web Services](http://aws.amazon.com/tools/). diff --git a/Sources/Services/AWSSSOOIDC/SSOOIDCClient.swift b/Sources/Services/AWSSSOOIDC/SSOOIDCClient.swift index 20379ef4b5b..f4d6cdbdb00 100644 --- a/Sources/Services/AWSSSOOIDC/SSOOIDCClient.swift +++ b/Sources/Services/AWSSSOOIDC/SSOOIDCClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SSOOIDCClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SSOOIDCClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SSOOIDCClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SSOOIDCClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SSOOIDCClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SSOOIDCClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSOOIDCClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SSOOIDCClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SSOOIDCClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSSOOIDC/SSOOIDCClientProtocol.swift b/Sources/Services/AWSSSOOIDC/SSOOIDCClientProtocol.swift index 8997fcece0b..0c32793351b 100644 --- a/Sources/Services/AWSSSOOIDC/SSOOIDCClientProtocol.swift +++ b/Sources/Services/AWSSSOOIDC/SSOOIDCClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS IAM Identity Center (successor to AWS Single Sign-On) OpenID Connect (OIDC) is a web service that enables a client (such as AWS CLI or a native application) to register with IAM Identity Center. The service also enables the client to fetch the user’s access token upon successful authentication and authorization with IAM Identity Center. Although AWS Single Sign-On was renamed, the sso and identitystore API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see [IAM Identity Center rename](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed). Considerations for Using This Guide Before you begin using this guide, we recommend that you first review the following important information about how the IAM Identity Center OIDC service works. diff --git a/Sources/Services/AWSSTS/STSClient.swift b/Sources/Services/AWSSTS/STSClient.swift index 755f14afe98..65e9fb8e553 100644 --- a/Sources/Services/AWSSTS/STSClient.swift +++ b/Sources/Services/AWSSTS/STSClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -22,8 +22,8 @@ public class STSClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await STSClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try STSClientConfiguration(region: region) self.init(config: config) } @@ -42,7 +42,7 @@ public class STSClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -54,8 +54,9 @@ public class STSClient { public var endpointResolver: EndpointResolver public var useGlobalEndpoint: Swift.Bool? - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -67,11 +68,9 @@ public class STSClient { useFIPS: Swift.Bool? = nil, useGlobalEndpoint: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("STSClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -80,21 +79,88 @@ public class STSClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + useGlobalEndpoint: useGlobalEndpoint, + runtimeConfig: runtimeConfig + ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil, + useGlobalEndpoint: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + useGlobalEndpoint: useGlobalEndpoint, + runtimeConfig: runtimeConfig ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + useGlobalEndpoint: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("STSClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSTS/STSClientProtocol.swift b/Sources/Services/AWSSTS/STSClientProtocol.swift index c83d93f44fa..5c628333c22 100644 --- a/Sources/Services/AWSSTS/STSClientProtocol.swift +++ b/Sources/Services/AWSSTS/STSClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Security Token Service Security Token Service (STS) enables you to request temporary, limited-privilege credentials for Identity and Access Management (IAM) users or for users that you authenticate (federated users). This guide provides descriptions of the STS API. For more information about using this service, see [Temporary Security Credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html). diff --git a/Sources/Services/AWSSWF/SWFClient.swift b/Sources/Services/AWSSWF/SWFClient.swift index 7210ecdfe4e..285ecc021fd 100644 --- a/Sources/Services/AWSSWF/SWFClient.swift +++ b/Sources/Services/AWSSWF/SWFClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SWFClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SWFClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SWFClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SWFClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SWFClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SWFClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SWFClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SWFClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SWFClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSWF/SWFClientProtocol.swift b/Sources/Services/AWSSWF/SWFClientProtocol.swift index 9051698cf77..1455f07bebb 100644 --- a/Sources/Services/AWSSWF/SWFClientProtocol.swift +++ b/Sources/Services/AWSSWF/SWFClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Simple Workflow Service The Amazon Simple Workflow Service (Amazon SWF) makes it easy to build applications that use Amazon's cloud to coordinate work across distributed components. In Amazon SWF, a task represents a logical unit of work that is performed by a component of your workflow. Coordinating tasks in a workflow involves managing intertask dependencies, scheduling, and concurrency in accordance with the logical flow of the application. Amazon SWF gives you full control over implementing tasks and coordinating them without worrying about underlying complexities such as tracking their progress and maintaining their state. This documentation serves as reference only. For a broader overview of the Amazon SWF programming model, see the [Amazon SWF Developer Guide](https://docs.aws.amazon.com/amazonswf/latest/developerguide/) . diff --git a/Sources/Services/AWSSageMaker/SageMakerClient.swift b/Sources/Services/AWSSageMaker/SageMakerClient.swift index 857884e419b..0517dfe6c9a 100644 --- a/Sources/Services/AWSSageMaker/SageMakerClient.swift +++ b/Sources/Services/AWSSageMaker/SageMakerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SageMakerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SageMakerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SageMakerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SageMakerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SageMakerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SageMakerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SageMakerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSageMaker/SageMakerClientProtocol.swift b/Sources/Services/AWSSageMaker/SageMakerClientProtocol.swift index b47f8ac8188..6a647cd6117 100644 --- a/Sources/Services/AWSSageMaker/SageMakerClientProtocol.swift +++ b/Sources/Services/AWSSageMaker/SageMakerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Provides APIs for creating and managing SageMaker resources. Other Resources: diff --git a/Sources/Services/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClient.swift b/Sources/Services/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClient.swift index f2039c000df..7366597b8e8 100644 --- a/Sources/Services/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClient.swift +++ b/Sources/Services/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SageMakerA2IRuntimeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SageMakerA2IRuntimeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SageMakerA2IRuntimeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SageMakerA2IRuntimeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SageMakerA2IRuntimeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SageMakerA2IRuntimeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerA2IRuntimeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SageMakerA2IRuntimeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerA2IRuntimeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClientProtocol.swift b/Sources/Services/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClientProtocol.swift index 62a90804954..8686b774884 100644 --- a/Sources/Services/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClientProtocol.swift +++ b/Sources/Services/AWSSageMakerA2IRuntime/SageMakerA2IRuntimeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Augmented AI (Amazon A2I) adds the benefit of human judgment to any machine learning application. When an AI application can't evaluate data with a high degree of confidence, human reviewers can take over. This human review is called a human review workflow. To create and start a human review workflow, you need three resources: a worker task template, a flow definition, and a human loop. For information about these resources and prerequisites for using Amazon A2I, see [Get Started with Amazon Augmented AI](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-getting-started.html) in the Amazon SageMaker Developer Guide. This API reference includes information about API actions and data types that you can use to interact with Amazon A2I programmatically. Use this guide to: diff --git a/Sources/Services/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClient.swift b/Sources/Services/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClient.swift index 6bcf5e75a58..780f6f86c92 100644 --- a/Sources/Services/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClient.swift +++ b/Sources/Services/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SageMakerFeatureStoreRuntimeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SageMakerFeatureStoreRuntimeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SageMakerFeatureStoreRuntimeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SageMakerFeatureStoreRuntimeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SageMakerFeatureStoreRuntimeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SageMakerFeatureStoreRuntimeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerFeatureStoreRuntimeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SageMakerFeatureStoreRuntimeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerFeatureStoreRuntimeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClientProtocol.swift b/Sources/Services/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClientProtocol.swift index c6a3fbca5ba..9b1d5db7eb1 100644 --- a/Sources/Services/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClientProtocol.swift +++ b/Sources/Services/AWSSageMakerFeatureStoreRuntime/SageMakerFeatureStoreRuntimeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Contains all data plane API operations and data types for the Amazon SageMaker Feature Store. Use this API to put, delete, and retrieve (get) features from a feature store. Use the following operations to configure your OnlineStore and OfflineStore features, and to create and manage feature groups: diff --git a/Sources/Services/AWSSageMakerGeospatial/SageMakerGeospatialClient.swift b/Sources/Services/AWSSageMakerGeospatial/SageMakerGeospatialClient.swift index 30bc9fc17d4..d854e273894 100644 --- a/Sources/Services/AWSSageMakerGeospatial/SageMakerGeospatialClient.swift +++ b/Sources/Services/AWSSageMakerGeospatial/SageMakerGeospatialClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SageMakerGeospatialClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SageMakerGeospatialClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SageMakerGeospatialClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SageMakerGeospatialClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SageMakerGeospatialClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SageMakerGeospatialClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerGeospatialClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SageMakerGeospatialClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerGeospatialClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSageMakerGeospatial/SageMakerGeospatialClientProtocol.swift b/Sources/Services/AWSSageMakerGeospatial/SageMakerGeospatialClientProtocol.swift index fa79dffc303..8ec1dcd352a 100644 --- a/Sources/Services/AWSSageMakerGeospatial/SageMakerGeospatialClientProtocol.swift +++ b/Sources/Services/AWSSageMakerGeospatial/SageMakerGeospatialClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Provides APIs for creating and managing SageMaker geospatial resources. diff --git a/Sources/Services/AWSSageMakerMetrics/SageMakerMetricsClient.swift b/Sources/Services/AWSSageMakerMetrics/SageMakerMetricsClient.swift index e47c4145aca..921e41cdef0 100644 --- a/Sources/Services/AWSSageMakerMetrics/SageMakerMetricsClient.swift +++ b/Sources/Services/AWSSageMakerMetrics/SageMakerMetricsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SageMakerMetricsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SageMakerMetricsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SageMakerMetricsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SageMakerMetricsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SageMakerMetricsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SageMakerMetricsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerMetricsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SageMakerMetricsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerMetricsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSageMakerMetrics/SageMakerMetricsClientProtocol.swift b/Sources/Services/AWSSageMakerMetrics/SageMakerMetricsClientProtocol.swift index af0f8e72324..6be1b12b31f 100644 --- a/Sources/Services/AWSSageMakerMetrics/SageMakerMetricsClientProtocol.swift +++ b/Sources/Services/AWSSageMakerMetrics/SageMakerMetricsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Contains all data plane API operations and data types for Amazon SageMaker Metrics. Use these APIs to put and retrieve (get) features related to your training run. diff --git a/Sources/Services/AWSSageMakerRuntime/SageMakerRuntimeClient.swift b/Sources/Services/AWSSageMakerRuntime/SageMakerRuntimeClient.swift index 2bfa536d6e7..fdc3940ae25 100644 --- a/Sources/Services/AWSSageMakerRuntime/SageMakerRuntimeClient.swift +++ b/Sources/Services/AWSSageMakerRuntime/SageMakerRuntimeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SageMakerRuntimeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SageMakerRuntimeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SageMakerRuntimeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SageMakerRuntimeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SageMakerRuntimeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SageMakerRuntimeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerRuntimeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SageMakerRuntimeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SageMakerRuntimeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSageMakerRuntime/SageMakerRuntimeClientProtocol.swift b/Sources/Services/AWSSageMakerRuntime/SageMakerRuntimeClientProtocol.swift index acd2271a4e3..77007df7fef 100644 --- a/Sources/Services/AWSSageMakerRuntime/SageMakerRuntimeClientProtocol.swift +++ b/Sources/Services/AWSSageMakerRuntime/SageMakerRuntimeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon SageMaker runtime API. diff --git a/Sources/Services/AWSSagemakerEdge/SagemakerEdgeClient.swift b/Sources/Services/AWSSagemakerEdge/SagemakerEdgeClient.swift index 6a7e66bb882..e0508f1df42 100644 --- a/Sources/Services/AWSSagemakerEdge/SagemakerEdgeClient.swift +++ b/Sources/Services/AWSSagemakerEdge/SagemakerEdgeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SagemakerEdgeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SagemakerEdgeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SagemakerEdgeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SagemakerEdgeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SagemakerEdgeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SagemakerEdgeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SagemakerEdgeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SagemakerEdgeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SagemakerEdgeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSagemakerEdge/SagemakerEdgeClientProtocol.swift b/Sources/Services/AWSSagemakerEdge/SagemakerEdgeClientProtocol.swift index 18410a360fa..fbd4f6ea1c5 100644 --- a/Sources/Services/AWSSagemakerEdge/SagemakerEdgeClientProtocol.swift +++ b/Sources/Services/AWSSagemakerEdge/SagemakerEdgeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// SageMaker Edge Manager dataplane service for communicating with active agents. diff --git a/Sources/Services/AWSSavingsplans/SavingsplansClient.swift b/Sources/Services/AWSSavingsplans/SavingsplansClient.swift index 5a654236409..aa157a08784 100644 --- a/Sources/Services/AWSSavingsplans/SavingsplansClient.swift +++ b/Sources/Services/AWSSavingsplans/SavingsplansClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SavingsplansClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SavingsplansClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SavingsplansClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SavingsplansClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SavingsplansClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SavingsplansClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SavingsplansClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SavingsplansClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SavingsplansClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSavingsplans/SavingsplansClientProtocol.swift b/Sources/Services/AWSSavingsplans/SavingsplansClientProtocol.swift index 9b912f6dca7..27d42f4a240 100644 --- a/Sources/Services/AWSSavingsplans/SavingsplansClientProtocol.swift +++ b/Sources/Services/AWSSavingsplans/SavingsplansClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Savings Plans are a pricing model that offer significant savings on AWS usage (for example, on Amazon EC2 instances). You commit to a consistent amount of usage, in USD per hour, for a term of 1 or 3 years, and receive a lower price for that usage. For more information, see the [AWS Savings Plans User Guide](https://docs.aws.amazon.com/savingsplans/latest/userguide/). diff --git a/Sources/Services/AWSScheduler/SchedulerClient.swift b/Sources/Services/AWSScheduler/SchedulerClient.swift index 2a32c6887ab..203023ebf58 100644 --- a/Sources/Services/AWSScheduler/SchedulerClient.swift +++ b/Sources/Services/AWSScheduler/SchedulerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SchedulerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SchedulerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SchedulerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SchedulerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SchedulerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SchedulerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SchedulerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SchedulerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SchedulerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSScheduler/SchedulerClientProtocol.swift b/Sources/Services/AWSScheduler/SchedulerClientProtocol.swift index 5fd49687950..39d50da8682 100644 --- a/Sources/Services/AWSScheduler/SchedulerClientProtocol.swift +++ b/Sources/Services/AWSScheduler/SchedulerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EventBridge Scheduler is a serverless scheduler that allows you to create, run, and manage tasks from one central, managed service. EventBridge Scheduler delivers your tasks reliably, with built-in mechanisms that adjust your schedules based on the availability of downstream targets. The following reference lists the available API actions, and data types for EventBridge Scheduler. diff --git a/Sources/Services/AWSSchemas/SchemasClient.swift b/Sources/Services/AWSSchemas/SchemasClient.swift index 3c7f055081c..06d1b37c219 100644 --- a/Sources/Services/AWSSchemas/SchemasClient.swift +++ b/Sources/Services/AWSSchemas/SchemasClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SchemasClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SchemasClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SchemasClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SchemasClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SchemasClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SchemasClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SchemasClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SchemasClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SchemasClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSchemas/SchemasClientProtocol.swift b/Sources/Services/AWSSchemas/SchemasClientProtocol.swift index 1150a4fd859..63ec510f3b7 100644 --- a/Sources/Services/AWSSchemas/SchemasClientProtocol.swift +++ b/Sources/Services/AWSSchemas/SchemasClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon EventBridge Schema Registry diff --git a/Sources/Services/AWSSecretsManager/SecretsManagerClient.swift b/Sources/Services/AWSSecretsManager/SecretsManagerClient.swift index 747042f6456..748755fe62b 100644 --- a/Sources/Services/AWSSecretsManager/SecretsManagerClient.swift +++ b/Sources/Services/AWSSecretsManager/SecretsManagerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SecretsManagerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SecretsManagerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SecretsManagerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SecretsManagerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SecretsManagerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SecretsManagerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SecretsManagerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SecretsManagerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SecretsManagerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSecretsManager/SecretsManagerClientProtocol.swift b/Sources/Services/AWSSecretsManager/SecretsManagerClientProtocol.swift index d59dab37883..f4e3777eafb 100644 --- a/Sources/Services/AWSSecretsManager/SecretsManagerClientProtocol.swift +++ b/Sources/Services/AWSSecretsManager/SecretsManagerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Secrets Manager Amazon Web Services Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets. This guide provides descriptions of the Secrets Manager API. For more information about using this service, see the [Amazon Web Services Secrets Manager User Guide](https://docs.aws.amazon.com/secretsmanager/latest/userguide/introduction.html). API Version This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17. For a list of endpoints, see [Amazon Web Services Secrets Manager endpoints](https://docs.aws.amazon.com/secretsmanager/latest/userguide/asm_access.html#endpoints). Support and Feedback for Amazon Web Services Secrets Manager We welcome your feedback. Send your comments to [awssecretsmanager-feedback@amazon.com](mailto:awssecretsmanager-feedback@amazon.com), or post your feedback and questions in the [Amazon Web Services Secrets Manager Discussion Forum](http://forums.aws.amazon.com/forum.jspa?forumID=296). For more information about the Amazon Web Services Discussion Forums, see [Forums Help](http://forums.aws.amazon.com/help.jspa). Logging API Requests Amazon Web Services Secrets Manager supports Amazon Web Services CloudTrail, a service that records Amazon Web Services API calls for your Amazon Web Services account and delivers log files to an Amazon S3 bucket. By using information that's collected by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services CloudTrail, see [Logging Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html#monitoring_cloudtrail) in the Amazon Web Services Secrets Manager User Guide. To learn more about CloudTrail, including enabling it and find your log files, see the [Amazon Web Services CloudTrail User Guide](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html). diff --git a/Sources/Services/AWSSecurityHub/SecurityHubClient.swift b/Sources/Services/AWSSecurityHub/SecurityHubClient.swift index 25988e8a237..8f7659d12e7 100644 --- a/Sources/Services/AWSSecurityHub/SecurityHubClient.swift +++ b/Sources/Services/AWSSecurityHub/SecurityHubClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SecurityHubClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SecurityHubClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SecurityHubClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SecurityHubClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SecurityHubClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SecurityHubClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SecurityHubClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SecurityHubClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SecurityHubClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSecurityHub/SecurityHubClientProtocol.swift b/Sources/Services/AWSSecurityHub/SecurityHubClientProtocol.swift index 36ecb0caaa5..c7fc110a7c4 100644 --- a/Sources/Services/AWSSecurityHub/SecurityHubClientProtocol.swift +++ b/Sources/Services/AWSSecurityHub/SecurityHubClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Security Hub provides you with a comprehensive view of the security state of your Amazon Web Services environment and resources. It also provides you with the readiness status of your environment based on controls from supported security standards. Security Hub collects security data from Amazon Web Services accounts, services, and integrated third-party products and helps you analyze security trends in your environment to identify the highest priority security issues. For more information about Security Hub, see the [Security HubUser Guide](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html). When you use operations in the Security Hub API, the requests are executed only in the Amazon Web Services Region that is currently active or in the specific Amazon Web Services Region that you specify in your request. Any configuration or settings change that results from the operation is applied only to that Region. To make the same change in other Regions, run the same command for each Region in which you want to apply the change. For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of the member account with the administrator account is created only in the us-west-2 Region. Security Hub must be enabled for the member account in the same Region that the invitation was sent from. The following throttling limits apply to using Security Hub API operations. diff --git a/Sources/Services/AWSSecurityLake/SecurityLakeClient.swift b/Sources/Services/AWSSecurityLake/SecurityLakeClient.swift index ff2465b26d1..d8900a2d625 100644 --- a/Sources/Services/AWSSecurityLake/SecurityLakeClient.swift +++ b/Sources/Services/AWSSecurityLake/SecurityLakeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SecurityLakeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SecurityLakeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SecurityLakeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SecurityLakeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SecurityLakeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SecurityLakeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SecurityLakeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SecurityLakeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SecurityLakeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSecurityLake/SecurityLakeClientProtocol.swift b/Sources/Services/AWSSecurityLake/SecurityLakeClientProtocol.swift index 777be2db109..d4ada242942 100644 --- a/Sources/Services/AWSSecurityLake/SecurityLakeClientProtocol.swift +++ b/Sources/Services/AWSSecurityLake/SecurityLakeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Security Lake is in preview release. Your use of the Security Lake preview is subject to Section 2 of the [Amazon Web Services Service Terms](http://aws.amazon.com/service-terms/)("Betas and Previews"). Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to automatically centralize security data from cloud, on-premises, and custom sources into a data lake that's stored in your Amazon Web Servicesaccount. Amazon Web Services Organizations is an account management service that lets you consolidate multiple Amazon Web Services accounts into an organization that you create and centrally manage. With Organizations, you can create member accounts and invite existing accounts to join your organization. Security Lake helps you analyze security data for a more complete understanding of your security posture across the entire organization. It can also help you improve the protection of your workloads, applications, and data. The data lake is backed by Amazon Simple Storage Service (Amazon S3) buckets, and you retain ownership over your data. Amazon Security Lake integrates with CloudTrail, a service that provides a record of actions taken by a user, role, or an Amazon Web Services service in Security Lake CloudTrail captures API calls for Security Lake as events. The calls captured include calls from the Security Lake console and code calls to the Security Lake API operations. If you create a trail, you can enable continuous delivery of CloudTrail events to an Amazon S3 bucket, including events for Security Lake. If you don't configure a trail, you can still view the most recent events in the CloudTrail console in Event history. Using the information collected by CloudTrail you can determine the request that was made to Security Lake, the IP address from which the request was made, who made the request, when it was made, and additional details. To learn more about Security Lake information in CloudTrail, see the [Amazon Security Lake User Guide](https://docs.aws.amazon.com/security-lake/latest/userguide/securitylake-cloudtrail.html). Security Lake automates the collection of security-related log and event data from integrated Amazon Web Services and third-party services. It also helps you manage the lifecycle of data with customizable retention and replication settings. Security Lake converts ingested data into Apache Parquet format and a standard open-source schema called the Open Cybersecurity Schema Framework (OCSF). Other Amazon Web Services and third-party services can subscribe to the data that's stored in Security Lake for incident response and security data analytics. diff --git a/Sources/Services/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClient.swift b/Sources/Services/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClient.swift index b15a262cda9..c2134a8f0f7 100644 --- a/Sources/Services/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClient.swift +++ b/Sources/Services/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ServerlessApplicationRepositoryClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ServerlessApplicationRepositoryClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ServerlessApplicationRepositoryClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ServerlessApplicationRepositoryClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ServerlessApplicationRepositoryClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ServerlessApplicationRepositoryClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServerlessApplicationRepositoryClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ServerlessApplicationRepositoryClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServerlessApplicationRepositoryClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClientProtocol.swift b/Sources/Services/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClientProtocol.swift index d4ad644ec1b..56e7b6b25fc 100644 --- a/Sources/Services/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClientProtocol.swift +++ b/Sources/Services/AWSServerlessApplicationRepository/ServerlessApplicationRepositoryClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The AWS Serverless Application Repository makes it easy for developers and enterprises to quickly find and deploy serverless applications in the AWS Cloud. For more information about serverless applications, see Serverless Computing and Applications on the AWS website.The AWS Serverless Application Repository is deeply integrated with the AWS Lambda console, so that developers of all levels can get started with serverless computing without needing to learn anything new. You can use category keywords to browse for applications such as web and mobile backends, data processing applications, or chatbots. You can also search for applications by name, publisher, or event source. To use an application, you simply choose it, configure any required fields, and deploy it with a few clicks. You can also easily publish applications, sharing them publicly with the community at large, or privately within your team or across your organization. To publish a serverless application (or app), you can use the AWS Management Console, AWS Command Line Interface (AWS CLI), or AWS SDKs to upload the code. Along with the code, you upload a simple manifest file, also known as the AWS Serverless Application Model (AWS SAM) template. For more information about AWS SAM, see AWS Serverless Application Model (AWS SAM) on the AWS Labs GitHub repository.The AWS Serverless Application Repository Developer Guide contains more information about the two developer experiences available: diff --git a/Sources/Services/AWSServiceCatalog/ServiceCatalogClient.swift b/Sources/Services/AWSServiceCatalog/ServiceCatalogClient.swift index 8df59bf50d0..496c566ea60 100644 --- a/Sources/Services/AWSServiceCatalog/ServiceCatalogClient.swift +++ b/Sources/Services/AWSServiceCatalog/ServiceCatalogClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ServiceCatalogClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ServiceCatalogClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ServiceCatalogClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ServiceCatalogClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ServiceCatalogClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ServiceCatalogClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServiceCatalogClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ServiceCatalogClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServiceCatalogClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSServiceCatalog/ServiceCatalogClientProtocol.swift b/Sources/Services/AWSServiceCatalog/ServiceCatalogClientProtocol.swift index 8b19b371081..f24976d41c9 100644 --- a/Sources/Services/AWSServiceCatalog/ServiceCatalogClientProtocol.swift +++ b/Sources/Services/AWSServiceCatalog/ServiceCatalogClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Service Catalog [Service Catalog](http://aws.amazon.com/servicecatalog) enables organizations to create and manage catalogs of IT services that are approved for Amazon Web Services. To get the most out of this documentation, you should be familiar with the terminology discussed in [Service Catalog Concepts](http://docs.aws.amazon.com/servicecatalog/latest/adminguide/what-is_concepts.html). diff --git a/Sources/Services/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClient.swift b/Sources/Services/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClient.swift index 90fc2fa6377..89819d047bc 100644 --- a/Sources/Services/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClient.swift +++ b/Sources/Services/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ServiceCatalogAppRegistryClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ServiceCatalogAppRegistryClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ServiceCatalogAppRegistryClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ServiceCatalogAppRegistryClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ServiceCatalogAppRegistryClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ServiceCatalogAppRegistryClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServiceCatalogAppRegistryClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ServiceCatalogAppRegistryClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServiceCatalogAppRegistryClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClientProtocol.swift b/Sources/Services/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClientProtocol.swift index 918eab31971..870d960cc89 100644 --- a/Sources/Services/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClientProtocol.swift +++ b/Sources/Services/AWSServiceCatalogAppRegistry/ServiceCatalogAppRegistryClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Service Catalog AppRegistry enables organizations to understand the application context of their Amazon Web Services resources. AppRegistry provides a repository of your applications, their resources, and the application metadata that you use within your enterprise. diff --git a/Sources/Services/AWSServiceDiscovery/ServiceDiscoveryClient.swift b/Sources/Services/AWSServiceDiscovery/ServiceDiscoveryClient.swift index 8b8d9b1ff4d..61184c28604 100644 --- a/Sources/Services/AWSServiceDiscovery/ServiceDiscoveryClient.swift +++ b/Sources/Services/AWSServiceDiscovery/ServiceDiscoveryClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ServiceDiscoveryClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ServiceDiscoveryClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ServiceDiscoveryClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ServiceDiscoveryClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ServiceDiscoveryClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ServiceDiscoveryClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServiceDiscoveryClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ServiceDiscoveryClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServiceDiscoveryClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSServiceDiscovery/ServiceDiscoveryClientProtocol.swift b/Sources/Services/AWSServiceDiscovery/ServiceDiscoveryClientProtocol.swift index 34afb5425da..223ddb49e9d 100644 --- a/Sources/Services/AWSServiceDiscovery/ServiceDiscoveryClientProtocol.swift +++ b/Sources/Services/AWSServiceDiscovery/ServiceDiscoveryClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Cloud Map With Cloud Map, you can configure public DNS, private DNS, or HTTP namespaces that your microservice applications run in. When an instance becomes available, you can call the Cloud Map API to register the instance with Cloud Map. For public or private DNS namespaces, Cloud Map automatically creates DNS records and an optional health check. Clients that submit public or private DNS queries, or HTTP requests, for the service receive an answer that contains up to eight healthy records. diff --git a/Sources/Services/AWSServiceQuotas/ServiceQuotasClient.swift b/Sources/Services/AWSServiceQuotas/ServiceQuotasClient.swift index 45d0b7ef864..4522f606e07 100644 --- a/Sources/Services/AWSServiceQuotas/ServiceQuotasClient.swift +++ b/Sources/Services/AWSServiceQuotas/ServiceQuotasClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ServiceQuotasClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ServiceQuotasClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ServiceQuotasClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ServiceQuotasClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ServiceQuotasClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ServiceQuotasClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServiceQuotasClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ServiceQuotasClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ServiceQuotasClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSServiceQuotas/ServiceQuotasClientProtocol.swift b/Sources/Services/AWSServiceQuotas/ServiceQuotasClientProtocol.swift index becae9d6570..6f1eed675ff 100644 --- a/Sources/Services/AWSServiceQuotas/ServiceQuotasClientProtocol.swift +++ b/Sources/Services/AWSServiceQuotas/ServiceQuotasClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// With Service Quotas, you can view and manage your quotas easily as your AWS workloads grow. Quotas, also referred to as limits, are the maximum number of resources that you can create in your AWS account. For more information, see the [Service Quotas User Guide](https://docs.aws.amazon.com/servicequotas/latest/userguide/). diff --git a/Sources/Services/AWSShield/ShieldClient.swift b/Sources/Services/AWSShield/ShieldClient.swift index 809d8a29124..05088ae668c 100644 --- a/Sources/Services/AWSShield/ShieldClient.swift +++ b/Sources/Services/AWSShield/ShieldClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class ShieldClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ShieldClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ShieldClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class ShieldClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class ShieldClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class ShieldClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ShieldClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class ShieldClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ShieldClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSShield/ShieldClientProtocol.swift b/Sources/Services/AWSShield/ShieldClientProtocol.swift index 0cf640c8cff..2005d5bc6d0 100644 --- a/Sources/Services/AWSShield/ShieldClientProtocol.swift +++ b/Sources/Services/AWSShield/ShieldClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Shield Advanced This is the Shield Advanced API Reference. This guide is for developers who need detailed information about the Shield Advanced API actions, data types, and errors. For detailed information about WAF and Shield Advanced features and an overview of how to use the WAF and Shield Advanced APIs, see the [WAF and Shield Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/). diff --git a/Sources/Services/AWSSigner/SignerClient.swift b/Sources/Services/AWSSigner/SignerClient.swift index d6103750fbc..c4d8f619805 100644 --- a/Sources/Services/AWSSigner/SignerClient.swift +++ b/Sources/Services/AWSSigner/SignerClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SignerClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SignerClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SignerClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SignerClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SignerClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SignerClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SignerClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SignerClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SignerClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSigner/SignerClientProtocol.swift b/Sources/Services/AWSSigner/SignerClientProtocol.swift index 0228fd91bf8..fe9e9b27aef 100644 --- a/Sources/Services/AWSSigner/SignerClientProtocol.swift +++ b/Sources/Services/AWSSigner/SignerClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// AWS Signer is a fully managed code signing service to help you ensure the trust and integrity of your code. AWS Signer supports the following applications: With code signing for AWS Lambda, you can sign AWS Lambda deployment packages. Integrated support is provided for Amazon S3, Amazon CloudWatch, and AWS CloudTrail. In order to sign code, you create a signing profile and then use Signer to sign Lambda zip files in S3. With code signing for IoT, you can sign code for any IoT device that is supported by AWS. IoT code signing is available for [Amazon FreeRTOS](http://docs.aws.amazon.com/freertos/latest/userguide/) and [AWS IoT Device Management](http://docs.aws.amazon.com/iot/latest/developerguide/), and is integrated with [AWS Certificate Manager (ACM)](http://docs.aws.amazon.com/acm/latest/userguide/). In order to sign code, you import a third-party code signing certificate using ACM, and use that to sign updates in Amazon FreeRTOS and AWS IoT Device Management. For more information about AWS Signer, see the [AWS Signer Developer Guide](http://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html). diff --git a/Sources/Services/AWSSimSpaceWeaver/SimSpaceWeaverClient.swift b/Sources/Services/AWSSimSpaceWeaver/SimSpaceWeaverClient.swift index 4ab32806d77..febffa1eafd 100644 --- a/Sources/Services/AWSSimSpaceWeaver/SimSpaceWeaverClient.swift +++ b/Sources/Services/AWSSimSpaceWeaver/SimSpaceWeaverClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SimSpaceWeaverClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SimSpaceWeaverClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SimSpaceWeaverClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SimSpaceWeaverClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SimSpaceWeaverClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SimSpaceWeaverClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SimSpaceWeaverClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SimSpaceWeaverClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SimSpaceWeaverClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSimSpaceWeaver/SimSpaceWeaverClientProtocol.swift b/Sources/Services/AWSSimSpaceWeaver/SimSpaceWeaverClientProtocol.swift index e63a9e9e1fe..da06afef842 100644 --- a/Sources/Services/AWSSimSpaceWeaver/SimSpaceWeaverClientProtocol.swift +++ b/Sources/Services/AWSSimSpaceWeaver/SimSpaceWeaverClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services SimSpace Weaver (SimSpace Weaver) is a managed service that you can use to build and operate large-scale spatial simulations in the Amazon Web Services Cloud. For example, you can create a digital twin of a city, crowd simulations with millions of people and objects, and massilvely-multiplayer games with hundreds of thousands of connected players. For more information about SimSpace Weaver, see the [Amazon Web Services SimSpace Weaver User Guide](https://docs.aws.amazon.com/simspaceweaver/latest/userguide/) . This API reference describes the API operations and data types that you can use to communicate directly with SimSpace Weaver. SimSpace Weaver also provides the SimSpace Weaver app SDK, which you use for app development. The SimSpace Weaver app SDK API reference is included in the SimSpace Weaver app SDK documentation, which is part of the SimSpace Weaver app SDK distributable package. diff --git a/Sources/Services/AWSSnowDeviceManagement/SnowDeviceManagementClient.swift b/Sources/Services/AWSSnowDeviceManagement/SnowDeviceManagementClient.swift index 48a2d4b6545..9c0c73b3e2e 100644 --- a/Sources/Services/AWSSnowDeviceManagement/SnowDeviceManagementClient.swift +++ b/Sources/Services/AWSSnowDeviceManagement/SnowDeviceManagementClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SnowDeviceManagementClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SnowDeviceManagementClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SnowDeviceManagementClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SnowDeviceManagementClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SnowDeviceManagementClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SnowDeviceManagementClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SnowDeviceManagementClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SnowDeviceManagementClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SnowDeviceManagementClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSnowDeviceManagement/SnowDeviceManagementClientProtocol.swift b/Sources/Services/AWSSnowDeviceManagement/SnowDeviceManagementClientProtocol.swift index ecfac9979bd..f74ac1a37d8 100644 --- a/Sources/Services/AWSSnowDeviceManagement/SnowDeviceManagementClientProtocol.swift +++ b/Sources/Services/AWSSnowDeviceManagement/SnowDeviceManagementClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Snow Device Management documentation. diff --git a/Sources/Services/AWSSnowball/SnowballClient.swift b/Sources/Services/AWSSnowball/SnowballClient.swift index f0b330cb502..f9421a02a5a 100644 --- a/Sources/Services/AWSSnowball/SnowballClient.swift +++ b/Sources/Services/AWSSnowball/SnowballClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SnowballClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SnowballClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SnowballClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SnowballClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SnowballClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SnowballClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SnowballClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SnowballClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SnowballClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSnowball/SnowballClientProtocol.swift b/Sources/Services/AWSSnowball/SnowballClientProtocol.swift index ae691939ebc..de393699868 100644 --- a/Sources/Services/AWSSnowball/SnowballClientProtocol.swift +++ b/Sources/Services/AWSSnowball/SnowballClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon Web Services Snow Family provides a petabyte-scale data transport solution that uses secure devices to transfer large amounts of data between your on-premises data centers and Amazon Simple Storage Service (Amazon S3). The Snow Family commands described here provide access to the same functionality that is available in the Amazon Web Services Snow Family Management Console, which enables you to create and manage jobs for a Snow Family device. To transfer data locally with a Snow Family device, you'll need to use the Snowball Edge client or the Amazon S3 API Interface for Snowball or OpsHub for Snow Family. For more information, see the [User Guide](https://docs.aws.amazon.com/AWSImportExport/latest/ug/api-reference.html). diff --git a/Sources/Services/AWSSsmSap/SsmSapClient.swift b/Sources/Services/AWSSsmSap/SsmSapClient.swift index f118002db32..5b3bc48f6a2 100644 --- a/Sources/Services/AWSSsmSap/SsmSapClient.swift +++ b/Sources/Services/AWSSsmSap/SsmSapClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SsmSapClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SsmSapClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SsmSapClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SsmSapClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SsmSapClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SsmSapClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SsmSapClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SsmSapClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SsmSapClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSsmSap/SsmSapClientProtocol.swift b/Sources/Services/AWSSsmSap/SsmSapClientProtocol.swift index b8fff5b12bb..14336e9fb4e 100644 --- a/Sources/Services/AWSSsmSap/SsmSapClientProtocol.swift +++ b/Sources/Services/AWSSsmSap/SsmSapClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This API reference provides descriptions, syntax, and other details about each of the actions and data types for AWS Systems Manager for SAP. The topic for each action shows the API request parameters and responses. diff --git a/Sources/Services/AWSStorageGateway/StorageGatewayClient.swift b/Sources/Services/AWSStorageGateway/StorageGatewayClient.swift index b0f5e8b8947..ffe74ea7775 100644 --- a/Sources/Services/AWSStorageGateway/StorageGatewayClient.swift +++ b/Sources/Services/AWSStorageGateway/StorageGatewayClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class StorageGatewayClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await StorageGatewayClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try StorageGatewayClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class StorageGatewayClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class StorageGatewayClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class StorageGatewayClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("StorageGatewayClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class StorageGatewayClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("StorageGatewayClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSStorageGateway/StorageGatewayClientProtocol.swift b/Sources/Services/AWSStorageGateway/StorageGatewayClientProtocol.swift index bacd048f69c..4f82314c509 100644 --- a/Sources/Services/AWSStorageGateway/StorageGatewayClientProtocol.swift +++ b/Sources/Services/AWSStorageGateway/StorageGatewayClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Storage Gateway Service Storage Gateway is the service that connects an on-premises software appliance with cloud-based storage to provide seamless and secure integration between an organization's on-premises IT environment and the Amazon Web Services storage infrastructure. The service enables you to securely upload data to the Amazon Web Services Cloud for cost effective backup and rapid disaster recovery. Use the following links to get started using the Storage Gateway Service API Reference: diff --git a/Sources/Services/AWSSupport/SupportClient.swift b/Sources/Services/AWSSupport/SupportClient.swift index 7489e54887f..abcc4fdaa7b 100644 --- a/Sources/Services/AWSSupport/SupportClient.swift +++ b/Sources/Services/AWSSupport/SupportClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SupportClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SupportClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SupportClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SupportClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SupportClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SupportClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SupportClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SupportClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SupportClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSupport/SupportClientProtocol.swift b/Sources/Services/AWSSupport/SupportClientProtocol.swift index 120892132ef..fff80515ace 100644 --- a/Sources/Services/AWSSupport/SupportClientProtocol.swift +++ b/Sources/Services/AWSSupport/SupportClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Support The Amazon Web Services Support API Reference is intended for programmers who need detailed information about the Amazon Web Services Support operations and data types. You can use the API to manage your support cases programmatically. The Amazon Web Services Support API uses HTTP methods that return results in JSON format. diff --git a/Sources/Services/AWSSupportApp/SupportAppClient.swift b/Sources/Services/AWSSupportApp/SupportAppClient.swift index 4bdd5ace657..d1460fb35a4 100644 --- a/Sources/Services/AWSSupportApp/SupportAppClient.swift +++ b/Sources/Services/AWSSupportApp/SupportAppClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SupportAppClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SupportAppClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SupportAppClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SupportAppClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SupportAppClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SupportAppClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SupportAppClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SupportAppClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SupportAppClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSupportApp/SupportAppClientProtocol.swift b/Sources/Services/AWSSupportApp/SupportAppClientProtocol.swift index db713b69caf..02f39dc4556 100644 --- a/Sources/Services/AWSSupportApp/SupportAppClientProtocol.swift +++ b/Sources/Services/AWSSupportApp/SupportAppClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Support App in Slack You can use the Amazon Web Services Support App in Slack API to manage your support cases in Slack for your Amazon Web Services account. After you configure your Slack workspace and channel with the Amazon Web Services Support App, you can perform the following tasks directly in your Slack channel: diff --git a/Sources/Services/AWSSynthetics/SyntheticsClient.swift b/Sources/Services/AWSSynthetics/SyntheticsClient.swift index 97e7694a386..82c4959a79a 100644 --- a/Sources/Services/AWSSynthetics/SyntheticsClient.swift +++ b/Sources/Services/AWSSynthetics/SyntheticsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class SyntheticsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await SyntheticsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try SyntheticsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class SyntheticsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class SyntheticsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class SyntheticsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SyntheticsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class SyntheticsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("SyntheticsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSSynthetics/SyntheticsClientProtocol.swift b/Sources/Services/AWSSynthetics/SyntheticsClientProtocol.swift index 41a21ebbe4d..a21eb47f4c1 100644 --- a/Sources/Services/AWSSynthetics/SyntheticsClientProtocol.swift +++ b/Sources/Services/AWSSynthetics/SyntheticsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon CloudWatch Synthetics You can use Amazon CloudWatch Synthetics to continually monitor your services. You can create and manage canaries, which are modular, lightweight scripts that monitor your endpoints and APIs from the outside-in. You can set up your canaries to run 24 hours a day, once per minute. The canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. The canaries seamlessly integrate with CloudWatch ServiceLens to help you trace the causes of impacted nodes in your applications. For more information, see [Using ServiceLens to Monitor the Health of Your Applications](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ServiceLens.html) in the Amazon CloudWatch User Guide. Before you create and manage canaries, be aware of the security considerations. For more information, see [Security Considerations for Synthetics Canaries](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html). diff --git a/Sources/Services/AWSTextract/TextractClient.swift b/Sources/Services/AWSTextract/TextractClient.swift index e8b2f45bea4..0d6805004bb 100644 --- a/Sources/Services/AWSTextract/TextractClient.swift +++ b/Sources/Services/AWSTextract/TextractClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class TextractClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await TextractClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try TextractClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class TextractClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class TextractClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class TextractClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TextractClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class TextractClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TextractClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSTextract/TextractClientProtocol.swift b/Sources/Services/AWSTextract/TextractClientProtocol.swift index 5007b430006..f189b8c660e 100644 --- a/Sources/Services/AWSTextract/TextractClientProtocol.swift +++ b/Sources/Services/AWSTextract/TextractClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Textract detects and analyzes text in documents and converts it into machine-readable text. This is the API reference documentation for Amazon Textract. diff --git a/Sources/Services/AWSTimestreamQuery/TimestreamQueryClient.swift b/Sources/Services/AWSTimestreamQuery/TimestreamQueryClient.swift index 4932057cf1d..e7ecdb99cc7 100644 --- a/Sources/Services/AWSTimestreamQuery/TimestreamQueryClient.swift +++ b/Sources/Services/AWSTimestreamQuery/TimestreamQueryClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class TimestreamQueryClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await TimestreamQueryClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try TimestreamQueryClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class TimestreamQueryClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class TimestreamQueryClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class TimestreamQueryClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TimestreamQueryClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class TimestreamQueryClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TimestreamQueryClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSTimestreamQuery/TimestreamQueryClientProtocol.swift b/Sources/Services/AWSTimestreamQuery/TimestreamQueryClientProtocol.swift index a7e706f619f..677df44fa4b 100644 --- a/Sources/Services/AWSTimestreamQuery/TimestreamQueryClientProtocol.swift +++ b/Sources/Services/AWSTimestreamQuery/TimestreamQueryClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Timestream Query diff --git a/Sources/Services/AWSTimestreamWrite/TimestreamWriteClient.swift b/Sources/Services/AWSTimestreamWrite/TimestreamWriteClient.swift index c71ec103412..470a88c88a9 100644 --- a/Sources/Services/AWSTimestreamWrite/TimestreamWriteClient.swift +++ b/Sources/Services/AWSTimestreamWrite/TimestreamWriteClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class TimestreamWriteClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await TimestreamWriteClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try TimestreamWriteClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class TimestreamWriteClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class TimestreamWriteClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class TimestreamWriteClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TimestreamWriteClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class TimestreamWriteClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TimestreamWriteClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSTimestreamWrite/TimestreamWriteClientProtocol.swift b/Sources/Services/AWSTimestreamWrite/TimestreamWriteClientProtocol.swift index 4500e9e84ed..30619757e2e 100644 --- a/Sources/Services/AWSTimestreamWrite/TimestreamWriteClientProtocol.swift +++ b/Sources/Services/AWSTimestreamWrite/TimestreamWriteClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Timestream Write Amazon Timestream is a fast, scalable, fully managed time-series database service that makes it easy to store and analyze trillions of time-series data points per day. With Timestream, you can easily store and analyze IoT sensor data to derive insights from your IoT applications. You can analyze industrial telemetry to streamline equipment management and maintenance. You can also store and analyze log data and metrics to improve the performance and availability of your applications. Timestream is built from the ground up to effectively ingest, process, and store time-series data. It organizes data to optimize query processing. It automatically scales based on the volume of data ingested and on the query volume to ensure you receive optimal performance while inserting and querying data. As your data grows over time, Timestream’s adaptive query processing engine spans across storage tiers to provide fast analysis while reducing costs. diff --git a/Sources/Services/AWSTnb/TnbClient.swift b/Sources/Services/AWSTnb/TnbClient.swift index fd87c184caa..469ae4c67ba 100644 --- a/Sources/Services/AWSTnb/TnbClient.swift +++ b/Sources/Services/AWSTnb/TnbClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class TnbClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await TnbClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try TnbClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class TnbClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class TnbClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class TnbClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TnbClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class TnbClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TnbClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSTnb/TnbClientProtocol.swift b/Sources/Services/AWSTnb/TnbClientProtocol.swift index 65f001f9d3b..ee22ebee577 100644 --- a/Sources/Services/AWSTnb/TnbClientProtocol.swift +++ b/Sources/Services/AWSTnb/TnbClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services Telco Network Builder (TNB) is a network automation service that helps you deploy and manage telecom networks. AWS TNB helps you with the lifecycle management of your telecommunication network functions throughout planning, deployment, and post-deployment activities. diff --git a/Sources/Services/AWSTranscribe/TranscribeClient.swift b/Sources/Services/AWSTranscribe/TranscribeClient.swift index 9bd3eb1eb2d..bec578f7ec9 100644 --- a/Sources/Services/AWSTranscribe/TranscribeClient.swift +++ b/Sources/Services/AWSTranscribe/TranscribeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class TranscribeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await TranscribeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try TranscribeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class TranscribeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class TranscribeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class TranscribeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TranscribeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class TranscribeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TranscribeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSTranscribe/TranscribeClientProtocol.swift b/Sources/Services/AWSTranscribe/TranscribeClientProtocol.swift index 4f335956252..f6020dfcfab 100644 --- a/Sources/Services/AWSTranscribe/TranscribeClientProtocol.swift +++ b/Sources/Services/AWSTranscribe/TranscribeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Transcribe offers three main types of batch transcription: Standard, Medical, and Call Analytics. diff --git a/Sources/Services/AWSTranscribeStreaming/TranscribeStreamingClient.swift b/Sources/Services/AWSTranscribeStreaming/TranscribeStreamingClient.swift index 8b1b8c253ef..2b8887fc4d3 100644 --- a/Sources/Services/AWSTranscribeStreaming/TranscribeStreamingClient.swift +++ b/Sources/Services/AWSTranscribeStreaming/TranscribeStreamingClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class TranscribeStreamingClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await TranscribeStreamingClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try TranscribeStreamingClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class TranscribeStreamingClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class TranscribeStreamingClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class TranscribeStreamingClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TranscribeStreamingClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class TranscribeStreamingClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TranscribeStreamingClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSTranscribeStreaming/TranscribeStreamingClientProtocol.swift b/Sources/Services/AWSTranscribeStreaming/TranscribeStreamingClientProtocol.swift index 46eb2a04d52..c39e8daf584 100644 --- a/Sources/Services/AWSTranscribeStreaming/TranscribeStreamingClientProtocol.swift +++ b/Sources/Services/AWSTranscribeStreaming/TranscribeStreamingClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Transcribe streaming offers three main types of real-time transcription: Standard, Medical, and Call Analytics. diff --git a/Sources/Services/AWSTransfer/TransferClient.swift b/Sources/Services/AWSTransfer/TransferClient.swift index d44141d631e..556f803647c 100644 --- a/Sources/Services/AWSTransfer/TransferClient.swift +++ b/Sources/Services/AWSTransfer/TransferClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class TransferClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await TransferClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try TransferClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class TransferClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class TransferClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class TransferClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TransferClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class TransferClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TransferClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSTransfer/TransferClientProtocol.swift b/Sources/Services/AWSTransfer/TransferClientProtocol.swift index 72e52e8b85e..2c8ffff822b 100644 --- a/Sources/Services/AWSTransfer/TransferClientProtocol.swift +++ b/Sources/Services/AWSTransfer/TransferClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Transfer Family is a fully managed service that enables the transfer of files over the File Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) File Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon S3) or Amazon EFS. Additionally, you can use Applicability Statement 2 (AS2) to transfer files into and out of Amazon S3. Amazon Web Services helps you seamlessly migrate your file transfer workflows to Transfer Family by integrating with existing authentication systems, and providing DNS routing with Amazon Route 53 so nothing changes for your customers and partners, or their applications. With your data in Amazon S3, you can use it with Amazon Web Services for processing, analytics, machine learning, and archiving. Getting started with Transfer Family is easy since there is no infrastructure to buy and set up. diff --git a/Sources/Services/AWSTranslate/TranslateClient.swift b/Sources/Services/AWSTranslate/TranslateClient.swift index ad78556a812..25439d4c078 100644 --- a/Sources/Services/AWSTranslate/TranslateClient.swift +++ b/Sources/Services/AWSTranslate/TranslateClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class TranslateClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await TranslateClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try TranslateClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class TranslateClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class TranslateClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class TranslateClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TranslateClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class TranslateClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("TranslateClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSTranslate/TranslateClientProtocol.swift b/Sources/Services/AWSTranslate/TranslateClientProtocol.swift index 677e16e203b..a642ddc7735 100644 --- a/Sources/Services/AWSTranslate/TranslateClientProtocol.swift +++ b/Sources/Services/AWSTranslate/TranslateClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Provides translation of the input content from the source language to the target language. diff --git a/Sources/Services/AWSVPCLattice/VPCLatticeClient.swift b/Sources/Services/AWSVPCLattice/VPCLatticeClient.swift index ac80117ebf8..3ea8d9d66e9 100644 --- a/Sources/Services/AWSVPCLattice/VPCLatticeClient.swift +++ b/Sources/Services/AWSVPCLattice/VPCLatticeClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class VPCLatticeClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await VPCLatticeClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try VPCLatticeClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class VPCLatticeClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class VPCLatticeClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class VPCLatticeClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("VPCLatticeClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class VPCLatticeClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("VPCLatticeClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSVPCLattice/VPCLatticeClientProtocol.swift b/Sources/Services/AWSVPCLattice/VPCLatticeClientProtocol.swift index a1164b75ccd..0d6bc0cdd5a 100644 --- a/Sources/Services/AWSVPCLattice/VPCLatticeClientProtocol.swift +++ b/Sources/Services/AWSVPCLattice/VPCLatticeClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon VPC Lattice is a fully managed application networking service that you use to connect, secure, and monitor all of your services across multiple accounts and virtual private clouds (VPCs). Amazon VPC Lattice interconnects your microservices and legacy services within a logical boundary, so that you can discover and manage them more efficiently. For more information, see the [Amazon VPC Lattice User Guide](https://docs.aws.amazon.com/vpc-lattice/latest/ug/) diff --git a/Sources/Services/AWSVoiceID/VoiceIDClient.swift b/Sources/Services/AWSVoiceID/VoiceIDClient.swift index 881370f9411..0f14f3f02f2 100644 --- a/Sources/Services/AWSVoiceID/VoiceIDClient.swift +++ b/Sources/Services/AWSVoiceID/VoiceIDClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class VoiceIDClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await VoiceIDClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try VoiceIDClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class VoiceIDClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class VoiceIDClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class VoiceIDClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("VoiceIDClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class VoiceIDClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("VoiceIDClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSVoiceID/VoiceIDClientProtocol.swift b/Sources/Services/AWSVoiceID/VoiceIDClientProtocol.swift index 098dacde42c..765d0bf4d16 100644 --- a/Sources/Services/AWSVoiceID/VoiceIDClientProtocol.swift +++ b/Sources/Services/AWSVoiceID/VoiceIDClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Connect Voice ID provides real-time caller authentication and fraud risk detection, which make voice interactions in contact centers more secure and efficient. diff --git a/Sources/Services/AWSWAF/WAFClient.swift b/Sources/Services/AWSWAF/WAFClient.swift index 4eef18f9709..1f865194f6b 100644 --- a/Sources/Services/AWSWAF/WAFClient.swift +++ b/Sources/Services/AWSWAF/WAFClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WAFClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WAFClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WAFClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WAFClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WAFClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WAFClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WAFClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WAFClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WAFClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWAF/WAFClientProtocol.swift b/Sources/Services/AWSWAF/WAFClientProtocol.swift index 5c50fa561dc..466d8e73fab 100644 --- a/Sources/Services/AWSWAF/WAFClientProtocol.swift +++ b/Sources/Services/AWSWAF/WAFClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is AWS WAF Classic documentation. For more information, see [AWS WAF Classic](https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html) in the developer guide. For the latest version of AWS WAF, use the AWS WAFV2 API and see the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). With the latest version, AWS WAF has a single set of endpoints for regional and global use. This is the AWS WAF Classic API Reference for using AWS WAF Classic with Amazon CloudFront. The AWS WAF Classic actions and data types listed in the reference are available for protecting Amazon CloudFront distributions. You can use these actions and data types via the endpoint waf.amazonaws.com. This guide is for developers who need detailed information about the AWS WAF Classic API actions, data types, and errors. For detailed information about AWS WAF Classic features and an overview of how to use the AWS WAF Classic API, see the [AWS WAF Classic](https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html) in the developer guide. diff --git a/Sources/Services/AWSWAFRegional/WAFRegionalClient.swift b/Sources/Services/AWSWAFRegional/WAFRegionalClient.swift index e711d9f87fb..44eaddaa3fd 100644 --- a/Sources/Services/AWSWAFRegional/WAFRegionalClient.swift +++ b/Sources/Services/AWSWAFRegional/WAFRegionalClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WAFRegionalClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WAFRegionalClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WAFRegionalClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WAFRegionalClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WAFRegionalClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WAFRegionalClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WAFRegionalClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WAFRegionalClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WAFRegionalClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWAFRegional/WAFRegionalClientProtocol.swift b/Sources/Services/AWSWAFRegional/WAFRegionalClientProtocol.swift index d2bc574808e..a679fcff9c0 100644 --- a/Sources/Services/AWSWAFRegional/WAFRegionalClientProtocol.swift +++ b/Sources/Services/AWSWAFRegional/WAFRegionalClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// This is AWS WAF Classic Regional documentation. For more information, see [AWS WAF Classic](https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html) in the developer guide. For the latest version of AWS WAF, use the AWS WAFV2 API and see the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). With the latest version, AWS WAF has a single set of endpoints for regional and global use. This is the AWS WAF Regional Classic API Reference for using AWS WAF Classic with the AWS resources, Elastic Load Balancing (ELB) Application Load Balancers and API Gateway APIs. The AWS WAF Classic actions and data types listed in the reference are available for protecting Elastic Load Balancing (ELB) Application Load Balancers and API Gateway APIs. You can use these actions and data types by means of the endpoints listed in [AWS Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#waf_region). This guide is for developers who need detailed information about the AWS WAF Classic API actions, data types, and errors. For detailed information about AWS WAF Classic features and an overview of how to use the AWS WAF Classic API, see the [AWS WAF Classic](https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html) in the developer guide. diff --git a/Sources/Services/AWSWAFV2/WAFV2Client.swift b/Sources/Services/AWSWAFV2/WAFV2Client.swift index b83e6e9bed5..4dd639c150c 100644 --- a/Sources/Services/AWSWAFV2/WAFV2Client.swift +++ b/Sources/Services/AWSWAFV2/WAFV2Client.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WAFV2Client { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WAFV2ClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WAFV2ClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WAFV2Client { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WAFV2Client { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WAFV2Client { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WAFV2Client") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WAFV2Client { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WAFV2Client") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWAFV2/WAFV2ClientProtocol.swift b/Sources/Services/AWSWAFV2/WAFV2ClientProtocol.swift index d697c4953d5..ca22c633412 100644 --- a/Sources/Services/AWSWAFV2/WAFV2ClientProtocol.swift +++ b/Sources/Services/AWSWAFV2/WAFV2ClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// WAF This is the latest version of the WAF API, released in November, 2019. The names of the entities that you use to access this API, like endpoints and namespaces, all have the versioning information added, like "V2" or "v2", to distinguish from the prior version. We recommend migrating your resources to this version, because it has a number of significant improvements. If you used WAF prior to this release, you can't use this WAFV2 API to access any WAF resources that you created before. You can access your old rules, web ACLs, and other WAF resources only through the WAF Classic APIs. The WAF Classic APIs have retained the prior names, endpoints, and namespaces. For information, including how to migrate your WAF resources to this version, see the [WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to an Amazon CloudFront distribution, Amazon API Gateway REST API, Application Load Balancer, AppSync GraphQL API, Amazon Cognito user pool, or App Runner service. WAF also lets you control access to your content, to protect the Amazon Web Services resource that WAF is monitoring. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, the protected resource responds to requests with either the requested content, an HTTP 403 status code (Forbidden), or with a custom response. This API guide is for developers who need detailed information about WAF API actions, data types, and errors. For detailed information about WAF features and guidance for configuring and using WAF, see the [WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). You can make calls using the endpoints listed in [WAF endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/waf.html). diff --git a/Sources/Services/AWSWellArchitected/WellArchitectedClient.swift b/Sources/Services/AWSWellArchitected/WellArchitectedClient.swift index 6b8724dd221..8d2dc0b839a 100644 --- a/Sources/Services/AWSWellArchitected/WellArchitectedClient.swift +++ b/Sources/Services/AWSWellArchitected/WellArchitectedClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WellArchitectedClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WellArchitectedClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WellArchitectedClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WellArchitectedClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WellArchitectedClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WellArchitectedClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WellArchitectedClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WellArchitectedClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WellArchitectedClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWellArchitected/WellArchitectedClientProtocol.swift b/Sources/Services/AWSWellArchitected/WellArchitectedClientProtocol.swift index c925ce64d72..3fb87ecfc7b 100644 --- a/Sources/Services/AWSWellArchitected/WellArchitectedClientProtocol.swift +++ b/Sources/Services/AWSWellArchitected/WellArchitectedClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Well-Architected Tool This is the Well-Architected Tool API Reference. The WA Tool API provides programmatic access to the [Well-Architected Tool](http://aws.amazon.com/well-architected-tool) in the [Amazon Web Services Management Console](https://console.aws.amazon.com/wellarchitected). For information about the Well-Architected Tool, see the [Well-Architected Tool User Guide](https://docs.aws.amazon.com/wellarchitected/latest/userguide/intro.html). diff --git a/Sources/Services/AWSWisdom/WisdomClient.swift b/Sources/Services/AWSWisdom/WisdomClient.swift index 92928ee6768..d97471ff9c3 100644 --- a/Sources/Services/AWSWisdom/WisdomClient.swift +++ b/Sources/Services/AWSWisdom/WisdomClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WisdomClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WisdomClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WisdomClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WisdomClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WisdomClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WisdomClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WisdomClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WisdomClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WisdomClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWisdom/WisdomClientProtocol.swift b/Sources/Services/AWSWisdom/WisdomClientProtocol.swift index dc96aa93aaa..96a5c346673 100644 --- a/Sources/Services/AWSWisdom/WisdomClientProtocol.swift +++ b/Sources/Services/AWSWisdom/WisdomClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Connect Wisdom delivers agents the information they need to solve customer issues as they're actively speaking with customers. Agents can search across connected repositories from within their agent desktop to find answers quickly. Use Amazon Connect Wisdom to create an assistant and a knowledge base, for example, or manage content by uploading custom files. diff --git a/Sources/Services/AWSWorkDocs/WorkDocsClient.swift b/Sources/Services/AWSWorkDocs/WorkDocsClient.swift index 428834dddf3..e6edec57e4c 100644 --- a/Sources/Services/AWSWorkDocs/WorkDocsClient.swift +++ b/Sources/Services/AWSWorkDocs/WorkDocsClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WorkDocsClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WorkDocsClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WorkDocsClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WorkDocsClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WorkDocsClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WorkDocsClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkDocsClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WorkDocsClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkDocsClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWorkDocs/WorkDocsClientProtocol.swift b/Sources/Services/AWSWorkDocs/WorkDocsClientProtocol.swift index 96478df5371..459a438b0d0 100644 --- a/Sources/Services/AWSWorkDocs/WorkDocsClientProtocol.swift +++ b/Sources/Services/AWSWorkDocs/WorkDocsClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The Amazon WorkDocs API is designed for the following use cases: diff --git a/Sources/Services/AWSWorkLink/WorkLinkClient.swift b/Sources/Services/AWSWorkLink/WorkLinkClient.swift index 3de63eefece..85343dcb4fd 100644 --- a/Sources/Services/AWSWorkLink/WorkLinkClient.swift +++ b/Sources/Services/AWSWorkLink/WorkLinkClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WorkLinkClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WorkLinkClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WorkLinkClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WorkLinkClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WorkLinkClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WorkLinkClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkLinkClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WorkLinkClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkLinkClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWorkLink/WorkLinkClientProtocol.swift b/Sources/Services/AWSWorkLink/WorkLinkClientProtocol.swift index 22905a4d6ff..fd5dbfb0047 100644 --- a/Sources/Services/AWSWorkLink/WorkLinkClientProtocol.swift +++ b/Sources/Services/AWSWorkLink/WorkLinkClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon WorkLink is a cloud-based service that provides secure access to internal websites and web apps from iOS and Android phones. In a single step, your users, such as employees, can access internal websites as efficiently as they access any other public website. They enter a URL in their web browser, or choose a link to an internal website in an email. Amazon WorkLink authenticates the user's access and securely renders authorized internal web content in a secure rendering service in the AWS cloud. Amazon WorkLink doesn't download or store any internal web content on mobile devices. diff --git a/Sources/Services/AWSWorkMail/WorkMailClient.swift b/Sources/Services/AWSWorkMail/WorkMailClient.swift index 02114f153d4..0833dabc76c 100644 --- a/Sources/Services/AWSWorkMail/WorkMailClient.swift +++ b/Sources/Services/AWSWorkMail/WorkMailClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WorkMailClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WorkMailClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WorkMailClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WorkMailClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WorkMailClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WorkMailClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkMailClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WorkMailClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkMailClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWorkMail/WorkMailClientProtocol.swift b/Sources/Services/AWSWorkMail/WorkMailClientProtocol.swift index 665053a6963..a4b368534bd 100644 --- a/Sources/Services/AWSWorkMail/WorkMailClientProtocol.swift +++ b/Sources/Services/AWSWorkMail/WorkMailClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// WorkMail is a secure, managed business email and calendaring service with support for existing desktop and mobile email clients. You can access your email, contacts, and calendars using Microsoft Outlook, your browser, or other native iOS and Android email applications. You can integrate WorkMail with your existing corporate directory and control both the keys that encrypt your data and the location in which your data is stored. The WorkMail API is designed for the following scenarios: diff --git a/Sources/Services/AWSWorkMailMessageFlow/WorkMailMessageFlowClient.swift b/Sources/Services/AWSWorkMailMessageFlow/WorkMailMessageFlowClient.swift index a06722b98e4..8e53809a857 100644 --- a/Sources/Services/AWSWorkMailMessageFlow/WorkMailMessageFlowClient.swift +++ b/Sources/Services/AWSWorkMailMessageFlow/WorkMailMessageFlowClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WorkMailMessageFlowClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WorkMailMessageFlowClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WorkMailMessageFlowClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WorkMailMessageFlowClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WorkMailMessageFlowClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WorkMailMessageFlowClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkMailMessageFlowClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WorkMailMessageFlowClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkMailMessageFlowClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWorkMailMessageFlow/WorkMailMessageFlowClientProtocol.swift b/Sources/Services/AWSWorkMailMessageFlow/WorkMailMessageFlowClientProtocol.swift index fb220cae54b..c3172eab492 100644 --- a/Sources/Services/AWSWorkMailMessageFlow/WorkMailMessageFlowClientProtocol.swift +++ b/Sources/Services/AWSWorkMailMessageFlow/WorkMailMessageFlowClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// The WorkMail Message Flow API provides access to email messages as they are being sent and received by a WorkMail organization. diff --git a/Sources/Services/AWSWorkSpaces/WorkSpacesClient.swift b/Sources/Services/AWSWorkSpaces/WorkSpacesClient.swift index f3c6b8259a0..250c1c84ace 100644 --- a/Sources/Services/AWSWorkSpaces/WorkSpacesClient.swift +++ b/Sources/Services/AWSWorkSpaces/WorkSpacesClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WorkSpacesClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WorkSpacesClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WorkSpacesClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WorkSpacesClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WorkSpacesClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WorkSpacesClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkSpacesClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WorkSpacesClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkSpacesClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWorkSpaces/WorkSpacesClientProtocol.swift b/Sources/Services/AWSWorkSpaces/WorkSpacesClientProtocol.swift index e94a1e11ae1..01b846bd224 100644 --- a/Sources/Services/AWSWorkSpaces/WorkSpacesClientProtocol.swift +++ b/Sources/Services/AWSWorkSpaces/WorkSpacesClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon WorkSpaces Service Amazon WorkSpaces enables you to provision virtual, cloud-based Microsoft Windows or Amazon Linux desktops for your users, known as WorkSpaces. WorkSpaces eliminates the need to procure and deploy hardware or install complex software. You can quickly add or remove users as your needs change. Users can access their virtual desktops from multiple devices or web browsers. This API Reference provides detailed information about the actions, data types, parameters, and errors of the WorkSpaces service. For more information about the supported Amazon Web Services Regions, endpoints, and service quotas of the Amazon WorkSpaces service, see [WorkSpaces endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/wsp.html) in the Amazon Web Services General Reference. You can also manage your WorkSpaces resources using the WorkSpaces console, Command Line Interface (CLI), and SDKs. For more information about administering WorkSpaces, see the [Amazon WorkSpaces Administration Guide](https://docs.aws.amazon.com/workspaces/latest/adminguide/). For more information about using the Amazon WorkSpaces client application or web browser to access provisioned WorkSpaces, see the [Amazon WorkSpaces User Guide](https://docs.aws.amazon.com/workspaces/latest/userguide/). For more information about using the CLI to manage your WorkSpaces resources, see the [WorkSpaces section of the CLI Reference](https://docs.aws.amazon.com/cli/latest/reference/workspaces/index.html). diff --git a/Sources/Services/AWSWorkSpacesWeb/WorkSpacesWebClient.swift b/Sources/Services/AWSWorkSpacesWeb/WorkSpacesWebClient.swift index dfbdccea306..e54daea83ea 100644 --- a/Sources/Services/AWSWorkSpacesWeb/WorkSpacesWebClient.swift +++ b/Sources/Services/AWSWorkSpacesWeb/WorkSpacesWebClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class WorkSpacesWebClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await WorkSpacesWebClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try WorkSpacesWebClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class WorkSpacesWebClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class WorkSpacesWebClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class WorkSpacesWebClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkSpacesWebClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class WorkSpacesWebClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("WorkSpacesWebClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSWorkSpacesWeb/WorkSpacesWebClientProtocol.swift b/Sources/Services/AWSWorkSpacesWeb/WorkSpacesWebClientProtocol.swift index bc1e6d5dfb9..9033ec3a515 100644 --- a/Sources/Services/AWSWorkSpacesWeb/WorkSpacesWebClientProtocol.swift +++ b/Sources/Services/AWSWorkSpacesWeb/WorkSpacesWebClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// WorkSpaces Web is a low cost, fully managed WorkSpace built specifically to facilitate secure, web-based workloads. WorkSpaces Web makes it easy for customers to safely provide their employees with access to internal websites and SaaS web applications without the administrative burden of appliances or specialized client software. WorkSpaces Web provides simple policy tools tailored for user interactions, while offloading common tasks like capacity management, scaling, and maintaining browser images. diff --git a/Sources/Services/AWSXRay/XRayClient.swift b/Sources/Services/AWSXRay/XRayClient.swift index 214fb36d214..5e4d7670cc6 100644 --- a/Sources/Services/AWSXRay/XRayClient.swift +++ b/Sources/Services/AWSXRay/XRayClient.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -26,8 +26,8 @@ public class XRayClient { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await XRayClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try XRayClientConfiguration(region: region) self.init(config: config) } @@ -46,7 +46,7 @@ public class XRayClient { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -57,8 +57,9 @@ public class XRayClient { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -69,11 +70,9 @@ public class XRayClient { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("XRayClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } let resolvedRegion: String? if let region = region { @@ -82,21 +81,84 @@ public class XRayClient { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("XRayClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS diff --git a/Sources/Services/AWSXRay/XRayClientProtocol.swift b/Sources/Services/AWSXRay/XRayClientProtocol.swift index 1bc09e303fe..95523ee833f 100644 --- a/Sources/Services/AWSXRay/XRayClientProtocol.swift +++ b/Sources/Services/AWSXRay/XRayClientProtocol.swift @@ -1,6 +1,6 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! -@_spi(Internal) import AWSClientRuntime +@_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime /// Amazon Web Services X-Ray provides APIs for managing debug traces and retrieving service maps and other data created by processing those traces. diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProviderFactoryTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProviderFactoryTests.swift deleted file mode 100644 index e09ca201413..00000000000 --- a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProviderFactoryTests.swift +++ /dev/null @@ -1,213 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import ClientRuntime -import Foundation -import XCTest - -@_spi(Internal) @testable import AWSClientRuntime - -class CredentialsProviderFactoryTests: XCTestCase { - - let configuration = CredentialsProvider.Configuration(fileBasedConfigurationStore: try! CRTFiledBasedConfigurationStore()) - - let configPath = Bundle.module.path(forResource: "config", ofType: nil)! - let credentialsPath = Bundle.module.path(forResource: "credentials", ofType: nil)! - - // MARK: - Custom - - func testCustomProvider() async { - var provider = CredentialsProvider.custom(CustomProvider()) - try! await provider.configure(configuration) - let credentials = try! await provider.getCredentials() - - XCTAssertEqual(provider.identifier, "Custom") - XCTAssertEqual(credentials.accessKey, "some_access_key") - XCTAssertEqual(credentials.secret, "some_secret") - } - - // MARK: - Static - - func testStaticProvider() async { - var provider = try! CredentialsProvider.fromStatic(.init( - accessKey: "some_access_key", - secret: "some_secret" - )) - try! await provider.configure(configuration) - let credentials = try! await provider.getCredentials() - - XCTAssertEqual(provider.identifier, "Static") - XCTAssertEqual(credentials.accessKey, "some_access_key") - XCTAssertEqual(credentials.secret, "some_secret") - } - - // MARK: - Environment - - func testEnvironmentProvider() async { - setenv("AWS_ACCESS_KEY_ID", "some_access_key_a", 1) - setenv("AWS_SECRET_ACCESS_KEY", "some_secret_a", 1) - - defer { - unsetenv("AWS_ACCESS_KEY_ID") - unsetenv("AWS_SECRET_ACCESS_KEY") - } - - do { - var provider = try CredentialsProvider.fromEnv() - try await provider.configure(configuration) - let credentials = try await provider.getCredentials() - - XCTAssertEqual(provider.identifier, "Environment") - XCTAssertEqual(credentials.accessKey, "some_access_key_a") - XCTAssertEqual(credentials.secret, "some_secret_a") - } catch { - XCTFail("Failed to create credentials") - } - } - - // MARK: - Profile - - func testProfileProviderUsingDefaultProfile() async { - var provider = try! CredentialsProvider.fromProfile(.init( - configFilePath: configPath, - credentialsFilePath: credentialsPath - )) - try! await provider.configure(configuration) - let credentials = try! await provider.getCredentials() - - XCTAssertEqual(provider.identifier, "Profile") - XCTAssertEqual(credentials.accessKey, "access_key_default_cred") - XCTAssertEqual(credentials.secret, "secret_default_cred") - } - - func testProfileProviderUsingNamedProfileFromConfigFile() async { - var provider = try! CredentialsProvider.fromProfile(.init( - profileName: "credentials-provider-config-tests-profile", - configFilePath: configPath, - credentialsFilePath: credentialsPath - )) - try! await provider.configure(configuration) - let credentials = try! await provider.getCredentials() - - XCTAssertEqual(provider.identifier, "Profile") - XCTAssertEqual(credentials.accessKey, "access_key_profile_config") - XCTAssertEqual(credentials.secret, "secret_profile_config") - } - - func testProfileProviderUsingNamedProfileFromCredentialsFile() async { - var provider = try! CredentialsProvider.fromProfile(.init( - profileName: "credentials-provider-creds-tests-profile", - configFilePath: configPath, - credentialsFilePath: credentialsPath - )) - try! await provider.configure(configuration) - let credentials = try! await provider.getCredentials() - - XCTAssertEqual(provider.identifier, "Profile") - XCTAssertEqual(credentials.accessKey, "access_key_profile_cred") - XCTAssertEqual(credentials.secret, "secret_profile_cred") - } - - // MARK: - STS Assume Role - - func testSTSProvider() { - let provider = try! CredentialsProvider.fromSTS(.init( - credentialsProvider: .fromEnv(), - roleArn: "some_role_arn", - sessionName: "some_session_name" - )) - - // For now we'll lean on CRT to test the implementation of this provider - // so just assert that we created the expected provider. - // TODO: Add an integration test for this provider - XCTAssertEqual(provider.identifier, "STS Assume Role") - } - - // MARK: - STS Web Identity - - func testSTSWebIdentityProvider() { - let provider = try! CredentialsProvider.fromWebIdentity() - - // For now we'll lean on CRT to test the implementation of this provider - // so just assert that we created the expected provider. - // TODO: Add an integration test for this provider - XCTAssertEqual(provider.identifier, "STS Web Identity") - } - - // MARK: - Default Chain - - func testDefaultChain() async { - setenv("AWS_ACCESS_KEY_ID", "some_access_key_b", 1) - setenv("AWS_SECRET_ACCESS_KEY", "some_secret_b", 1) - - defer { - unsetenv("AWS_ACCESS_KEY_ID") - unsetenv("AWS_SECRET_ACCESS_KEY") - } - - do { - var provider = try CredentialsProvider.fromDefaultChain() - try await provider.configure(configuration) - let credentials = try await provider.getCredentials() - - XCTAssertEqual(provider.identifier, "Default Chain") - XCTAssertEqual(credentials.accessKey, "some_access_key_b") - XCTAssertEqual(credentials.secret, "some_secret_b") - } catch { - XCTFail("Failed to create credentials") - } - } - - // MARK: - Cached - - func testCached() async { - var counter: Int = 0 - let coreProvider = AnyCustomProvider { - counter += 1 - return .init(accessKey: "some_access_key", secret: "some_secret") - } - - var provider = try! CredentialsProvider.fromCached(.init( - source: .custom(coreProvider), - refreshTime: 2 - )) - try! await provider.configure(configuration) - - _ = try! await provider.getCredentials() - _ = try! await provider.getCredentials() - _ = try! await provider.getCredentials() - _ = try! await provider.getCredentials() - - XCTAssertEqual(counter, 1) - - try! await Task.sleep(nanoseconds: 2 * 1_000_000_000) - - let credentials = try! await provider.getCredentials() - - XCTAssertEqual(counter, 2) - XCTAssertEqual(credentials.accessKey, "some_access_key") - XCTAssertEqual(credentials.secret, "some_secret") - } -} - -// MARK: - Helpers - -struct CustomProvider: CredentialsProviding { - func getCredentials() async throws -> Credentials { - .init(accessKey: "some_access_key", secret: "some_secret") - } -} - -struct AnyCustomProvider: CredentialsProviding { - let _getCredentials: () async throws -> Credentials - init(_ _getCredentials: @escaping () async throws -> Credentials) { - self._getCredentials = _getCredentials - } - func getCredentials() async throws -> Credentials { - try await _getCredentials() - } -} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProviderTests.swift deleted file mode 100644 index e610d17d5a6..00000000000 --- a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProviderTests.swift +++ /dev/null @@ -1,117 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import ClientRuntime -import Foundation -import XCTest - -@_spi(Internal) @testable import AWSClientRuntime - -class CredentialsProviderTests: XCTestCase { - - let configuration = CredentialsProvider.Configuration(fileBasedConfigurationStore: try! CRTFiledBasedConfigurationStore()) - - let credentialsProvider = try! CredentialsProvider.fromStatic(.init( - accessKey: "some_access_key", - secret: "some_secret" - )) - - // MARK: - Configuration Tests - - func testCredentialsProviderCanOnlyBeConfiguredOnce() async { - var credentialsProviderA = credentialsProvider - - do { - try await credentialsProviderA.configure(configuration) - } catch { - XCTFail("Configuring a credentials provider should succeed the first time its configured.") - } - - do { - try await credentialsProviderA.configure(configuration) - XCTFail("Configuring a credentials provider should fail if its already been configured.") - } catch { - XCTAssertTrue(error is ClientError) - } - - // Calling confgiure on this provider should succeed - // since the original copy was never configured. - var credentialsProviderB = credentialsProvider - - do { - try await credentialsProviderB.configure(configuration) - } catch { - XCTFail("Configuring a credentials provider should succeed the first time its configured.") - } - } - - // MARK: - getCredentials Tests - - func testGetCredentialsFailsIfNotConfigured() async { - do { - let _ = try await credentialsProvider.getCredentials() - XCTFail("getCredentials should fail if the credentials provider is not configured.") - } catch { - XCTAssertTrue(error is ClientError) - } - } - - func testGetCredentialsSucceedsIfConfigured() async { - var credentialsProviderA = credentialsProvider - try! await credentialsProviderA.configure(configuration) - let credentials = try! await credentialsProviderA.getCredentials() - XCTAssertEqual(credentials.accessKey, "some_access_key") - XCTAssertEqual(credentials.secret, "some_secret") - } - - // MARK: - resolvedProvider Tests - - func testResolvedProviderDefaultsToDefaultChain() async { - let resolvedProvider = try! await CredentialsProvider.resolvedProvider( - nil, - configuration: configuration - ) - XCTAssertEqual(resolvedProvider.identifier, "Default Chain") - } - - func testResolvedProviderUsesPassedInProvider() async { - let resolvedProvider = try! await CredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: configuration - ) - XCTAssertEqual(resolvedProvider.identifier, "Static") - } - - func testResolvedProviderConfiguresTheProvider() async { - let resolvedProvider = try! await CredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: configuration - ) - let credentials = try! await resolvedProvider.getCredentials() - XCTAssertEqual(credentials.accessKey, "some_access_key") - XCTAssertEqual(credentials.secret, "some_secret") - } - - // MARK: - CRT Tests - - func testMakeWithCRTProvider() async { - let crtProvider = try! CRTCredentialsProvider.init(source: .static( - accessKey: "some_access_key", - secret: "some_secret" - )) - - var provider = CredentialsProvider.makeWithCRTCredentialsProvider(identifier: "some_id") { _configuration in - return crtProvider - } - try! await provider.configure(self.configuration) - - let credentials = try! await provider.getCredentials() - XCTAssertEqual(credentials.accessKey, "some_access_key") - XCTAssertEqual(credentials.secret, "some_secret") - XCTAssertEqual(provider.identifier, "some_id") - } -} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/CachedCredentialsProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/CachedCredentialsProviderTests.swift new file mode 100644 index 00000000000..88dddd69355 --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/CachedCredentialsProviderTests.swift @@ -0,0 +1,42 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime +import Foundation +import XCTest + +@_spi(FileBasedConfig) @testable import AWSClientRuntime + +class CachedCredentialsProviderTests: XCTestCase { + func testGetCredentials() async { + var counter: Int = 0 + let coreProvider = MockCredentialsProvider { + counter += 1 + return .init(accessKey: "some_access_key", secret: "some_secret") + } + + let subject = try! CachedCredentialsProvider( + source: coreProvider, + refreshTime: 1 + ) + + _ = try! await subject.getCredentials() + _ = try! await subject.getCredentials() + _ = try! await subject.getCredentials() + _ = try! await subject.getCredentials() + + XCTAssertEqual(counter, 1) + + try! await Task.sleep(nanoseconds: 1 * 1_000_000_000) + + let credentials = try! await subject.getCredentials() + + XCTAssertEqual(counter, 2) + XCTAssertEqual(credentials.accessKey, "some_access_key") + XCTAssertEqual(credentials.secret, "some_secret") + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/CustomCredentialsProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/CustomCredentialsProviderTests.swift new file mode 100644 index 00000000000..a9496b8f8b4 --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/CustomCredentialsProviderTests.swift @@ -0,0 +1,23 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime +import Foundation +import XCTest + +@_spi(FileBasedConfig) @testable import AWSClientRuntime + +class CustomCredentialsProviderTests: XCTestCase { + func testGetCredentials() async { + let mockProvider = MockCredentialsProvider() + let subject = try! CustomCredentialsProvider(mockProvider) + let credentials = try! await subject.getCredentials() + + XCTAssertEqual(credentials.accessKey, "some_access_key") + XCTAssertEqual(credentials.secret, "some_secret") + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/DefaultChainCredentialsProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/DefaultChainCredentialsProviderTests.swift new file mode 100644 index 00000000000..3feb55baee4 --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/DefaultChainCredentialsProviderTests.swift @@ -0,0 +1,34 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime +import Foundation +import XCTest + +@_spi(FileBasedConfig) @testable import AWSClientRuntime + +class DefaultChainCredentialsProviderTests: XCTestCase { + func testGetCredentials() async { + setenv("AWS_ACCESS_KEY_ID", "some_access_key_b", 1) + setenv("AWS_SECRET_ACCESS_KEY", "some_secret_b", 1) + + defer { + unsetenv("AWS_ACCESS_KEY_ID") + unsetenv("AWS_SECRET_ACCESS_KEY") + } + + do { + let subject = try await DefaultChainCredentialsProvider() + let credentials = try await subject.getCredentials() + + XCTAssertEqual(credentials.accessKey, "some_access_key_b") + XCTAssertEqual(credentials.secret, "some_secret_b") + } catch { + XCTFail("Failed to create credentials") + } + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/EnvironmentCredentialsProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/EnvironmentCredentialsProviderTests.swift new file mode 100644 index 00000000000..f170633a44f --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/EnvironmentCredentialsProviderTests.swift @@ -0,0 +1,34 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime +import Foundation +import XCTest + +@_spi(FileBasedConfig) @testable import AWSClientRuntime + +class EnvironmentCredentialsProviderTests: XCTestCase { + func testGetCredentials() async { + setenv("AWS_ACCESS_KEY_ID", "some_access_key_a", 1) + setenv("AWS_SECRET_ACCESS_KEY", "some_secret_a", 1) + + defer { + unsetenv("AWS_ACCESS_KEY_ID") + unsetenv("AWS_SECRET_ACCESS_KEY") + } + + do { + let subject = try EnvironmentCredentialsProvider() + let credentials = try await subject.getCredentials() + + XCTAssertEqual(credentials.accessKey, "some_access_key_a") + XCTAssertEqual(credentials.secret, "some_secret_a") + } catch { + XCTFail("Failed to create credentials") + } + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/ProfileCredentialsProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/ProfileCredentialsProviderTests.swift new file mode 100644 index 00000000000..5ed733da41a --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/ProfileCredentialsProviderTests.swift @@ -0,0 +1,52 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime +import Foundation +import XCTest + +@_spi(FileBasedConfig) @testable import AWSClientRuntime + +class ProfileCredentialsProviderTests: XCTestCase { + let configPath = Bundle.module.path(forResource: "config", ofType: nil)! + let credentialsPath = Bundle.module.path(forResource: "credentials", ofType: nil)! + + func testGetCredentialsWithDefaultProfile() async { + let subject = try! await ProfileCredentialsProvider( + configFilePath: configPath, + credentialsFilePath: credentialsPath + ) + let credentials = try! await subject.getCredentials() + + XCTAssertEqual(credentials.accessKey, "access_key_default_cred") + XCTAssertEqual(credentials.secret, "secret_default_cred") + } + + func testGetCredentialsWithNamedProfileFromConfigFile() async { + let subject = try! await ProfileCredentialsProvider( + profileName: "credentials-provider-config-tests-profile", + configFilePath: configPath, + credentialsFilePath: credentialsPath + ) + let credentials = try! await subject.getCredentials() + + XCTAssertEqual(credentials.accessKey, "access_key_profile_config") + XCTAssertEqual(credentials.secret, "secret_profile_config") + } + + func testGetCredentialsWithNamedProfileFromCredentialsFile() async { + let subject = try! await ProfileCredentialsProvider( + profileName: "credentials-provider-creds-tests-profile", + configFilePath: configPath, + credentialsFilePath: credentialsPath + ) + let credentials = try! await subject.getCredentials() + + XCTAssertEqual(credentials.accessKey, "access_key_profile_cred") + XCTAssertEqual(credentials.secret, "secret_profile_cred") + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/STSAssumeRoleCredentialsProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/STSAssumeRoleCredentialsProviderTests.swift new file mode 100644 index 00000000000..fcbc9b0d283 --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/STSAssumeRoleCredentialsProviderTests.swift @@ -0,0 +1,27 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime +import Foundation +import XCTest + +@_spi(FileBasedConfig) @testable import AWSClientRuntime + +class STSAssumeRoleCredentialsProviderTests: XCTestCase { + func testInit() { + // For now we'll lean on CRT to test the implementation of this provider + // so just assert that we created the provider without crashing. + // Note: The underlying CRT provider throws an error if the role is invalid, + // so we'll assert that is the case here since mocking out a valid STS Assume Role is out scope for now. + // TODO: Add an integration test for this provider + XCTAssertThrowsError(try STSAssumeRoleCredentialsProvider( + credentialsProvider: try EnvironmentCredentialsProvider(), + roleArn: "invalid-role", + sessionName: "some-session" + )) + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/STSWedIdentityCredentialsProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/STSWedIdentityCredentialsProviderTests.swift new file mode 100644 index 00000000000..9f3bf3f3203 --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/STSWedIdentityCredentialsProviderTests.swift @@ -0,0 +1,28 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime +import Foundation +import XCTest + +@_spi(FileBasedConfig) @testable import AWSClientRuntime + +class STSWebIdentityCredentialsProviderTests: XCTestCase { + func testInit() async { + // For now we'll lean on CRT to test the implementation of this provider + // so just assert that we created the provider without crashing. + // Note: The underlying CRT provider throws an error if the role is invalid, + // so we'll assert that is the case here since mocking out a valid STS Web Identity is out scope for now. + // TODO: Add an integration test for this provider + do { + _ = try await STSWebIdentityCredentialsProvider() + XCTFail("The above should throw an error.") + } catch { + + } + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/StaticCredentialsProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/StaticCredentialsProviderTests.swift new file mode 100644 index 00000000000..79d687dce83 --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidersTests/StaticCredentialsProviderTests.swift @@ -0,0 +1,25 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime +import Foundation +import XCTest + +@_spi(FileBasedConfig) @testable import AWSClientRuntime + +class StaticCredentialsProviderTests: XCTestCase { + func testGetCredentials() async { + let subject = try! StaticCredentialsProvider(.init( + accessKey: "some_access_key", + secret: "some_secret" + )) + let credentials = try! await subject.getCredentials() + + XCTAssertEqual(credentials.accessKey, "some_access_key") + XCTAssertEqual(credentials.secret, "some_secret") + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidingTests.swift b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidingTests.swift new file mode 100644 index 00000000000..8442b2a48d1 --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/CredentialsProvidingTests.swift @@ -0,0 +1,28 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import Foundation +import XCTest + +@testable import AWSClientRuntime + +class CredentialsProvidingTests: XCTestCase { + + func testGetCRTCredentialsWhenSelfIsBackedByCRT() { + let subject = try! EnvironmentCredentialsProvider() + let result = try! subject.getCRTCredentialsProvider() + XCTAssertIdentical(result, subject.crtCredentialsProvider) + } + + func testGetCRTCredentialsWhenSelfIsNotBackedByCRT() async { + let subject = MockCredentialsProvider() + let provider = try! subject.getCRTCredentialsProvider() + let credentials = try! await provider.getCredentials() + XCTAssertEqual(credentials.getAccessKey(), "some_access_key") + XCTAssertEqual(credentials.getSecret(), "some_secret") + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/Auth/Mocks/MockCredentialsProvider.swift b/Tests/Core/AWSClientRuntimeTests/Auth/Mocks/MockCredentialsProvider.swift new file mode 100644 index 00000000000..bafaaf3fba1 --- /dev/null +++ b/Tests/Core/AWSClientRuntimeTests/Auth/Mocks/MockCredentialsProvider.swift @@ -0,0 +1,30 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +import ClientRuntime +import Foundation +import XCTest + +@_spi(FileBasedConfig) @testable import AWSClientRuntime + +struct MockCredentialsProvider: CredentialsProviding { + let _getCredentials: () async throws -> Credentials + init(_ _getCredentials: @escaping () async throws -> Credentials) { + self._getCredentials = _getCredentials + } + init() { + self._getCredentials = { + Credentials( + accessKey: "some_access_key", + secret: "some_secret" + ) + } + } + func getCredentials() async throws -> Credentials { + try await _getCredentials() + } +} diff --git a/Tests/Core/AWSClientRuntimeTests/FileBasedConfiguration/FileBasedConfigurationStoreTests.swift b/Tests/Core/AWSClientRuntimeTests/FileBasedConfiguration/FileBasedConfigurationStoreTests.swift deleted file mode 100644 index 661375b9b58..00000000000 --- a/Tests/Core/AWSClientRuntimeTests/FileBasedConfiguration/FileBasedConfigurationStoreTests.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import Foundation -import XCTest - -@_spi(Internal) @testable import AWSClientRuntime - -class FileBasedConfigurationStoreTests: XCTestCase { - let store = try! CRTFiledBasedConfigurationStore() - - let configPath = Bundle.module.path(forResource: "file_based_config_tests", ofType: nil) - - func testStore() async { - let config = try! await store.fileBasedConfiguration( - configFilePath: configPath, - credentialsFilePath: configPath - ) - XCTAssertNotNil(config) - - let defaultSection = config?.section(for: "default") - XCTAssertNotNil(defaultSection) - XCTAssertEqual( - defaultSection?.string(for: "one-number"), - "1" - ) - } -} diff --git a/Tests/Core/AWSClientRuntimeTests/FileBasedConfiguration/FileBasedConfigurationTests.swift b/Tests/Core/AWSClientRuntimeTests/FileBasedConfiguration/FileBasedConfigurationTests.swift index c8a61be325d..2cf0fbe75c2 100644 --- a/Tests/Core/AWSClientRuntimeTests/FileBasedConfiguration/FileBasedConfigurationTests.swift +++ b/Tests/Core/AWSClientRuntimeTests/FileBasedConfiguration/FileBasedConfigurationTests.swift @@ -8,7 +8,7 @@ import Foundation import XCTest -@_spi(Internal) @testable import AWSClientRuntime +@_spi(FileBasedConfig) @testable import AWSClientRuntime class FileBasedConfigurationTests: XCTestCase { let configPath = Bundle.module.path(forResource: "file_based_config_tests", ofType: nil) diff --git a/Tests/Core/AWSClientRuntimeTests/Regions/DefaultRegionResolverTests.swift b/Tests/Core/AWSClientRuntimeTests/Regions/DefaultRegionResolverTests.swift index 80637051df3..46cfc723fd3 100644 --- a/Tests/Core/AWSClientRuntimeTests/Regions/DefaultRegionResolverTests.swift +++ b/Tests/Core/AWSClientRuntimeTests/Regions/DefaultRegionResolverTests.swift @@ -8,12 +8,16 @@ import ClientRuntime import SmithyTestUtil import XCTest -@_spi(Internal) @testable import AWSClientRuntime +@_spi(FileBasedConfig) @testable import AWSClientRuntime class DefaultRegionResolverTests: XCTestCase { let configPath = Bundle.module.path(forResource: "profile_region_provider_tests", ofType: nil)! + let fileBasedConfigProvider: FileBasedConfigurationProviding = { configPath, credentialsPath in + try CRTFileBasedConfiguration.make(configFilePath: configPath, credentialsFilePath: credentialsPath) + } + func testItResolvesFromEnvironment() async { setenv("AWS_REGION", "us-west-1", 1) defer { @@ -21,9 +25,8 @@ class DefaultRegionResolverTests: XCTestCase { } do { - let store = try CRTFiledBasedConfigurationStore() let resolver = try DefaultRegionResolver( - fileBasedConfigurationProvider: store + fileBasedConfigurationProvider: fileBasedConfigProvider ) let region = await resolver.resolveRegion() XCTAssertEqual(region, "us-west-1") @@ -39,9 +42,8 @@ class DefaultRegionResolverTests: XCTestCase { } do { - let store = try CRTFiledBasedConfigurationStore() let resolver = try DefaultRegionResolver( - fileBasedConfigurationProvider: store + fileBasedConfigurationProvider: fileBasedConfigProvider ) let region = await resolver.resolveRegion() XCTAssertEqual(region, "us-east-2") diff --git a/Tests/Core/AWSClientRuntimeTests/Regions/ProfileRegionProviderTests.swift b/Tests/Core/AWSClientRuntimeTests/Regions/ProfileRegionProviderTests.swift index b022ac45395..61fca56a22e 100644 --- a/Tests/Core/AWSClientRuntimeTests/Regions/ProfileRegionProviderTests.swift +++ b/Tests/Core/AWSClientRuntimeTests/Regions/ProfileRegionProviderTests.swift @@ -8,17 +8,19 @@ import ClientRuntime import SmithyTestUtil import XCTest -@_spi(Internal) @testable import AWSClientRuntime +@_spi(FileBasedConfig) @testable import AWSClientRuntime class ProfileRegionProviderTests: XCTestCase { let configPath = Bundle.module.path(forResource: "profile_region_provider_tests", ofType: nil)! - let store = try! CRTFiledBasedConfigurationStore() + let fileBasedConfigProvider: FileBasedConfigurationProviding = { configPath, credentialsPath in + try CRTFileBasedConfiguration.make(configFilePath: configPath, credentialsFilePath: credentialsPath) + } func testProfileRegionProviderUsesDefaultProfileWhenNil() async { let provider = ProfileRegionProvider( - fileBasedConfigurationProvider: store, + fileBasedConfigurationProvider: fileBasedConfigProvider, configFilePath: configPath ) let region = try! await provider.resolveRegion() @@ -27,7 +29,7 @@ class ProfileRegionProviderTests: XCTestCase { func testProfileRegionProviderUsesPassedInProfile() async { let provider = ProfileRegionProvider( - fileBasedConfigurationProvider: store, + fileBasedConfigurationProvider: fileBasedConfigProvider, profileName: "west", configFilePath: configPath ) @@ -37,7 +39,9 @@ class ProfileRegionProviderTests: XCTestCase { func testProfileRegionProviderWorksWithCredentialsFile() async { let provider = ProfileRegionProvider( - fileBasedConfigurationProvider: store, + fileBasedConfigurationProvider: { configPath, credentialsPath in + try CRTFileBasedConfiguration(configFilePath: configPath, credentialsFilePath: credentialsPath) + }, credentialsFilePath: configPath ) let region = try! await provider.resolveRegion() diff --git a/Tests/Core/AWSClientRuntimeTests/Utils/Cache/FunctionCacheTests.swift b/Tests/Core/AWSClientRuntimeTests/Utils/Cache/FunctionCacheTests.swift deleted file mode 100644 index 7b569f96df4..00000000000 --- a/Tests/Core/AWSClientRuntimeTests/Utils/Cache/FunctionCacheTests.swift +++ /dev/null @@ -1,73 +0,0 @@ -// -// Copyright Amazon.com Inc. or its affiliates. -// All Rights Reserved. -// -// SPDX-License-Identifier: Apache-2.0 -// - -import Foundation -import XCTest - -@testable import AWSClientRuntime - -class FunctionCacheTests: XCTestCase { - - func testFunctionCacheReturnsCachedResultForSameInputs() async { - var counter: Int = 0 - let cache = FunctionCache { - counter += 1 - return $0.uppercased() - } - - let input = "hello swift" - - for _ in 1...20 { - let ouput = try! await cache.output(for: input) - XCTAssertEqual(ouput, "HELLO SWIFT") - } - - XCTAssertEqual(counter, 1) - } - - func testFunctionCacheExecutesFunctionForNewInputs() async { - var counter: Int = 0 - let cache = FunctionCache { - counter += 1 - return $0.uppercased() - } - - let input = "hello swift" - - for i in 1...20 { - let ouput = try! await cache.output(for: input + "\(i)") - XCTAssertEqual(ouput, "HELLO SWIFT\(i)") - } - - XCTAssertEqual(counter, 20) - } - - func testFunctionCacheReusesTheExistingTaskForSubsequentCallForSameInputs() async { - var counter: Int = 0 - - let cache = FunctionCache { - try! await Task.sleep(nanoseconds: 1 * 1_000_000_000) - counter += 1 - return $0.uppercased() - } - - let input = "hello swift" - - await withTaskGroup(of: String.self) { group in - for _ in (1...20) { - group.addTask { - try! await cache.output(for: input) - } - } - for await result in group { - XCTAssertEqual(result, "HELLO SWIFT") - } - } - - XCTAssertEqual(counter, 1) - } -} diff --git a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSClientRuntimeTypes.kt b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSClientRuntimeTypes.kt index d9adbae9300..500781d41e0 100644 --- a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSClientRuntimeTypes.kt +++ b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSClientRuntimeTypes.kt @@ -39,8 +39,7 @@ object AWSClientRuntimeTypes { val UserAgentMiddleware = runtimeSymbol("UserAgentMiddleware") val EndpointResolverMiddleware = runtimeSymbol("EndpointResolverMiddleware") val FrameworkMetadata = runtimeSymbol("FrameworkMetadata") - val CredentialsProvider = runtimeSymbol("CredentialsProvider") - val AWSCredentialsProvider = runtimeSymbol("AWSCredentialsProvider") + val CredentialsProviding = runtimeSymbol("CredentialsProviding") val AWSClientConfiguration = runtimeSymbol("AWSClientConfiguration") val AWSEndpoint = runtimeSymbol("AWSEndpoint") val Partition = runtimeSymbol("Partition") diff --git a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSHttpProtocolCustomizations.kt b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSHttpProtocolCustomizations.kt index 78e948d259f..a259add536e 100644 --- a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSHttpProtocolCustomizations.kt +++ b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSHttpProtocolCustomizations.kt @@ -52,7 +52,7 @@ abstract class AWSHttpProtocolCustomizations : DefaultHttpProtocolCustomizations writer: SwiftWriter, serviceConfig: ServiceConfig ): HttpProtocolServiceClient { - writer.addImport(AWSSwiftDependency.AWS_CLIENT_RUNTIME.target, false, "Internal") + writer.addImport(AWSSwiftDependency.AWS_CLIENT_RUNTIME.target, false, "FileBasedConfig") val clientProperties = getClientProperties() return AWSHttpProtocolServiceClient(ctx, writer, clientProperties, serviceConfig) } diff --git a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSHttpProtocolServiceClient.kt b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSHttpProtocolServiceClient.kt index f6420849bf9..93bfc9f64f3 100644 --- a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSHttpProtocolServiceClient.kt +++ b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSHttpProtocolServiceClient.kt @@ -19,8 +19,8 @@ class AWSHttpProtocolServiceClient( private val serviceConfig: ServiceConfig ) : HttpProtocolServiceClient(ctx, writer, properties, serviceConfig) { override fun renderConvenienceInit(serviceSymbol: Symbol) { - writer.openBlock("public convenience init(region: Swift.String) async throws {", "}") { - writer.write("let config = try await ${serviceConfig.typeName}(region: region)") + writer.openBlock("public convenience init(region: Swift.String) throws {", "}") { + writer.write("let config = try ${serviceConfig.typeName}(region: region)") writer.write("self.init(config: config)") } writer.write("") diff --git a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSServiceConfig.kt b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSServiceConfig.kt index 9e85c091af5..a05ca3c8fe4 100644 --- a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSServiceConfig.kt +++ b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSServiceConfig.kt @@ -31,7 +31,7 @@ const val USE_DUAL_STACK_CONFIG_NAME = "useDualStack" const val RUNTIME_CONFIG_NAME = "runtimeConfig" const val ENDPOINT_CONFIG_NAME = "endpoint" -const val FILE_BASED_CONFIG_LOCAL_NAME = "fileBasedConfigurationStore" +const val FILE_BASED_CONFIG_LOCAL_NAME = "fileBasedConfig" val runtimeConfig = ConfigField( RUNTIME_CONFIG_NAME, @@ -53,11 +53,45 @@ class AWSServiceConfig(writer: SwiftWriter, val ctx: ProtocolGenerator.Generatio // aws configs including service specific configs var awsConfigs = (otherConfigs + serviceConfigs + runtimeConfig).sortedBy { it.memberName } - writer.openBlock("public init(", ") async throws {") { + renderAsyncInitializer(awsConfigs) + writer.write("") + renderSyncInitializer(awsConfigs) + writer.write("") + renderDesignatedInitializer(runtimeConfigs, awsConfigs) + writer.write("") + + // partitionID computed var + writer.openBlock("public var partitionID: String? {", "}") { + writer.write("return \"\$L - \\(region ?? \"\")\"", serviceName) + } + } + + fun renderDesignatedInitializer( + runtimeConfigs: List, + awsConfigs: List + ) { + writer.writeDocs("Internal designated init") + writer.writeDocs("All convenience inits should call this") + writer.openBlock("public init(", ") throws {") { awsConfigs.forEachIndexed { index, config -> - val terminator = if (index != awsConfigs.lastIndex) ", " else "" - writer.write("${config.memberName}: ${config.paramFormatter}$terminator", config.type) + when (config.memberName) { + // Skip regionResolver since region is required + REGION_RESOLVER -> {} + + // We'll always do the runtimeConfig last, so skip here + RUNTIME_CONFIG_NAME -> {} + + CREDENTIALS_PROVIDER_CONFIG_NAME -> { + // Render non-optional + writer.write("\$L: \$N,", config.memberName, config.type) + } + else -> { + writer.write("\$L: \$T,", config.memberName, config.type) + } + } } + + writer.write("\$L: \$T", RUNTIME_CONFIG_NAME, ClientRuntimeTypes.Core.SDKRuntimeConfiguration) } writer.indent() @@ -66,34 +100,8 @@ class AWSServiceConfig(writer: SwiftWriter, val ctx: ProtocolGenerator.Generatio writer.write("let \$L = try \$L ?? \$N(\"\$L\")", RUNTIME_CONFIG_NAME, RUNTIME_CONFIG_NAME, ClientRuntimeTypes.Core.DefaultSDKRuntimeConfiguration, serviceName) writer.write("") - // Create our file based config store - writer.write("let \$L = try CRTFiledBasedConfigurationStore()", FILE_BASED_CONFIG_LOCAL_NAME) - writer.write("") - - // Resolve the region resolver - writer.write("let resolvedRegionResolver = try \$L ?? DefaultRegionResolver(fileBasedConfigurationProvider: \$L)", REGION_RESOLVER, FILE_BASED_CONFIG_LOCAL_NAME) - writer.write("") - - // Resolve the region - writer.write("let resolvedRegion: String?") - writer.openBlock("if let region = region {", "} else {") { - writer.write("resolvedRegion = region") - } - writer.indent() - writer.write("resolvedRegion = await resolvedRegionResolver.resolveRegion()") - writer.dedent() - writer.write("}") - writer.write("") - // Resolve the signing region - writer.write("let resolvedSigningRegion = signingRegion ?? resolvedRegion") - writer.write("") - - // Resolve the credentials provider - writer.openBlock("let resolvedCredentialProvider = try await \$N.resolvedProvider(", ")", AWSClientRuntimeTypes.Core.AWSCredentialsProvider) { - writer.write("\$L,", CREDENTIALS_PROVIDER_CONFIG_NAME) - writer.write("configuration: .init(fileBasedConfigurationStore: \$L)", FILE_BASED_CONFIG_LOCAL_NAME) - } + writer.write("let resolvedSigningRegion = \$L ?? \$L", SIGNING_REGION_CONFIG_NAME, REGION_CONFIG_NAME) writer.write("") // Resolve the endpointsResolver @@ -102,20 +110,13 @@ class AWSServiceConfig(writer: SwiftWriter, val ctx: ProtocolGenerator.Generatio awsConfigs.forEach { when (it.memberName) { - CREDENTIALS_PROVIDER_CONFIG_NAME -> { - writer.write("self.\$L = resolvedCredentialProvider", it.memberName) - } - ENDPOINT_RESOLVER -> { writer.write("self.\$L = resolvedEndpointsResolver", it.memberName) } REGION_RESOLVER -> { - writer.write("self.\$L = resolvedRegionResolver", it.memberName) - } - - REGION_CONFIG_NAME -> { - writer.write("self.\$L = resolvedRegion", it.memberName) + writer.write("// TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver.") + writer.write("self.\$L = nil", it.memberName) } SIGNING_REGION_CONFIG_NAME -> { @@ -138,12 +139,134 @@ class AWSServiceConfig(writer: SwiftWriter, val ctx: ProtocolGenerator.Generatio } writer.dedent().write("}") + } + + fun renderAsyncInitializer( + awsConfigs: List + ) { + writer.writeDocs("Creates a configuration asynchronously") + writer.openBlock("public convenience init(", ") async throws {") { + awsConfigs.forEachIndexed { index, config -> + val terminator = if (index != awsConfigs.lastIndex) ", " else "" + writer.write("${config.memberName}: ${config.paramFormatter}$terminator", config.type) + } + } + writer.indent() + + // Create our file based config + writer.write("let \$L = try await CRTFileBasedConfiguration.makeAsync()", FILE_BASED_CONFIG_LOCAL_NAME) writer.write("") - // partitionID computed var - writer.openBlock("public var partitionID: String? {", "}") { - writer.write("return \"\$L - \\(region ?? \"\")\"", serviceName) + // Resolve the region resolver + writer.write("let resolvedRegionResolver = try \$L ?? DefaultRegionResolver { _, _ in \$L }", REGION_RESOLVER, FILE_BASED_CONFIG_LOCAL_NAME) + writer.write("") + + // Resolve the region + writer.write("let resolvedRegion: String?") + writer.openBlock("if let \$L = \$L {", "} else {", REGION_CONFIG_NAME, REGION_CONFIG_NAME) { + writer.write("resolvedRegion = \$L", REGION_CONFIG_NAME) + } + writer.indent() + writer.write("resolvedRegion = await resolvedRegionResolver.resolveRegion()") + writer.dedent() + writer.write("}") + writer.write("") + + // Resolve the credentials provider + writer.write("let resolvedCredentialsProvider: \$N", AWSClientRuntimeTypes.Core.CredentialsProviding) + writer.openBlock("if let \$L = \$L {", "} else {", CREDENTIALS_PROVIDER_CONFIG_NAME, CREDENTIALS_PROVIDER_CONFIG_NAME) { + writer.write("resolvedCredentialsProvider = \$L", CREDENTIALS_PROVIDER_CONFIG_NAME) + } + writer.indent() + writer.write("resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: \$L)", FILE_BASED_CONFIG_LOCAL_NAME) + writer.dedent() + writer.write("}") + writer.write("") + + writer.openBlock("try self.init(", ")") { + awsConfigs.forEach { + when (it.memberName) { + CREDENTIALS_PROVIDER_CONFIG_NAME -> { + writer.write("\$L: resolvedCredentialsProvider,", it.memberName) + } + + REGION_CONFIG_NAME -> { + writer.write("\$L: resolvedRegion,", it.memberName) + } + + // Skip, region should already be resolved + REGION_RESOLVER -> {} + + // Skip, we'll always do runtime config last + RUNTIME_CONFIG_NAME -> {} + + else -> { + writer.write("\$L: \$L,", it.memberName, it.memberName) + } + } + } + writer.write("\$L: \$L", RUNTIME_CONFIG_NAME, RUNTIME_CONFIG_NAME) + } + + writer.dedent().write("}") + } + + fun renderSyncInitializer( + awsConfigs: List + ) { + writer.openBlock("public convenience init(", ") throws {") { + writer.write("\$L: \$N,", REGION_CONFIG_NAME, SwiftTypes.String) + + awsConfigs.forEachIndexed { index, config -> + when (config.memberName) { + // Skip, region is handled above + REGION_CONFIG_NAME -> {} + + // Skip, region is required and so no resolver is needed + REGION_RESOLVER -> {} + + else -> { + val terminator = if (index != awsConfigs.lastIndex) ", " else "" + writer.write("${config.memberName}: ${config.paramFormatter}$terminator", config.type) + } + } + } + } + writer.indent() + + writer.write("let resolvedCredentialsProvider: CredentialsProviding") + writer.openBlock("if let \$L = \$L {", "} else {", CREDENTIALS_PROVIDER_CONFIG_NAME, CREDENTIALS_PROVIDER_CONFIG_NAME) { + writer.write("resolvedCredentialsProvider = \$L", CREDENTIALS_PROVIDER_CONFIG_NAME) } + writer.indent() + writer.write("let \$L = try CRTFileBasedConfiguration.make()", FILE_BASED_CONFIG_LOCAL_NAME) + writer.write("resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: \$L)", FILE_BASED_CONFIG_LOCAL_NAME) + writer.dedent() + writer.write("}") + writer.write("") + + writer.openBlock("try self.init(", ")") { + awsConfigs.forEach { + when (it.memberName) { + CREDENTIALS_PROVIDER_CONFIG_NAME -> { + writer.write("\$L: resolvedCredentialsProvider,", it.memberName) + } + + // Skip, region should already be resolved + REGION_RESOLVER -> {} + + // Skip, we'll always do runtime config last + RUNTIME_CONFIG_NAME -> {} + + else -> { + writer.write("\$L: \$L,", it.memberName, it.memberName) + } + } + } + writer.write("\$L: \$L", RUNTIME_CONFIG_NAME, RUNTIME_CONFIG_NAME) + } + + writer.dedent().write("}") } override fun otherRuntimeConfigProperties(): List { @@ -151,7 +274,7 @@ class AWSServiceConfig(writer: SwiftWriter, val ctx: ProtocolGenerator.Generatio ConfigField(ENDPOINT_CONFIG_NAME, SwiftTypes.String, "\$T"), ConfigField( CREDENTIALS_PROVIDER_CONFIG_NAME, - AWSClientRuntimeTypes.Core.CredentialsProvider, + AWSClientRuntimeTypes.Core.CredentialsProviding, documentation = "The credentials provider to use to authenticate requests." ), ConfigField(REGION_CONFIG_NAME, SwiftTypes.String, "\$T"), diff --git a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/customization/ServiceGeneratorIntegration.kt b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/customization/ServiceGeneratorIntegration.kt index 1a710410f82..05ee4c56e77 100644 --- a/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/customization/ServiceGeneratorIntegration.kt +++ b/codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/customization/ServiceGeneratorIntegration.kt @@ -19,7 +19,7 @@ class ServiceGeneratorIntegration : SwiftIntegration { override val sectionWriters: List = listOf( SectionWriterBinding(ServiceGenerator.ConfigurationProtocolSectionId) { writer, _ -> - writer.addImport(AWSClientRuntimeTypes.Core.AWSClientConfiguration, "Internal") + writer.addImport(AWSClientRuntimeTypes.Core.AWSClientConfiguration, "FileBasedConfig") val protocolGenerationContext = writer.getContext("protocolGenerationContext") as? ProtocolGenerator.GenerationContext protocolGenerationContext?.let { diff --git a/codegen/smithy-aws-swift-codegen/src/test/kotlin/software/amazon/smithy/aws/swift/codegen/RestJsonProtocolGeneratorTests.kt b/codegen/smithy-aws-swift-codegen/src/test/kotlin/software/amazon/smithy/aws/swift/codegen/RestJsonProtocolGeneratorTests.kt index 6bb040a99af..4f56b2acc88 100644 --- a/codegen/smithy-aws-swift-codegen/src/test/kotlin/software/amazon/smithy/aws/swift/codegen/RestJsonProtocolGeneratorTests.kt +++ b/codegen/smithy-aws-swift-codegen/src/test/kotlin/software/amazon/smithy/aws/swift/codegen/RestJsonProtocolGeneratorTests.kt @@ -76,7 +76,7 @@ class RestJsonProtocolGeneratorTests { contents.shouldSyntacticSanityCheck() val expectedContents = """ - @_spi(Internal) import AWSClientRuntime + @_spi(FileBasedConfig) import AWSClientRuntime import ClientRuntime import Foundation import Logging @@ -102,8 +102,8 @@ class RestJsonProtocolGeneratorTests { self.config = config } - public convenience init(region: Swift.String) async throws { - let config = try await ExampleClientConfiguration(region: region) + public convenience init(region: Swift.String) throws { + let config = try ExampleClientConfiguration(region: region) self.init(config: config) } @@ -122,7 +122,7 @@ class RestJsonProtocolGeneratorTests { public var logger: ClientRuntime.LogAgent public var retryer: ClientRuntime.SDKRetryer - public var credentialsProvider: AWSClientRuntime.CredentialsProvider + public var credentialsProvider: AWSClientRuntime.CredentialsProviding public var endpoint: Swift.String? public var frameworkMetadata: AWSClientRuntime.FrameworkMetadata? public var region: Swift.String? @@ -133,8 +133,9 @@ class RestJsonProtocolGeneratorTests { public var endpointResolver: EndpointResolver - public init( - credentialsProvider: AWSClientRuntime.CredentialsProvider? = nil, + /// Creates a configuration asynchronously + public convenience init( + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, endpoint: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, @@ -145,12 +146,10 @@ class RestJsonProtocolGeneratorTests { useDualStack: Swift.Bool? = nil, useFIPS: Swift.Bool? = nil ) async throws { - let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ExampleClient") - - let fileBasedConfigurationStore = try CRTFiledBasedConfigurationStore() - - let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver(fileBasedConfigurationProvider: fileBasedConfigurationStore) - + let fileBasedConfig = try await CRTFileBasedConfiguration.makeAsync() + + let resolvedRegionResolver = try regionResolver ?? DefaultRegionResolver { _, _ in fileBasedConfig } + let resolvedRegion: String? if let region = region { resolvedRegion = region @@ -158,21 +157,84 @@ class RestJsonProtocolGeneratorTests { resolvedRegion = await resolvedRegionResolver.resolveRegion() } - let resolvedSigningRegion = signingRegion ?? resolvedRegion + let resolvedCredentialsProvider: AWSClientRuntime.CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } - let resolvedCredentialProvider = try await AWSClientRuntime.AWSCredentialsProvider.resolvedProvider( - credentialsProvider, - configuration: .init(fileBasedConfigurationStore: fileBasedConfigurationStore) + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: resolvedRegion, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig ) + } + + public convenience init( + region: Swift.String, + credentialsProvider: AWSClientRuntime.CredentialsProviding? = nil, + endpoint: Swift.String? = nil, + endpointResolver: EndpointResolver? = nil, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata? = nil, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? = nil, + signingRegion: Swift.String? = nil, + useDualStack: Swift.Bool? = nil, + useFIPS: Swift.Bool? = nil + ) throws { + let resolvedCredentialsProvider: CredentialsProviding + if let credentialsProvider = credentialsProvider { + resolvedCredentialsProvider = credentialsProvider + } else { + let fileBasedConfig = try CRTFileBasedConfiguration.make() + resolvedCredentialsProvider = try DefaultChainCredentialsProvider(fileBasedConfig: fileBasedConfig) + } + + try self.init( + credentialsProvider: resolvedCredentialsProvider, + endpoint: endpoint, + endpointResolver: endpointResolver, + frameworkMetadata: frameworkMetadata, + region: region, + signingRegion: signingRegion, + useDualStack: useDualStack, + useFIPS: useFIPS, + runtimeConfig: runtimeConfig + ) + } + + /// Internal designated init + /// All convenience inits should call this + public init( + credentialsProvider: AWSClientRuntime.CredentialsProviding, + endpoint: Swift.String?, + endpointResolver: EndpointResolver?, + frameworkMetadata: AWSClientRuntime.FrameworkMetadata?, + region: Swift.String?, + signingRegion: Swift.String?, + useDualStack: Swift.Bool?, + useFIPS: Swift.Bool?, + runtimeConfig: ClientRuntime.SDKRuntimeConfiguration? + ) throws { + let runtimeConfig = try runtimeConfig ?? ClientRuntime.DefaultSDKRuntimeConfiguration("ExampleClient") + + let resolvedSigningRegion = signingRegion ?? region let resolvedEndpointsResolver = try endpointResolver ?? DefaultEndpointResolver() - self.credentialsProvider = resolvedCredentialProvider + self.credentialsProvider = credentialsProvider self.endpoint = endpoint self.endpointResolver = resolvedEndpointsResolver self.frameworkMetadata = frameworkMetadata - self.region = resolvedRegion - self.regionResolver = resolvedRegionResolver + self.region = region + // TODO: Remove region resolver. Region must already be resolved and there is no point in storing the resolver. + self.regionResolver = nil self.signingRegion = resolvedSigningRegion self.useDualStack = useDualStack self.useFIPS = useFIPS