GET | /PassengerLocationsByRouting |
---|
import Foundation
import ServiceStack
// @DataContract(Namespace="schemas.agentivity.com/types")
public class GetPassengerLocationsByRouting : CompanyLevelRequestBase
{
/**
* Comma Delimited List of Accounts
*/
// @DataMember
public var account:[String]
/**
* Date in format YYYYMMDD
*/
// @DataMember
public var dateStart:String
/**
* Date in format YYYYMMDD
*/
// @DataMember
public var dateEnd:String
/**
* From Airport Code
*/
// @DataMember
public var fromAirportCode:String
/**
* From City Code
*/
// @DataMember
public var fromCityCode:String
/**
* From Country Code
*/
// @DataMember
public var fromCountryCode:String
/**
* From Subregion Code
*/
// @DataMember
public var fromSubregionCode:String
/**
* From Region Code
*/
// @DataMember
public var fromRegionCode:String
/**
* To Airport Code
*/
// @DataMember
public var toAirportCode:String
/**
* To City Code
*/
// @DataMember
public var toCityCode:String
/**
* To Country Code
*/
// @DataMember
public var toCountryCode:String
/**
* To Subregion Code
*/
// @DataMember
public var toSubregionCode:String
/**
* To Region Code
*/
// @DataMember
public var toRegionCode:String
/**
* Comma delimited list of owning consultants ids
*/
// @DataMember
public var owningConsultantID:[String]
/**
* Comma Delimited List of Custom Fields
*/
// @DataMember
public var customField:[String]
/**
* Request Consultant ID (sign on)
*/
// @DataMember
public var requestConsultantID:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case account
case dateStart
case dateEnd
case fromAirportCode
case fromCityCode
case fromCountryCode
case fromSubregionCode
case fromRegionCode
case toAirportCode
case toCityCode
case toCountryCode
case toSubregionCode
case toRegionCode
case owningConsultantID
case customField
case requestConsultantID
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
account = try container.decodeIfPresent([String].self, forKey: .account) ?? []
dateStart = try container.decodeIfPresent(String.self, forKey: .dateStart)
dateEnd = try container.decodeIfPresent(String.self, forKey: .dateEnd)
fromAirportCode = try container.decodeIfPresent(String.self, forKey: .fromAirportCode)
fromCityCode = try container.decodeIfPresent(String.self, forKey: .fromCityCode)
fromCountryCode = try container.decodeIfPresent(String.self, forKey: .fromCountryCode)
fromSubregionCode = try container.decodeIfPresent(String.self, forKey: .fromSubregionCode)
fromRegionCode = try container.decodeIfPresent(String.self, forKey: .fromRegionCode)
toAirportCode = try container.decodeIfPresent(String.self, forKey: .toAirportCode)
toCityCode = try container.decodeIfPresent(String.self, forKey: .toCityCode)
toCountryCode = try container.decodeIfPresent(String.self, forKey: .toCountryCode)
toSubregionCode = try container.decodeIfPresent(String.self, forKey: .toSubregionCode)
toRegionCode = try container.decodeIfPresent(String.self, forKey: .toRegionCode)
owningConsultantID = try container.decodeIfPresent([String].self, forKey: .owningConsultantID) ?? []
customField = try container.decodeIfPresent([String].self, forKey: .customField) ?? []
requestConsultantID = try container.decodeIfPresent(String.self, forKey: .requestConsultantID)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if account != nil { try container.encode(account, forKey: .account) }
if dateStart != nil { try container.encode(dateStart, forKey: .dateStart) }
if dateEnd != nil { try container.encode(dateEnd, forKey: .dateEnd) }
if fromAirportCode != nil { try container.encode(fromAirportCode, forKey: .fromAirportCode) }
if fromCityCode != nil { try container.encode(fromCityCode, forKey: .fromCityCode) }
if fromCountryCode != nil { try container.encode(fromCountryCode, forKey: .fromCountryCode) }
if fromSubregionCode != nil { try container.encode(fromSubregionCode, forKey: .fromSubregionCode) }
if fromRegionCode != nil { try container.encode(fromRegionCode, forKey: .fromRegionCode) }
if toAirportCode != nil { try container.encode(toAirportCode, forKey: .toAirportCode) }
if toCityCode != nil { try container.encode(toCityCode, forKey: .toCityCode) }
if toCountryCode != nil { try container.encode(toCountryCode, forKey: .toCountryCode) }
if toSubregionCode != nil { try container.encode(toSubregionCode, forKey: .toSubregionCode) }
if toRegionCode != nil { try container.encode(toRegionCode, forKey: .toRegionCode) }
if owningConsultantID != nil { try container.encode(owningConsultantID, forKey: .owningConsultantID) }
if customField != nil { try container.encode(customField, forKey: .customField) }
if requestConsultantID != nil { try container.encode(requestConsultantID, forKey: .requestConsultantID) }
}
}
// @DataContract(Namespace="schemas.agentivity.com/types")
public class CompanyLevelRequestBase : PagingMetadata, IMemberUsername, IMemberOwningCompanyCode
{
/**
* Comma Delimited List of Owning Company Codes
*/
// @DataMember
public var owningCompanyCode:[String]
/**
* UserName in form of an email address
*/
// @DataMember
public var userName:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case owningCompanyCode
case userName
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
owningCompanyCode = try container.decodeIfPresent([String].self, forKey: .owningCompanyCode) ?? []
userName = try container.decodeIfPresent(String.self, forKey: .userName)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if owningCompanyCode != nil { try container.encode(owningCompanyCode, forKey: .owningCompanyCode) }
if userName != nil { try container.encode(userName, forKey: .userName) }
}
}
// @DataContract(Name="Metadata", Namespace="schemas.agentivity.com/types")
public class PagingMetadata : Codable
{
/**
* Starting Record
*/
// @DataMember
// @ApiMember(DataType="string", Description="Starting Record", Name="Offset", ParameterType="query")
public var offset:String
/**
* Number of records to return (PageSize)
*/
// @DataMember
// @ApiMember(DataType="string", Description="Number of records to return (PageSize)", Name="Limit", ParameterType="query")
public var limit:String
/**
* Total Number of Records in a Full Reponse (if no paging)
*/
// @DataMember
// @ApiMember(DataType="string", Description="Total Number of Records in a Full Reponse (if no paging)", Name="TotalRecords", ParameterType="query")
public var totalRecords:Int
/**
* Total Number of Records in this Reponse (on this page)
*/
// @DataMember
// @ApiMember(DataType="string", Description="Total Number of Records in this Reponse (on this page)", Name="ResponseRecords", ParameterType="query")
public var responseRecords:Int
required public init(){}
}
// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
public class PassengerLocationsByRoutingResponse : CollectionResponse<PassengerLocationRouting>
{
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)
}
}
// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
public class CollectionResponse<TItem : Codable> : Codable
{
// @DataMember(Order=1)
public var responseMetadata:ResponseMetadata
// @DataMember(Order=2, EmitDefaultValue=false)
public var responseReport:[ApiRequestPerHour]
// @DataMember(Order=3, EmitDefaultValue=false)
public var responseError:AgentivityError
required public init(){}
}
// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
public class ResponseMetadata : Codable
{
// @DataMember(Order=0)
public var success:Bool
// @DataMember(Order=1)
public var hasCache:Bool
// @DataMember(Order=2)
public var hasPaging:Bool
// @DataMember(Order=3, EmitDefaultValue=false)
public var cacheMetadata:CacheMetadata
// @DataMember(Order=4, EmitDefaultValue=false)
public var pagingMetadata:PagingMetadata
required public init(){}
}
// @DataContract(Name="CacheMetadata", Namespace="schemas.agentivity.com/types")
public class CacheMetadata : Codable
{
// @DataMember(Order=1)
public var cachedAt:Date
// @DataMember(Order=2)
public var cacheExpiresAt:Date
// @DataMember(Order=0)
public var isFromCache:Bool
required public init(){}
}
// @DataContract(Name="ApiRequestPerHour", Namespace="schemas.agentivity.com/types")
public class ApiRequestPerHour : Codable
{
// @DataMember(Order=10)
public var requestDate:Date
// @DataMember(Order=100)
public var hour0:Int
// @DataMember(Order=110)
public var hour1:Int
// @DataMember(Order=120)
public var hour2:Int
// @DataMember(Order=130)
public var hour3:Int
// @DataMember(Order=140)
public var hour4:Int
// @DataMember(Order=150)
public var hour5:Int
// @DataMember(Order=160)
public var hour6:Int
// @DataMember(Order=170)
public var hour7:Int
// @DataMember(Order=180)
public var hour8:Int
// @DataMember(Order=190)
public var hour9:Int
// @DataMember(Order=200)
public var hour10:Int
// @DataMember(Order=210)
public var hour11:Int
// @DataMember(Order=220)
public var hour12:Int
// @DataMember(Order=230)
public var hour13:Int
// @DataMember(Order=240)
public var hour14:Int
// @DataMember(Order=250)
public var hour15:Int
// @DataMember(Order=260)
public var hour16:Int
// @DataMember(Order=270)
public var hour17:Int
// @DataMember(Order=280)
public var hour18:Int
// @DataMember(Order=290)
public var hour19:Int
// @DataMember(Order=300)
public var hour20:Int
// @DataMember(Order=310)
public var hour21:Int
// @DataMember(Order=320)
public var hour22:Int
// @DataMember(Order=330)
public var hour23:Int
required public init(){}
}
// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
public class AgentivityError : Codable
{
// @DataMember
public var errorCode:String
// @DataMember
public var message:String
// @DataMember
public var statusCode:String
// @DataMember
public var verboseMessage:String
required public init(){}
}
// @DataContract(Name="Segment", Namespace="schemas.agentivity.com/types")
public class PassengerLocationRouting : PassengerLocation
{
// @DataMember(Order=1000)
public var destinationCountries:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case destinationCountries
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
destinationCountries = try container.decodeIfPresent(String.self, forKey: .destinationCountries)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if destinationCountries != nil { try container.encode(destinationCountries, forKey: .destinationCountries) }
}
}
// @DataContract(Name="Segment", Namespace="schemas.agentivity.com/types")
public class PassengerLocation : IBookingItinerary, IBookingCustomFields, IBookingIdentifier, ITicketNumbers, IVendorLocators, IPassengerInfo, Codable
{
// @DataMember(Order=1)
public var recordLocator:String
// @DataMember(Order=2)
public var travelDate:Date?
// @DataMember(Order=3)
public var departureDate:Date?
// @DataMember(Order=4)
public var boardPoint:String
// @DataMember(Order=5)
public var offPoint:String
// @DataMember(Order=6)
public var pnrTicketed:String
// @DataMember(Order=7)
public var account:String
// @DataMember(Order=8)
public var consultant:String
// @DataMember(Order=9)
public var paxList:String
// @DataMember(Order=10)
public var phoneNbr:String
// @DataMember(Order=11)
public var emailAddress:String
// @DataMember(Order=12)
public var destinationCities:String
// @DataMember(Order=13)
public var connections:String
// @DataMember(Order=14)
public var carrierCodes:String
// @DataMember(Order=16)
public var hotelsNames:String
// @DataMember(Order=30)
public var flightNumbers:String
// @DataMember(Order=40)
public var owningAgencyLocationID:String
// @DataMember(Order=50)
public var iataCodes:String
// @DataMember(Order=15)
public var agentivityRef:Int
// @DataMember(Order=120)
public var itinerary:ItinerarySegmentsCollection
// @DataMember(Order=130)
public var itineraryFormatted:String
// @DataMember(Order=140)
public var customFields:CustomFieldsCollection
// @DataMember(Order=150)
public var departureDateTime:Date?
// @DataMember(Order=160)
public var currentArrivalDateTime:Date?
// @DataMember(Order=170)
public var segmentType:String
// @DataMember(Order=180)
public var airSegmentNbr:String
// @DataMember(Order=190)
public var pnrCreationDate:Date?
// @DataMember(Order=200)
public var ticketNumbers:[String]
// @DataMember(Order=210)
public var vendorLocators:[BookingExtVendorLocator]
// @DataMember(Order=220)
public var passengerInfo:[BookingPassengerModel]
required public init(){}
}
public class ItinerarySegmentsCollection : List<ItinerarySegment>
{
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)
}
}
// @DataContract(Name="ItinerarySegment", Namespace="schemas.agentivity.com/types")
public class ItinerarySegment : Codable
{
// @DataMember
public var segmentType:String
// @DataMember
public var segmentNbr:Int
// @DataMember
public var boardPoint:String
// @DataMember
public var offPoint:String
// @DataMember
public var operatorCode:String
// @DataMember
public var operatorService:String
// @DataMember
public var segmentStatus:String
// @DataMember
public var departureTimeFormatted:String
// @DataMember
public var arrivalTimeFormatted:String
// @DataMember
public var changeOfDayFormatted:String
// @DataMember
public var serviceCode:String
// @DataMember
public var startDate:String
// @DataMember
public var endDate:String
// @DataMember
public var ticketNumber:String
/**
* Comma separated list of vendor locators
*/
// @DataMember
public var vendorLocators:String
// @DataMember
public var equipmentCode:String
// @DataMember
public var equipment:String
required public init(){}
}
public class CustomFieldsCollection : List<CustomFieldData>
{
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)
}
}
// @DataContract(Name="CustomField", Namespace="schemas.agentivity.com/types")
public class CustomFieldData : Codable
{
// @DataMember(Order=20)
public var fieldName:String
// @DataMember(Order=30)
public var fieldValue:String
required public init(){}
}
// @DataContract(Name="VendorLocator", Namespace="schemas.agentivity.com/types")
public class BookingExtVendorLocator : IBookingIdentifier, Codable
{
// @DataMember(Order=10)
public var carrierCode:String
// @DataMember(Order=20)
public var vendorLocator:String
required public init(){}
}
// @DataContract(Name="Passenger", Namespace="schemas.agentivity.com/types")
public class BookingPassengerModel : Codable
{
// @DataMember(Order=10)
public var firstName:String
// @DataMember(Order=20)
public var lastName:String
// @DataMember(Order=30)
public var passengerDataId:Int
required public init(){}
}
Swift GetPassengerLocationsByRouting DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /PassengerLocationsByRouting HTTP/1.1 Host: api.agentivity.com Accept: text/csv
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"ResponseMetadata":{"Success":false,"HasCache":false,"HasPaging":false,"CacheMetadata":{"IsFromCache":false,"CachedAt":"\/Date(-62135596800000-0000)\/","CacheExpiresAt":"\/Date(-62135596800000-0000)\/"},"PagingMetadata":{"Offset":"String","Limit":"String","TotalRecords":0,"ResponseRecords":0}},"ResponseReport":[{"RecordLocator":"String","TravelDate":"\/Date(-62135596800000-0000)\/","DepartureDate":"\/Date(-62135596800000-0000)\/","BoardPoint":"String","OffPoint":"String","PnrTicketed":"String","Account":"String","Consultant":"String","PaxList":"String","PhoneNbr":"String","EmailAddress":"String","DestinationCities":"String","Connections":"String","CarrierCodes":"String","AgentivityRef":0,"HotelsNames":"String","FlightNumbers":"String","OwningAgencyLocationID":"String","IataCodes":"String","Itinerary":[{"SegmentType":"String","SegmentNbr":0,"BoardPoint":"String","OffPoint":"String","OperatorCode":"String","OperatorService":"String","SegmentStatus":"String","DepartureTimeFormatted":"String","ArrivalTimeFormatted":"String","ChangeOfDayFormatted":"String","ServiceCode":"String","StartDate":"String","EndDate":"String","TicketNumber":"String","VendorLocators":"String","EquipmentCode":"String","Equipment":"String"}],"ItineraryFormatted":"String","CustomFields":[{"FieldName":"String","FieldValue":"String"}],"DepartureDateTime":"\/Date(-62135596800000-0000)\/","CurrentArrivalDateTime":"\/Date(-62135596800000-0000)\/","SegmentType":"String","AirSegmentNbr":"String","PNRCreationDate":"\/Date(-62135596800000-0000)\/","TicketNumbers":["String"],"VendorLocators":[{"CarrierCode":"String","VendorLocator":"String"}],"PassengerInfo":[{"FirstName":"String","LastName":"String","PassengerDataId":0,"Tickets":[{"Number":"String","Type":"String"}]}],"DestinationCountries":"String"}],"ResponseError":{"ErrorCode":"String","Message":"String","StatusCode":"String","VerboseMessage":"String"}}