| POST | /consumerinitiation |
|---|
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Client_Initiations.ServiceModel
Imports Client_Initiations.ServiceModel.Types
Namespace Global
Namespace Client_Initiations.ServiceModel
Public Enum AddressType
CurrentHome
DestinationHome
CurrentWork
DestinationWork
End Enum
Public Partial Class AssignmentLocationDetails
'''<Summary>
'''Work city
'''</Summary>
<ApiMember(Description:="Work city", IsRequired:=true)>
Public Overridable Property WorkCity As String
'''<Summary>
'''Current work location state
'''</Summary>
<ApiMember(Description:="Current work location state")>
Public Overridable Property CurrentWorkState As String
'''<Summary>
'''Work state or province
'''</Summary>
<ApiMember(Description:="Work state or province")>
Public Overridable Property WorkState As String
'''<Summary>
'''Destination work location state
'''</Summary>
<ApiMember(Description:="Destination work location state")>
Public Overridable Property DestinationWorkState As String
'''<Summary>
'''Work country
'''</Summary>
<ApiMember(Description:="Work country", IsRequired:=true)>
Public Overridable Property WorkCountry As String
'''<Summary>
'''Preferred work location state
'''</Summary>
<ApiMember(Description:="Preferred work location state")>
Public Overridable Property PreferredWorkState As String
'''<Summary>
'''Preferred work location country
'''</Summary>
<ApiMember(Description:="Preferred work location country")>
Public Overridable Property PreferredWorkCountry As String
End Class
'''<Summary>
'''Consumer Initiation Service
'''</Summary>
<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 Partial Class ConsumerInitiation
Implements IPost
'''<Summary>
'''Client identifier
'''</Summary>
<ApiMember(Description:="Client identifier", IsRequired:=true)>
Public Overridable Property ClientID As String
'''<Summary>
'''Consumer relocation request file details
'''</Summary>
<ApiMember(Description:="Consumer relocation request file details", IsRequired:=true)>
Public Overridable Property File As RelocationsRequestFile
End Class
Public Partial Class ConsumerInitiationResponse
Public Sub New()
Errors = New List(Of ValidateError)
End Sub
'''<Summary>
'''Response message
'''</Summary>
<ApiMember(Description:="Response message")>
Public Overridable Property Message As String
'''<Summary>
'''File identifier for the created initiation
'''</Summary>
<ApiMember(Description:="File identifier for the created initiation")>
Public Overridable Property FileId As String
'''<Summary>
'''List of validation errors, if any
'''</Summary>
<ApiMember(Description:="List of validation errors, if any")>
Public Overridable Property Errors As List(Of ValidateError)
End Class
Public Partial Class RelocationsRequestFile
Public Sub New()
Addresses = New RelocationsRequestFileAddress(){}
Phones = New RelocationsRequestFilePhone(){}
End Sub
'''<Summary>
'''Command type for the request (INITIATE)
'''</Summary>
<ApiMember(Description:="Command type for the request (INITIATE)", IsRequired:=true)>
Public Overridable Property Command As String
'''<Summary>
'''External identifier for the transferee
'''</Summary>
<ApiMember(Description:="External identifier for the transferee", IsRequired:=true)>
Public Overridable Property ExternalID As String
'''<Summary>
'''Details about the transferee
'''</Summary>
<ApiMember(Description:="Details about the transferee", IsRequired:=true)>
Public Overridable Property TransfereeDetails As RelocationsRequestFileTransfereeDetails
'''<Summary>
'''List of addresses associated with the transferee
'''</Summary>
<ApiMember(Description:="List of addresses associated with the transferee", IsRequired:=true)>
Public Overridable Property Addresses As RelocationsRequestFileAddress()
'''<Summary>
'''List of phone numbers associated with the transferee
'''</Summary>
<ApiMember(Description:="List of phone numbers associated with the transferee", IsRequired:=true)>
Public Overridable Property Phones As RelocationsRequestFilePhone()
'''<Summary>
'''Assignment details for the relocation
'''</Summary>
<ApiMember(Description:="Assignment details for the relocation", IsRequired:=true)>
Public Overridable Property AssignmentDetails As RelocationsRequestFileAssignmentDetails
End Class
Public Partial Class RelocationsRequestFileAddress
'''<Summary>
'''Type of address (CurrentHome, DestinationHome, CurrentWork, DestinationWork)
'''</Summary>
<ApiMember(Description:="Type of address (CurrentHome, DestinationHome, CurrentWork, DestinationWork)", IsRequired:=true)>
Public Overridable Property AddressType As AddressType
'''<Summary>
'''Indicates if this is the primary address
'''</Summary>
<ApiMember(Description:="Indicates if this is the primary address", IsRequired:=true)>
Public Overridable Property Primary As YesNo
'''<Summary>
'''Address line 1
'''</Summary>
<ApiMember(Description:="Address line 1", IsRequired:=true)>
Public Overridable Property AddressLine1 As String
'''<Summary>
'''City
'''</Summary>
<ApiMember(Description:="City", IsRequired:=true)>
Public Overridable Property City As String
'''<Summary>
'''Country
'''</Summary>
<ApiMember(Description:="Country", IsRequired:=true)>
Public Overridable Property Country As String
End Class
Public Partial Class RelocationsRequestFileAssignmentDetails
'''<Summary>
'''Program name or code
'''</Summary>
<ApiMember(Description:="Program name or code", IsRequired:=true)>
Public Overridable Property Program As String
'''<Summary>
'''Type of assignment
'''</Summary>
<ApiMember(Description:="Type of assignment", IsRequired:=true)>
Public Overridable Property AssignmentType As String
'''<Summary>
'''Assignment start date
'''</Summary>
<ApiMember(Description:="Assignment start date", IsRequired:=true)>
Public Overridable Property StartDate As Nullable(Of Date)
'''<Summary>
'''Company name
'''</Summary>
<ApiMember(Description:="Company name", IsRequired:=true)>
Public Overridable Property CompanyName As String
'''<Summary>
'''Contact
'''</Summary>
<ApiMember(Description:="Contact", IsRequired:=true)>
Public Overridable Property Contact As String
'''<Summary>
'''Current assignment location details
'''</Summary>
<ApiMember(Description:="Current assignment location details", IsRequired:=true)>
Public Overridable Property Current As AssignmentLocationDetails
'''<Summary>
'''Destination assignment location details
'''</Summary>
<ApiMember(Description:="Destination assignment location details", IsRequired:=true)>
Public Overridable Property Destination As AssignmentLocationDetails
End Class
Public Partial Class RelocationsRequestFilePhone
'''<Summary>
'''Phone type (e.g., Mobile, OriginHome)
'''</Summary>
<ApiMember(Description:="Phone type (e.g., Mobile, OriginHome)", IsRequired:=true)>
Public Overridable Property Type As String
'''<Summary>
'''Indicates if this is the primary phone number
'''</Summary>
<ApiMember(Description:="Indicates if this is the primary phone number", IsRequired:=true)>
Public Overridable Property Primary As YesNo
'''<Summary>
'''Phone number
'''</Summary>
<ApiMember(Description:="Phone number", IsRequired:=true)>
Public Overridable Property Number As String
End Class
Public Partial Class RelocationsRequestFileTransfereeDetails
'''<Summary>
'''First name of the transferee
'''</Summary>
<ApiMember(Description:="First name of the transferee", IsRequired:=true)>
Public Overridable Property FirstName As String
'''<Summary>
'''Last name of the transferee
'''</Summary>
<ApiMember(Description:="Last name of the transferee", IsRequired:=true)>
Public Overridable Property LastName As String
'''<Summary>
'''Preferred email address
'''</Summary>
<ApiMember(Description:="Preferred email address", IsRequired:=true)>
Public Overridable Property PreferredEmail As String
End Class
Public Enum YesNo
Y
N
Item
End Enum
End Namespace
Namespace Client_Initiations.ServiceModel.Types
Public Partial Class ValidateError
Public Overridable Property ErrorNumber As String
Public Overridable Property ErrorDescription As String
End Class
End Namespace
End Namespace
VB.NET ConsumerInitiation DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /consumerinitiation HTTP/1.1
Host: initiation-pen.sirva.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ClientID: String,
File:
{
Command: String,
ExternalID: String,
TransfereeDetails:
{
FirstName: String,
LastName: String,
PreferredEmail: String
},
Addresses:
[
{
AddressType: CurrentHome,
Primary: Y,
AddressLine1: String,
City: String,
Country: String
}
],
Phones:
[
{
Type: String,
Primary: Y,
Number: String
}
],
AssignmentDetails:
{
Program: String,
AssignmentType: String,
StartDate: 0001-01-01,
CompanyName: String,
Contact: String,
Current:
{
WorkCity: String,
CurrentWorkState: String,
WorkState: String,
DestinationWorkState: String,
WorkCountry: String,
PreferredWorkState: String,
PreferredWorkCountry: String
},
Destination:
{
WorkCity: String,
CurrentWorkState: String,
WorkState: String,
DestinationWorkState: String,
WorkCountry: String,
PreferredWorkState: String,
PreferredWorkCountry: String
}
}
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Message: String,
FileId: String,
Errors:
[
{
ErrorNumber: String,
ErrorDescription: String
}
]
}