amplify-swift/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/StateMachine/CodeGen/Data/HostedUIOptions.swift

54 lines
1.3 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import Foundation
import Amplify
#if canImport(AuthenticationServices)
struct HostedUIOptions {
let scopes: [String]
let providerInfo: HostedUIProviderInfo
let presentationAnchor: AuthUIPresentationAnchor?
let preferPrivateSession: Bool
}
extension HostedUIOptions: Codable {
enum CodingKeys: String, CodingKey {
case scopes
case providerInfo
case preferPrivateSession
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
scopes = try values.decode(Array.self, forKey: .scopes)
providerInfo = try values.decode(HostedUIProviderInfo.self, forKey: .providerInfo)
preferPrivateSession = try values.decode(Bool.self, forKey: .preferPrivateSession)
presentationAnchor = nil
}
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(scopes, forKey: .scopes)
try container.encode(providerInfo, forKey: .providerInfo)
try container.encode(preferPrivateSession, forKey: .preferPrivateSession)
}
}
extension HostedUIOptions: Equatable { }
#endif