/* Options: Date: 2026-06-20 21:18:35 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.simplified.id/v2 //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: GetAccountStatus.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/account/status", "GET") // @DataContract public class GetAccountStatus : BaseRequest, IReturn { public typealias Return = GetAccountStatusResponse required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } // @DataContract public class GetAccountStatusResponse : Codable { /** * The response data */ // @DataMember // @ApiMember(Description="The response data") public var data:GetAccountStatusData? required public init(){} } // @DataContract public class Authentication : Codable { /** * The API User ID provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-User) */ // @DataMember // @ApiMember(Description="The API User ID provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-User)", IsRequired=true, ParameterType="header, body") public var apiUserId:String? /** * The API User Key provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-Key) */ // @DataMember // @ApiMember(Description="The API User Key provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-Key)", IsRequired=true, ParameterType="header, body") public var apiUserKey:String? /** * The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id). */ // @DataMember // @ApiMember(Description="The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id).", ParameterType="header, body") public var userId:String? required public init(){} } // @DataContract public class BaseRequest : IBaseRequest, Codable { /** * The authentication credentials */ // @DataMember // @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body") public var authentication:Authentication? required public init(){} } public protocol IBaseRequest { var authentication:Authentication? { get set } } public class GetAccountStatusData : BaseResponse { /** * The account status information */ // @ApiMember(Description="The account status information") public var accountStatus:AccountStatus? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case accountStatus } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) accountStatus = try container.decodeIfPresent(AccountStatus.self, forKey: .accountStatus) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if accountStatus != nil { try container.encode(accountStatus, forKey: .accountStatus) } } } public class BaseResponse : IBaseDataResponse, IHasResponseStatus, Codable { /** * The status of the response */ // @ApiMember(Description="The status of the response") public var responseStatus:ResponseStatus? required public init(){} } public protocol IBaseDataResponse { var responseStatus:ResponseStatus? { get set } } public protocol IHasResponseStatus { var responseStatus:ResponseStatus? { get set } } public class AccountStatus : Codable { /** * The account status (e.g. Unpaid, Active, Expired) */ // @ApiMember(Description="The account status (e.g. Unpaid, Active, Expired)") public var status:String? /** * The account type (e.g. live, developer, demo) */ // @ApiMember(Description="The account type (e.g. live, developer, demo)") public var type:String? /** * The account Expiry Date */ // @ApiMember(Description="The account Expiry Date") public var expiryDate:Date? /** * The account Expiry Date as a string in ISO 8601 format */ // @ApiMember(Description="The account Expiry Date as a string in ISO 8601 format") public var expiryDateUniversal:String? /** * The account balance */ // @ApiMember(Description="The account balance") public var balance:Double? /** * The account search credit balance */ // @ApiMember(Description="The account search credit balance") public var creditBalance:Int? /** * The account DBS credit balance */ // @ApiMember(Description="The account DBS credit balance") public var dbsBasicCreditBalance:Int? /** * The list of enabled products for this account */ // @ApiMember(Description="The list of enabled products for this account") public var products:[String]? /** * The list of enabled capabilities for this account */ // @ApiMember(Description="The list of enabled capabilities for this account") public var capabilities:[String]? required public init(){} } public class ArrayOfResponseError : List { required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } }