/* Options: Date: 2024-09-19 23:00:29 SwiftVersion: 5.0 Version: 8.30 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://initiation-api-test.sirva.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: TransfereeInitiationRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/Initiation/Transferee", "POST") public class TransfereeInitiationRequest : IReturn, IRequireClientScoped, IPost, Codable { public typealias Return = TransfereeInitiationResponse /** * Transferee initiation info needed for creation. */ // @ApiMember(Description="Transferee initiation info needed for creation.", IsRequired=true, ParameterType="body") public var initiationInfo:TransfereeInitiation required public init(){} } public class TransfereeInitiationResponse : Codable { public var responseStatus:ResponseStatus required public init(){} } public class TransfereeInitiation : Codable { /** * Client ID */ // @ApiMember(Description="Client ID") public var clientId:String /** * External ID. This must be unique to the intiation's parent client */ // @ApiMember(Description="External ID. This must be unique to the intiation's parent client", IsRequired=true) public var externalId:String /** * Transferee first name */ // @ApiMember(Description="Transferee first name", IsRequired=true) public var firstName:String /** * Transferee last name */ // @ApiMember(Description="Transferee last name", IsRequired=true) public var lastName:String /** * Assignment type */ // @ApiMember(Description="Assignment type") public var assignmentType:String /** * Is this transferee pre-decision */ // @ApiMember(Description="Is this transferee pre-decision") public var preDecision:Bool? /** * Is this transferee a VIP */ // @ApiMember(Description="Is this transferee a VIP") public var vip:Bool? /** * Custom fields */ // @ApiMember(Description="Custom fields") public var customFields:[CustomField] = [] /** * Employee ID */ // @ApiMember(Description="Employee ID") public var employeeId:String /** * Start date */ // @ApiMember(Description="Start date") public var startDate:Date? /** * End date */ // @ApiMember(Description="End date") public var endDate:Date? /** * Origin work location */ // @ApiMember(Description="Origin work location", IsRequired=true) public var originWorkLocation:Location /** * Origin home address */ // @ApiMember(Description="Origin home address", IsRequired=true) public var originHomeAddress:Address /** * Destination work location */ // @ApiMember(Description="Destination work location", IsRequired=true) public var destinationWorkLocation:Location /** * Repat */ // @ApiMember(Description="Repat") public var repat:String /** * Repat From City */ // @ApiMember(Description="Repat From City") public var repatFromCity:String /** * Repat From State code */ // @ApiMember(Description="Repat From State code") public var repatFromStateCode:String /** * Repat From Country Code */ // @ApiMember(Description="Repat From Country Code") public var repatFromCountryCode:String /** * Repat To City */ // @ApiMember(Description="Repat To City") public var repatToCity:String /** * Repat To State Code */ // @ApiMember(Description="Repat To State Code") public var repatToStateCode:String /** * Repat To Country Code */ // @ApiMember(Description="Repat To Country Code") public var repatToCountryCode:String /** * Transferee citizenship country */ // @ApiMember(Description="Transferee citizenship country") public var citizenshipCountry:String /** * Transferee dual citizenship country */ // @ApiMember(Description="Transferee dual citizenship country") public var dualCitizenshipCountry:String /** * Policy */ // @ApiMember(Description="Policy", IsRequired=true) public var policy:String /** * Job title */ // @ApiMember(Description="Job title") public var jobTitle:String /** * Marital status */ // @ApiMember(Description="Marital status", Name="MaritalStatus") public var maritalStatus:MaritalStatus? /** * Pay grade */ // @ApiMember(Description="Pay grade") public var payGrade:String /** * Assignment family size */ // @ApiMember(Description="Assignment family size") public var assignmentFamilySize:Int? /** * Home owner status */ // @ApiMember(Description="Home owner status", Name="HomeOwnerStatus") public var homeOwnerStatus:HomeOwnerStatus? /** * Line of business */ // @ApiMember(Description="Line of business", IsRequired=true) public var lineOfBusiness:String /** * HostCurrency */ // @ApiMember(Description="HostCurrency") public var hostCurrency:String /** * ServiceLevel */ // @ApiMember(Description="ServiceLevel") public var serviceLevel:String /** * CompanyCodePrimary */ // @ApiMember(Description="CompanyCodePrimary") public var companyCodePrimary:String /** * CompanyCodeSecondary */ // @ApiMember(Description="CompanyCodeSecondary") public var companyCodeSecondary:String /** * CostCenterPrimary */ // @ApiMember(Description="CostCenterPrimary") public var costCenterPrimary:String /** * CostCenterSecondary */ // @ApiMember(Description="CostCenterSecondary") public var costCenterSecondary:String /** * CostCenterTertiary */ // @ApiMember(Description="CostCenterTertiary") public var costCenterTertiary:String /** * Is the assignment confidential */ // @ApiMember(Description="Is the assignment confidential") public var confidential:Bool? /** * Special Instructions */ // @ApiMember(Description="Special Instructions") public var specialInstructions:String /** * Destination entity legal name */ // @ApiMember(Description="Destination entity legal name") public var destinationEntityLegalName:String /** * Transferee mobile phone number */ // @ApiMember(Description="Transferee mobile phone number", IsRequired=true) public var mobilePhoneNumber:String /** * Transferee work phone number */ // @ApiMember(Description="Transferee work phone number") public var workPhoneNumber:String /** * Transferee home phone number */ // @ApiMember(Description="Transferee home phone number") public var homePhoneNumber:String /** * Transferee primary email */ // @ApiMember(Description="Transferee primary email", IsRequired=true) public var primaryEmail:String /** * Transferee secondary email */ // @ApiMember(Description="Transferee secondary email") public var secondaryEmail:String /** * HR Contact First Name */ // @ApiMember(Description="HR Contact First Name") public var hrContactFirstName:String /** * HR Contact Last Name */ // @ApiMember(Description="HR Contact Last Name") public var hrContactLastName:String /** * HR contact full name */ // @ApiMember(Description="HR contact full name") public var hrContactFullName:String /** * Transferee annual salary */ // @ApiMember(Description="Transferee annual salary") public var annualSalary:String /** * Transferee spouse/partner */ // @ApiMember(Description="Transferee spouse/partner") public var spousePartner:SpousePartner /** * Transferee dependents */ // @ApiMember(Description="Transferee dependents") public var dependents:[Dependent] = [] /** * Assignment Services */ // @ApiMember(Description="Assignment Services") public var services:[Service] = [] /** * Relocation Status */ // @ApiMember(Description="Relocation Status") public var relocationStatus:String /** * Cancel */ // @ApiMember(Description="Cancel") public var cancel:String required public init(){} } public protocol IRequireClientScoped { } public class CustomField : Codable { /** * Custom field name */ // @ApiMember(Description="Custom field name", IsRequired=true) public var fieldName:String /** * Custom field value */ // @ApiMember(Description="Custom field value") public var fieldValue:String required public init(){} } public class Location : Codable { public var title:String public var city:String public var stateCode:String public var countryCode:String required public init(){} } public class Address : Location { public var line1:String public var line2:String public var line3:String public var postalCode:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case line1 case line2 case line3 case postalCode } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) line1 = try container.decodeIfPresent(String.self, forKey: .line1) line2 = try container.decodeIfPresent(String.self, forKey: .line2) line3 = try container.decodeIfPresent(String.self, forKey: .line3) postalCode = try container.decodeIfPresent(String.self, forKey: .postalCode) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if line1 != nil { try container.encode(line1, forKey: .line1) } if line2 != nil { try container.encode(line2, forKey: .line2) } if line3 != nil { try container.encode(line3, forKey: .line3) } if postalCode != nil { try container.encode(postalCode, forKey: .postalCode) } } } public enum MaritalStatus : String, Codable { case Single case Married case DomesticPartner case Divorcee case Defacto case Other case Separated case Interdependent case Widowed case Divorced } public enum HomeOwnerStatus : String, Codable { case Homeowner case Renter } public class SpousePartner : Codable { public var firstName:String public var lastName:String public var birthDate:Date? required public init(){} } public class Dependent : Codable { public var firstName:String public var lastName:String public var birthDate:Date? // @ApiMember(IsRequired=true, Name="RelationshipToAssignee") public var relationshipToAssignee:DependentAssigneeRelationship? required public init(){} } public enum DependentAssigneeRelationship : String, Codable { case Child case Other } public class ServiceData : Codable { /** * Service data field name */ // @ApiMember(Description="Service data field name", IsRequired=true) public var fieldName:String /** * Service data field value */ // @ApiMember(Description="Service data field value", IsRequired=true) public var fieldValue:String required public init(){} }