/* Options: Date: 2025-03-15 02:51:54 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: GetPdf.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/pdfs/get", "POST") // @DataContract public class GetPdf : BaseRequest, IReturn { public typealias Return = GetPdfResponse /** * The request data */ // @DataMember // @ApiMember(Description="The request data", ParameterType="body") public var request:GetPdfRequest required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case request } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) request = try container.decodeIfPresent(GetPdfRequest.self, forKey: .request) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if request != nil { try container.encode(request, forKey: .request) } } } // @DataContract public class GetPdfResponse : Codable { /** * The response data */ // @DataMember // @ApiMember(Description="The response data") public var data:GetPdfData 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 GetPdfRequest : Codable { /** * If the saved document is kept within a single Sub User account, specify their username here */ // @ApiMember(Description="If the saved document is kept within a single Sub User account, specify their username here") public var subUserName:String /** * The ID of the document to retrieve */ // @ApiMember(Description="The ID of the document to retrieve") public var id:Int required public init(){} } public class GetPdfData : BaseResponse { /** * The single document that is being returned, including the file data */ // @ApiMember(Description="The single document that is being returned, including the file data") public var document:PdfDocumentWithData required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case document } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) document = try container.decodeIfPresent(PdfDocumentWithData.self, forKey: .document) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if document != nil { try container.encode(document, forKey: .document) } } } 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 PdfDocumentWithData : PdfDocument { /** * The file data in a byte array */ // @ApiMember(Description="The file data in a byte array") public var documentBytes:[UInt8] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case documentBytes } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) documentBytes = try container.decodeIfPresent([UInt8].self, forKey: .documentBytes) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if documentBytes.count > 0 { try container.encode(documentBytes, forKey: .documentBytes) } } } 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) } } public class PdfDocument : Codable { /** * The ID of the saved document */ // @ApiMember(Description="The ID of the saved document") public var id:Int /** * Is the document ready to download */ // @ApiMember(Description="Is the document ready to download") public var isReady:Bool /** * The name of the saved document */ // @ApiMember(Description="The name of the saved document") public var name:String /** * The file name (including extension) of the saved document */ // @ApiMember(Description="The file name (including extension) of the saved document") public var fileName:String /** * The type of saved document (Human readable, pep, sanctions, validid, companylookup, etc.) */ // @ApiMember(Description="The type of saved document (Human readable, pep, sanctions, validid, companylookup, etc.)") public var type:String /** * If this document is a Saved Sanctions Search, the ID of the search it relates to */ // @ApiMember(Description="If this document is a Saved Sanctions Search, the ID of the search it relates to") public var sanctionsSearchId:Int? /** * If this document is a Saved PEP Search, the ID of the search it relates to */ // @ApiMember(Description="If this document is a Saved PEP Search, the ID of the search it relates to") public var pepSearchId:Int? /** * If this document is a Saved ValidID Search, the ID of the search it relates to */ // @ApiMember(Description="If this document is a Saved ValidID Search, the ID of the search it relates to") public var validIdSearchId:Int? /** * If this document is a Saved CompanyLookup Search, the ID of the search it relates to */ // @ApiMember(Description="If this document is a Saved CompanyLookup Search, the ID of the search it relates to") public var companyLookupSearchId:Int? /** * The date the saved document was created/requested */ // @ApiMember(Description="The date the saved document was created/requested") public var dateCreated:Date /** * The date the saved document will be no longer available. You can request a new document using the SaveSearch, SavePepSearch, etc. methods */ // @ApiMember(Description="The date the saved document will be no longer available. You can request a new document using the SaveSearch, SavePepSearch, etc. methods") public var dateExpires:Date required public init(){} }