// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import Foundation import Amplify import AWSPluginsCore struct NativeAWSAuthCognitoSession: AuthSession, AuthAWSCredentialsProvider, AuthCognitoTokensProvider, AuthCognitoIdentityProvider { let isSignedIn: Bool let identityIdResult: Result let awsCredentialsResult: Result let userSubResult: Result let cognitoTokensResult: Result init(from session: NativeAuthSession) { self.isSignedIn = session.isSignedIn self.userSubResult = session.userSub != nil ? .success(session.userSub!) : .failure(.unknown("Could not retrieve user sub", nil)) self.identityIdResult = session.identityId != nil ? .success(session.identityId!) : .failure(.unknown("Could not retrieve identity ID", nil)) self.cognitoTokensResult = session.userPoolTokens != nil ? .success(session.userPoolTokens!) : .failure(.unknown("Could not retrieve user pool tokens", nil)) self.awsCredentialsResult = session.awsCredentials != nil ? .success(session.awsCredentials!.asAuthAWSCredentials) : .failure(.unknown("Could not retrieve AWS credentials", nil)) } public func getAWSCredentials() -> Result { awsCredentialsResult } public func getCognitoTokens() -> Result { cognitoTokensResult } public func getIdentityId() -> Result { identityIdResult } public func getUserSub() -> Result { userSubResult } }