/* Options: Date: 2025-03-15 04:22:11 SwiftVersion: 5.0 Version: 8.30 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.sanctionssearch.com/v2 //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: GetSubUsers.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/subusers/list", "GET") // @DataContract public class GetSubUsers : BaseRequest, IReturn { public typealias Return = GetSubUsersResponse /** * If this is 'True' the main user will be included in the list of sub users */ // @DataMember // @ApiMember(Description="If this is 'True' the main user will be included in the list of sub users", ParameterType="query") public var includeMainUser:Bool required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case includeMainUser } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) includeMainUser = try container.decodeIfPresent(Bool.self, forKey: .includeMainUser) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if includeMainUser != nil { try container.encode(includeMainUser, forKey: .includeMainUser) } } } // @DataContract public class GetSubUsersResponse : Codable { /** * The response data */ // @DataMember // @ApiMember(Description="The response data") public var data:GetSubUsersData required public init(){} } // @DataContract public class Authentication : Codable { /** * The API User ID provided by us when you signed up to use our API */ // @DataMember // @ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") public var apiUserId:String /** * The API User Key provided by us when you signed up to use our API */ // @DataMember // @ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body") public var apiUserKey: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 GetSubUsersData : BaseResponse { /** * The list of sub users */ // @ApiMember(Description="The list of sub users") public var subUsers:[SubUser] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case subUsers } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) subUsers = try container.decodeIfPresent([SubUser].self, forKey: .subUsers) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if subUsers.count > 0 { try container.encode(subUsers, forKey: .subUsers) } } } public class SubUser : Codable { /** * Is this user the main user (i.e. the user who created the account) */ // @ApiMember(Description="Is this user the main user (i.e. the user who created the account)") public var isMainUser:Bool /** * The sub user's id (GUID) */ // @ApiMember(Description="The sub user's id (GUID)") public var userId:String /** * The sub user's UserName (i.e. the sign-in username) */ // @ApiMember(Description="The sub user's UserName (i.e. the sign-in username)") public var userName:String /** * The sub user's name */ // @ApiMember(Description="The sub user's name") public var name:String /** * The sub user's email address */ // @ApiMember(Description="The sub user's email address") public var email:String /** * Does this sub user have admin privileges, such as managing purchases and sub users */ // @ApiMember(Description="Does this sub user have admin privileges, such as managing purchases and sub users") public var isAdmin:Bool /** * Can this sub user resolve searches (UpdateSearch) they have access to */ // @ApiMember(Description="Can this sub user resolve searches (UpdateSearch) they have access to") public var canResolveSearches:Bool /** * Can this sub user delete searches (DeleteSearch) they have access to */ // @ApiMember(Description="Can this sub user delete searches (DeleteSearch) they have access to") public var canDeleteSearches:Bool /** * The user names for which searches will be made available to the sub user */ // @ApiMember(Description="The user names for which searches will be made available to the sub user") public var permissions:ArrayOfUserNames required public init(){} } 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 ArrayOfUserNames : 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) } } 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) } }