/* Options: Date: 2026-08-14 05:56:28 SwiftVersion: 5.0 Version: 8.30 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://initiation-pen.sirva.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: ConsumerInitiation.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Consumer Initiation Service */ // @Route("/consumerinitiation", "POST") // @Api(Description="Consumer Initiation Service") // @ApiResponse(Description="Returned when the consumer initiation was successfully processed", StatusCode=200) // @ApiResponse(Description="Returned if the request validation failed", StatusCode=400) // @ApiResponse(Description="Returned if the client is not authorized", StatusCode=401) // @ApiResponse(Description="Returned if an error occurred while processing the request", StatusCode=500) public class ConsumerInitiation : IReturn, IPost, Codable { public typealias Return = ConsumerInitiationResponse /** * Client identifier */ // @ApiMember(Description="Client identifier", IsRequired=true) public var clientID:String /** * Consumer relocation request file details */ // @ApiMember(Description="Consumer relocation request file details", IsRequired=true) public var file:RelocationsRequestFile required public init(){} } public class ConsumerInitiationResponse : Codable { /** * Response message */ // @ApiMember(Description="Response message") public var message:String /** * File identifier for the created initiation */ // @ApiMember(Description="File identifier for the created initiation") public var fileId:String /** * List of validation errors, if any */ // @ApiMember(Description="List of validation errors, if any") public var errors:[ValidateError] = [] required public init(){} } public class RelocationsRequestFile : Codable { /** * Command type for the request (INITIATE) */ // @ApiMember(Description="Command type for the request (INITIATE)", IsRequired=true) public var command:String /** * External identifier for the transferee */ // @ApiMember(Description="External identifier for the transferee", IsRequired=true) public var externalID:String /** * Details about the transferee */ // @ApiMember(Description="Details about the transferee", IsRequired=true) public var transfereeDetails:RelocationsRequestFileTransfereeDetails /** * List of addresses associated with the transferee */ // @ApiMember(Description="List of addresses associated with the transferee", IsRequired=true) public var addresses:[RelocationsRequestFileAddress] = [] /** * List of phone numbers associated with the transferee */ // @ApiMember(Description="List of phone numbers associated with the transferee", IsRequired=true) public var phones:[RelocationsRequestFilePhone] = [] /** * Assignment details for the relocation */ // @ApiMember(Description="Assignment details for the relocation", IsRequired=true) public var assignmentDetails:RelocationsRequestFileAssignmentDetails required public init(){} } public class ValidateError : Codable { public var errorNumber:String public var errorDescription:String required public init(){} } public class RelocationsRequestFileTransfereeDetails : Codable { /** * First name of the transferee */ // @ApiMember(Description="First name of the transferee", IsRequired=true) public var firstName:String /** * Last name of the transferee */ // @ApiMember(Description="Last name of the transferee", IsRequired=true) public var lastName:String /** * Preferred email address */ // @ApiMember(Description="Preferred email address", IsRequired=true) public var preferredEmail:String required public init(){} } public class RelocationsRequestFileAssignmentDetails : Codable { /** * Program name or code */ // @ApiMember(Description="Program name or code", IsRequired=true) public var program:String /** * Type of assignment */ // @ApiMember(Description="Type of assignment", IsRequired=true) public var assignmentType:String /** * Assignment start date */ // @ApiMember(Description="Assignment start date", IsRequired=true) public var startDate:Date? /** * Company name */ // @ApiMember(Description="Company name", IsRequired=true) public var companyName:String /** * Contact */ // @ApiMember(Description="Contact", IsRequired=true) public var contact:String /** * Current assignment location details */ // @ApiMember(Description="Current assignment location details", IsRequired=true) public var current:AssignmentLocationDetails /** * Destination assignment location details */ // @ApiMember(Description="Destination assignment location details", IsRequired=true) public var destination:AssignmentLocationDetails required public init(){} } public class AssignmentLocationDetails : Codable { /** * Work city */ // @ApiMember(Description="Work city", IsRequired=true) public var workCity:String /** * Current work location state */ // @ApiMember(Description="Current work location state") public var currentWorkState:String /** * Work state or province */ // @ApiMember(Description="Work state or province") public var workState:String /** * Destination work location state */ // @ApiMember(Description="Destination work location state") public var destinationWorkState:String /** * Work country */ // @ApiMember(Description="Work country", IsRequired=true) public var workCountry:String /** * Preferred work location state */ // @ApiMember(Description="Preferred work location state") public var preferredWorkState:String /** * Preferred work location country */ // @ApiMember(Description="Preferred work location country") public var preferredWorkCountry:String required public init(){} }