Skip to content

Commit ad28dd5

Browse files
sichanyooSichan Yoo
andauthored
feat: Static creds resolver (#940)
* Add visibility setting to SwiftSettings. * ktlint & build errors. * Limit visibility of generated types that aren't nested within service client. * Add access level logic to make model-based auth scheme resolver internal even when service isn't rules-based, if service client visibility is internal. * ktlint * Codegen changes for constructing & saving IdentityResolvingSTSClient into auth options returned by auth scheme resolver. * Add back logic for directly nesting auth option constructino in auth option append function if it's noAuth. * ktlint * Update codegen test. * Add forProtocolTests flag to SwiftSettings, to skip auth option customization w/ internal service clients for protocol test codegen. * Add new setting to SwiftSettings codegen test. * Move StaticAWSCredentialIdentityResolver off of CRT. * Add StaticAWSCredentialIdentityResolver type in codegen. * Remove unnecessary try keyword from StaticAWSCredentialIdentityResolver init() calls. --------- Co-authored-by: Sichan Yoo <[email protected]>
1 parent 4fd1f78 commit ad28dd5

File tree

4 files changed

+10
-12
lines changed

4 files changed

+10
-12
lines changed

Sources/SmithyIdentity/AWSCredentialIdentityResolvers/StaticAWSCredentialIdentityResolver.swift

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,22 @@
55
// SPDX-License-Identifier: Apache-2.0
66
//
77

8-
@_spi(AccountIDTempSupport) import class AwsCommonRuntimeKit.CredentialsProvider
8+
import struct Smithy.Attributes
99

1010
/// A credential identity resolver that provides a fixed set of credentials
11-
public struct StaticAWSCredentialIdentityResolver: AWSCredentialIdentityResolvedByCRT {
11+
public struct StaticAWSCredentialIdentityResolver: AWSCredentialIdentityResolver {
1212
private let credentials: AWSCredentialIdentity
13-
public let crtAWSCredentialIdentityResolver: AwsCommonRuntimeKit.CredentialsProvider
1413

1514
/// Creates a credential identity resolver for a fixed set of credentials
1615
///
1716
/// - Parameter credentials: The credentials that this provider will provide.
1817
///
1918
/// - Returns: A credential identity resolver for a fixed set of credentials
20-
public init(_ credentials: AWSCredentialIdentity) throws {
19+
public init(_ credentials: AWSCredentialIdentity) {
2120
self.credentials = credentials
22-
self.crtAWSCredentialIdentityResolver = try AwsCommonRuntimeKit.CredentialsProvider(source: .static(
23-
accessKey: credentials.accessKey,
24-
secret: credentials.secret,
25-
sessionToken: credentials.sessionToken,
26-
accountId: credentials.accountID
27-
))
21+
}
22+
23+
public func getIdentity(identityProperties: Attributes?) async throws -> AWSCredentialIdentity {
24+
return credentials
2825
}
2926
}

Sources/SmithyTestUtil/DummyIdentityResolver.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import struct SmithyIdentity.StaticAWSCredentialIdentityResolver
99

1010
public func dummyIdentityResolver() throws -> StaticAWSCredentialIdentityResolver {
11-
try StaticAWSCredentialIdentityResolver(
11+
StaticAWSCredentialIdentityResolver(
1212
.init(
1313
accessKey: "dummy-aws-access-key-id",
1414
secret: "dummy-aws-secret-access-key"

Tests/SmithyIdentityTests/StaticAWSCredentialIdentityResolverTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import struct SmithyIdentity.StaticAWSCredentialIdentityResolver
1111
class StaticAWSCredentialIdentityResolverTests: XCTestCase {
1212

1313
func testGetCredentials() async throws {
14-
let subject = try StaticAWSCredentialIdentityResolver(.init(
14+
let subject = StaticAWSCredentialIdentityResolver(.init(
1515
accessKey: "static_access_key",
1616
secret: "static_secret",
1717
accountID: "static_account_id"

smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/swiftmodules/SmithyIdentityTypes.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ object SmithyIdentityTypes {
99
val BearerTokenIdentityResolver = runtimeSymbol("BearerTokenIdentityResolver", SwiftDeclaration.PROTOCOL)
1010
val BearerTokenIdentity = runtimeSymbol("BearerTokenIdentity", SwiftDeclaration.STRUCT)
1111
val StaticBearerTokenIdentityResolver = runtimeSymbol("StaticBearerTokenIdentityResolver", SwiftDeclaration.STRUCT)
12+
val StaticAWSCredentialIdentityResolver = runtimeSymbol("StaticAWSCredentialIdentityResolver", SwiftDeclaration.STRUCT)
1213
}
1314

1415
private fun runtimeSymbol(

0 commit comments

Comments
 (0)