Agentivity API

<back to all web services

GetPassengerLocationsByRouting

The following routes are available for this service:
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 .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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: application/json
HTTP/1.1 200 OK
Content-Type: application/json
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"}}