""" Options: Date: 2026-08-14 05:57:27 Version: 8.30 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://initiation-pen.sirva.com #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: ConsumerInitiation.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RelocationsRequestFileTransfereeDetails: # @ApiMember(Description="First name of the transferee", IsRequired=true) first_name: Optional[str] = None """ First name of the transferee """ # @ApiMember(Description="Last name of the transferee", IsRequired=true) last_name: Optional[str] = None """ Last name of the transferee """ # @ApiMember(Description="Preferred email address", IsRequired=true) preferred_email: Optional[str] = None """ Preferred email address """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AssignmentLocationDetails: # @ApiMember(Description="Work city", IsRequired=true) work_city: Optional[str] = None """ Work city """ # @ApiMember(Description="Current work location state") current_work_state: Optional[str] = None """ Current work location state """ # @ApiMember(Description="Work state or province") work_state: Optional[str] = None """ Work state or province """ # @ApiMember(Description="Destination work location state") destination_work_state: Optional[str] = None """ Destination work location state """ # @ApiMember(Description="Work country", IsRequired=true) work_country: Optional[str] = None """ Work country """ # @ApiMember(Description="Preferred work location state") preferred_work_state: Optional[str] = None """ Preferred work location state """ # @ApiMember(Description="Preferred work location country") preferred_work_country: Optional[str] = None """ Preferred work location country """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RelocationsRequestFileAssignmentDetails: # @ApiMember(Description="Program name or code", IsRequired=true) program: Optional[str] = None """ Program name or code """ # @ApiMember(Description="Type of assignment", IsRequired=true) assignment_type: Optional[str] = None """ Type of assignment """ # @ApiMember(Description="Assignment start date", IsRequired=true) start_date: Optional[datetime.datetime] = None """ Assignment start date """ # @ApiMember(Description="Company name", IsRequired=true) company_name: Optional[str] = None """ Company name """ # @ApiMember(Description="Contact", IsRequired=true) contact: Optional[str] = None """ Contact """ # @ApiMember(Description="Current assignment location details", IsRequired=true) current: Optional[AssignmentLocationDetails] = None """ Current assignment location details """ # @ApiMember(Description="Destination assignment location details", IsRequired=true) destination: Optional[AssignmentLocationDetails] = None """ Destination assignment location details """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RelocationsRequestFile: # @ApiMember(Description="Command type for the request (INITIATE)", IsRequired=true) command: Optional[str] = None """ Command type for the request (INITIATE) """ # @ApiMember(Description="External identifier for the transferee", IsRequired=true) external_i_d: Optional[str] = None """ External identifier for the transferee """ # @ApiMember(Description="Details about the transferee", IsRequired=true) transferee_details: Optional[RelocationsRequestFileTransfereeDetails] = None """ Details about the transferee """ # @ApiMember(Description="List of addresses associated with the transferee", IsRequired=true) addresses: Optional[List[RelocationsRequestFileAddress]] = None """ List of addresses associated with the transferee """ # @ApiMember(Description="List of phone numbers associated with the transferee", IsRequired=true) phones: Optional[List[RelocationsRequestFilePhone]] = None """ List of phone numbers associated with the transferee """ # @ApiMember(Description="Assignment details for the relocation", IsRequired=true) assignment_details: Optional[RelocationsRequestFileAssignmentDetails] = None """ Assignment details for the relocation """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ValidateError: error_number: Optional[str] = None error_description: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConsumerInitiationResponse: # @ApiMember(Description="Response message") message: Optional[str] = None """ Response message """ # @ApiMember(Description="File identifier for the created initiation") file_id: Optional[str] = None """ File identifier for the created initiation """ # @ApiMember(Description="List of validation errors, if any") errors: Optional[List[ValidateError]] = None """ List of validation errors, if any """ # @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) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConsumerInitiation(IReturn[ConsumerInitiationResponse], IPost): """ Consumer Initiation Service """ # @ApiMember(Description="Client identifier", IsRequired=true) client_i_d: Optional[str] = None """ Client identifier """ # @ApiMember(Description="Consumer relocation request file details", IsRequired=true) file: Optional[RelocationsRequestFile] = None """ Consumer relocation request file details """