Agentivity API

<back to all web services

BookingDetailsByRef

The following routes are available for this service:
GET/BookingDetails
import Foundation
import ServiceStack

// @DataContract(Namespace="schemas.agentivity.com/types")
public class BookingDetailsByRef : CompanyLevelRequestBase, IRequestConsultantID
{
    /**
    * Agentivity Booking Reference
    */
    // @DataMember
    public var agentivityRef:Int

    /**
    * Options to retrieve booking details (valid values are: Passengers, Itinerary, DiEntries, Phones, Notepads, VendorRemarks, Tickets, Versions, VendorLocators, CustomFields, Emails, AccountValue, EventDetails or EmailTrails). The option All can be used to get entire booking data.
    */
    // @DataMember
    public var loadOptions:BookingDetailsOptions

    /**
    * Record locator
    */
    // @DataMember
    public var recordLocator:String

    /**
    * Date in format YYYYMMDD
    */
    // @DataMember
    public var pnrCreationDate:String

    /**
    * Request Consultant ID (sign on)
    */
    // @DataMember
    public var requestConsultantID:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case agentivityRef
        case loadOptions
        case recordLocator
        case pnrCreationDate
        case requestConsultantID
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        agentivityRef = try container.decodeIfPresent(Int.self, forKey: .agentivityRef)
        loadOptions = try container.decodeIfPresent(BookingDetailsOptions.self, forKey: .loadOptions)
        recordLocator = try container.decodeIfPresent(String.self, forKey: .recordLocator)
        pnrCreationDate = try container.decodeIfPresent(String.self, forKey: .pnrCreationDate)
        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 agentivityRef != nil { try container.encode(agentivityRef, forKey: .agentivityRef) }
        if loadOptions != nil { try container.encode(loadOptions, forKey: .loadOptions) }
        if recordLocator != nil { try container.encode(recordLocator, forKey: .recordLocator) }
        if pnrCreationDate != nil { try container.encode(pnrCreationDate, forKey: .pnrCreationDate) }
        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(){}
}

// @Flags()
public enum BookingDetailsOptions : Int, Codable
{
    case None = 0
    case Passengers = 1
    case Itinerary = 2
    case PassengersItinerary = 3
    case DiEntries = 4
    case Phones = 8
    case Notepads = 16
    case VendorRemarks = 32
    case Tickets = 64
    case Versions = 128
    case VendorLocators = 256
    case CustomFields = 512
    case Emails = 1024
    case ContactFields = 1032
    case AccountValue = 2048
    case EventDetails = 4096
    case History = 4224
    case EmailTrails = 8192
    case AgentivityWarnings = 16384
    case AirTicketingDueDates = 32768
    case All = 65535
}

// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
public class BookingDetailsByRefResponse : CollectionResponse<BookingDetails>
{
    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="BookingDetails", Namespace="schemas.agentivity.com/types")
public class BookingDetails : IBookingItinerary, Codable
{
    // @DataMember(Order=20)
    public var recordLocator:String

    // @DataMember(Order=30)
    public var pnrCreationDate:String

    // @DataMember(Order=35)
    public var creationDate:Date?

    // @DataMember(Order=40)
    public var pnrTicketed:String

    // @DataMember(Order=50)
    public var account:String

    // @DataMember(Order=60)
    public var owningConsultantID:String

    // @DataMember(Order=70)
    public var owningConsultant:String

    // @DataMember(Order=80)
    public var crsDescription:String

    // @DataMember(Order=90)
    public var lastActionConsultantID:String

    // @DataMember(Order=100)
    public var lastActionAgencyLocationID:String

    // @DataMember(Order=110)
    public var owningAgencyLocationID:String

    // @DataMember(Order=120)
    public var creatingAgencyIata:String

    // @DataMember(Order=130)
    public var companyID:Int?

    // @DataMember(Order=200)
    public var passengers:[PassengerDetails]

    // @DataMember(Order=210)
    public var phones:[BookingPhone]

    // @DataMember(Order=220)
    public var notepads:[BookingNotepad]

    // @DataMember(Order=230)
    public var vendorRemarks:[VendorRemark]

    // @DataMember(Order=240)
    public var diEntries:[DiEntry]

    // @DataMember(Order=250)
    public var tickets:[BookingTicket]

    // @DataMember(Order=260)
    public var versions:[BookingVersion]

    // @DataMember(Order=270)
    public var vendorLocators:[BookingVendorLocator]

    // @DataMember(Order=280)
    public var customFields:[CustomFieldValue]

    // @DataMember(Order=290)
    public var emails:[BookingEmail]

    // @DataMember(Order=300)
    public var eventDetails:[BookingEventDetail]

    // @DataMember(Order=310)
    public var accountLocations:[BookingAccountLocation]

    // @DataMember(Order=320)
    public var emailTrails:[BookingEmailTrail]

    // @DataMember(Order=330)
    public var agentivityWarnings:[BookingDetailsWarning]

    // @DataMember(Order=340)
    public var airlineTicketingDues:[BookingDetailsAirTicketingDue]

    // @DataMember(Order=350)
    public var ctce:String

    // @DataMember(Order=360)
    public var ctcm:String

    // @DataMember(Order=370)
    public var carbonTonnage:Double?

    // @DataMember(Order=380)
    public var carbonEmissions:[CarbonEmission]

    // @DataMember(Order=500)
    public var owningCompanyCode:String

    // @DataMember(Order=10)
    public var agentivityRef:Int

    // @DataMember(Order=1000)
    public var itinerary:ItinerarySegmentsCollection

    // @DataMember(Order=1010)
    public var itineraryFormatted:String

    required public init(){}
}

// @DataContract(Name="Passenger", Namespace="schemas.agentivity.com/types")
public class PassengerDetails : Codable
{
    // @DataMember(Order=10)
    public var id:Int

    // @DataMember(Order=20)
    public var firstName:String

    // @DataMember(Order=30)
    public var lastName:String

    // @DataMember(Order=40)
    public var frequentFlyers:[FrequentFlyerDetails]

    // @DataMember(Order=50)
    public var sequenceNbr:Int

    // @DataMember(Order=60)
    public var lastNameElement:Int

    // @DataMember(Order=70)
    public var isVip:Bool

    // @DataMember(Order=80)
    public var travellerGUID:String

    required public init(){}
}

// @DataContract(Name="FrequentFlyer", Namespace="schemas.agentivity.com/types")
public class FrequentFlyerDetails : Codable
{
    // @DataMember(Order=10)
    public var vendor:String

    // @DataMember(Order=20)
    public var number:String

    // @DataMember(Order=30)
    public var fullNumber:String

    required public init(){}
}

// @DataContract(Name="Phone", Namespace="schemas.agentivity.com/types")
public class BookingPhone : Codable
{
    // @DataMember(Order=10)
    public var phoneType:String

    // @DataMember(Order=20)
    public var city:String

    // @DataMember(Order=30)
    public var number:String

    // @DataMember(Order=40)
    public var sequenceNbr:Int

    required public init(){}
}

// @DataContract(Name="Notepad", Namespace="schemas.agentivity.com/types")
public class BookingNotepad : Codable
{
    // @DataMember(Order=10)
    public var remark:String

    // @DataMember(Order=20)
    public var createdDate:Date?

    // @DataMember(Order=30)
    public var createdTime:String

    // @DataMember(Order=30)
    public var qualifier:String

    // @DataMember(Order=40)
    public var sequenceNbr:Int

    required public init(){}
}

// @DataContract(Namespace="schemas.agentivity.com/types")
public class VendorRemark : VendorRemarkBase
{
    // @DataMember
    public var vendorRemarkID:Int

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case vendorRemarkID
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        vendorRemarkID = try container.decodeIfPresent(Int.self, forKey: .vendorRemarkID)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if vendorRemarkID != nil { try container.encode(vendorRemarkID, forKey: .vendorRemarkID) }
    }
}

// @DataContract(Namespace="schemas.agentivity.com/types")
public class VendorRemarkBase : Codable
{
    // @DataMember
    public var travelOrderIdentifier:Int?

    // @DataMember
    public var rmkNum:Int?

    // @DataMember
    public var dateStamp:Date?

    // @DataMember
    public var timeStamp:String

    // @DataMember
    public var remarkType:String

    // @DataMember
    public var vendorType:String

    // @DataMember
    public var vendor:String

    // @DataMember
    public var remark:String

    required public init(){}
}

// @DataContract(Name="DIEntry", Namespace="schemas.agentivity.com/types")
public class DiEntry : Codable
{
    // @DataMember(Order=10)
    public var sequenceNbr:Int

    // @DataMember(Order=20)
    public var keyword:String

    // @DataMember(Order=30)
    public var remark:String

    required public init(){}
}

// @DataContract(Name="Ticket", Namespace="schemas.agentivity.com/types")
public class BookingTicket : Codable
{
    // @DataMember(Order=10)
    public var segmentNbr:Int

    // @DataMember(Order=20)
    public var ticketNumber:String

    // @DataMember(Order=30)
    public var ticketType:String

    // @DataMember(Order=40)
    public var ticketDetailsAvailable:Bool

    required public init(){}
}

// @DataContract(Name="Version", Namespace="schemas.agentivity.com/types")
public class BookingVersion : Codable
{
    // @DataMember(Order=10)
    public var agentivityRef:Int?

    // @DataMember(Order=20)
    public var dataBaseTimeStamp:Date?

    // @DataMember(Order=30)
    public var eventType:String

    // @DataMember(Order=40)
    public var pnrTicketed:String

    // @DataMember(Order=50)
    public var lastActionAgentId:String

    // @DataMember(Order=60)
    public var airSegs:Int

    // @DataMember(Order=70)
    public var airPSegs:Int

    // @DataMember(Order=80)
    public var htlSegs:Int

    // @DataMember(Order=90)
    public var htlPSegs:Int

    // @DataMember(Order=100)
    public var carSegs:Int

    // @DataMember(Order=110)
    public var carPSegs:Int

    // @DataMember(Order=120)
    public var trnPSegs:Int

    // @DataMember(Order=130)
    public var owningAgencyLocationID:String

    required public init(){}
}

// @DataContract(Name="VendorLocator", Namespace="schemas.agentivity.com/types")
public class BookingVendorLocator : Codable
{
    // @DataMember(Order=10)
    public var airSegmentNbr:Int?

    // @DataMember(Order=20)
    public var carrierCode:String

    // @DataMember(Order=30)
    public var vendorLocator:String

    required public init(){}
}

// @DataContract(Name="CustomFieldValue", Namespace="schemas.agentivity.com/types")
public class CustomFieldValue : Codable
{
    // @DataMember(Order=10)
    public var pnrPropertiesCustomFieldID:String

    // @DataMember(Order=20)
    public var recordLocator:String

    // @DataMember(Order=30)
    public var pnrCreationDate:Date

    // @DataMember(Order=40)
    public var fieldName:String

    // @DataMember(Order=50)
    public var fieldValue:String

    // @DataMember(Order=60)
    public var customFieldID:Int?

    // @DataMember(Order=70)
    public var creationDateTime:Date?

    // @DataMember(Order=80)
    public var elementNumber:Int?

    // @DataMember(Order=90)
    public var gds:String

    required public init(){}
}

// @DataContract(Name="Email", Namespace="schemas.agentivity.com/types")
public class BookingEmail : Codable
{
    // @DataMember(Order=10)
    public var sequenceNbr:Int

    // @DataMember(Order=20)
    public var emailType:String

    // @DataMember(Order=30)
    public var email:String

    required public init(){}
}

// @DataContract(Name="EventDetail", Namespace="schemas.agentivity.com/types")
public class BookingEventDetail : Codable
{
    // @DataMember(Order=10)
    public var itineraryEventTypeDetailID:Int

    // @DataMember(Order=20)
    public var agentivityRef:Int

    // @DataMember(Order=30)
    public var eventTypeDetail:String

    // @DataMember(Order=40)
    public var oldData:String

    // @DataMember(Order=50)
    public var newData:String

    // @DataMember(Order=60)
    public var dateTimeStamp:Date?

    // @DataMember(Order=70)
    public var eventTypeDetailID:Int?

    required public init(){}
}

// @DataContract(Name="AccountLocation", Namespace="schemas.agentivity.com/types")
public class BookingAccountLocation : Codable
{
    // @DataMember(Order=10)
    public var primaryAccountLocation:String

    // @DataMember(Order=20)
    public var secondaryAccountLocation:String

    // @DataMember(Order=30)
    public var valid:Bool

    // @DataMember(Order=40)
    public var exactMatch:Bool

    // @DataMember(Order=50)
    public var gds:String

    required public init(){}
}

// @DataContract(Name="BookingEmailTrail", Namespace="schemas.agentivity.com/types")
public class BookingEmailTrail : Codable
{
    // @DataMember(Order=10)
    public var recipientEmail:String

    // @DataMember(Order=20)
    public var deliveryDetails:String

    // @DataMember(Order=30)
    public var mailSentDateTime:Date?

    // @DataMember(Order=40)
    public var recipientLastActivityEvent:String

    // @DataMember(Order=50)
    public var emailId:Int?

    // @DataMember(Order=60)
    public var userId:Int?

    // @DataMember(Order=70)
    public var sentResponseMessage:String

    // @DataMember(Order=80)
    public var sentResponseErrorCode:Int?

    // @DataMember(Order=90)
    public var deliveredBookingID:Int

    required public init(){}
}

// @DataContract(Name="Warning", Namespace="schemas.agentivity.com/types")
public class BookingDetailsWarning : Codable
{
    // @DataMember(Order=10)
    public var message:String

    // @DataMember(Order=20)
    public var vendor:String

    // @DataMember(Order=30)
    public var warningDateTime:Date?

    // @DataMember(Order=40)
    public var originalRemark:String

    // @DataMember(Order=50)
    public var clearedDateTime:Date?

    // @DataMember(Order=60)
    public var clearedByConsultantID:String

    // @DataMember(Order=70)
    public var propertiesList:[BookingWarningProperty]

    required public init(){}
}

// @DataContract(Name="Property", Namespace="schemas.agentivity.com/types")
public class BookingWarningProperty : Codable
{
    // @DataMember(Order=10)
    public var name:String

    // @DataMember(Order=20)
    public var value:String

    required public init(){}
}

// @DataContract(Name="TicketingDue", Namespace="schemas.agentivity.com/types")
public class BookingDetailsAirTicketingDue : Codable
{
    // @DataMember(Order=10)
    public var airline:String

    // @DataMember(Order=20)
    public var dueDate:Date?

    // @DataMember(Order=30)
    public var dueTime:String

    required public init(){}
}

// @DataContract(Name="CarbonEmission", Namespace="schemas.agentivity.com/types")
public class CarbonEmission : Codable
{
    // @DataMember(Order=10)
    public var value:Double?

    // @DataMember(Order=20)
    public var unit:MeasurementUnit

    // @DataMember(Order=30)
    public var provider:AssessmentProvider

    // @DataMember(Order=40)
    public var calculationDateTime:Date?

    // @DataMember(Order=50)
    public var calculationDetails:CarbonCalculationDetails

    required public init(){}
}

// @DataContract(Name="MeasurementUnit", Namespace="schemas.agentivity.com/types")
public class MeasurementUnit : Codable
{
    // @DataMember(Order=10)
    public var id:Int16

    // @DataMember(Order=20)
    public var symbol:String

    // @DataMember(Order=30)
    public var name:String

    required public init(){}
}

// @DataContract(Name="AssessmentProvider", Namespace="schemas.agentivity.com/types")
public class AssessmentProvider : Codable
{
    // @DataMember(Order=10)
    public var id:Int16

    // @DataMember(Order=20)
    public var name:String

    // @DataMember(Order=30)
    public var Description:String

    // @DataMember(Order=40)
    public var logoPath:String

    required public init(){}
}

// @DataContract(Name="CarbonCalculationDetails", Namespace="schemas.agentivity.com/types")
public class CarbonCalculationDetails : Codable
{
    // @DataMember(Order=10)
    public var id:Int16

    // @DataMember(Order=20)
    public var name:String

    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(){}
}


Swift BookingDetailsByRef DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /BookingDetails HTTP/1.1 
Host: api.agentivity.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<AgentivityResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="schemas.agentivity.com/types">
  <ResponseMetadata>
    <Success>false</Success>
    <HasCache>false</HasCache>
    <HasPaging>false</HasPaging>
    <CacheMetadata>
      <IsFromCache>false</IsFromCache>
      <CachedAt>0001-01-01T00:00:00</CachedAt>
      <CacheExpiresAt>0001-01-01T00:00:00</CacheExpiresAt>
    </CacheMetadata>
    <PagingMetadata>
      <Limit>String</Limit>
      <Offset>String</Offset>
      <ResponseRecords>0</ResponseRecords>
      <TotalRecords>0</TotalRecords>
    </PagingMetadata>
  </ResponseMetadata>
  <ResponseReport>
    <BookingDetails>
      <AgentivityRef>0</AgentivityRef>
      <RecordLocator>String</RecordLocator>
      <PNRCreationDate>String</PNRCreationDate>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <PNRTicketed>String</PNRTicketed>
      <Account>String</Account>
      <OwningConsultantID>String</OwningConsultantID>
      <OwningConsultant>String</OwningConsultant>
      <CrsDescription>String</CrsDescription>
      <LastActionConsultantID>String</LastActionConsultantID>
      <LastActionAgencyLocationID>String</LastActionAgencyLocationID>
      <OwningAgencyLocationID>String</OwningAgencyLocationID>
      <CreatingAgencyIata>String</CreatingAgencyIata>
      <CompanyID>0</CompanyID>
      <Passengers>
        <Passenger>
          <Id>0</Id>
          <FirstName>String</FirstName>
          <LastName>String</LastName>
          <FrequentFlyers>
            <FrequentFlyer>
              <Vendor>String</Vendor>
              <Number>String</Number>
              <FullNumber>String</FullNumber>
            </FrequentFlyer>
          </FrequentFlyers>
          <SequenceNbr>0</SequenceNbr>
          <LastNameElement>0</LastNameElement>
          <IsVip>false</IsVip>
          <TravellerGUID>String</TravellerGUID>
        </Passenger>
      </Passengers>
      <Phones>
        <Phone>
          <PhoneType>String</PhoneType>
          <City>String</City>
          <Number>String</Number>
          <SequenceNbr>0</SequenceNbr>
        </Phone>
      </Phones>
      <Notepads>
        <Notepad>
          <Remark>String</Remark>
          <CreatedDate>0001-01-01T00:00:00</CreatedDate>
          <CreatedTime>String</CreatedTime>
          <Qualifier>String</Qualifier>
          <SequenceNbr>0</SequenceNbr>
        </Notepad>
      </Notepads>
      <VendorRemarks>
        <VendorRemark>
          <DateStamp>0001-01-01T00:00:00</DateStamp>
          <Remark>String</Remark>
          <RemarkType>String</RemarkType>
          <RmkNum>0</RmkNum>
          <TimeStamp>String</TimeStamp>
          <TravelOrderIdentifier>0</TravelOrderIdentifier>
          <Vendor>String</Vendor>
          <VendorType>String</VendorType>
          <VendorRemarkID>0</VendorRemarkID>
        </VendorRemark>
      </VendorRemarks>
      <DiEntries>
        <DIEntry>
          <SequenceNbr>0</SequenceNbr>
          <Keyword>String</Keyword>
          <Remark>String</Remark>
        </DIEntry>
      </DiEntries>
      <Tickets>
        <Ticket>
          <SegmentNbr>0</SegmentNbr>
          <TicketNumber>String</TicketNumber>
          <TicketType>String</TicketType>
          <TicketDetailsAvailable>false</TicketDetailsAvailable>
        </Ticket>
      </Tickets>
      <Versions>
        <Version>
          <AgentivityRef>0</AgentivityRef>
          <DataBaseTimeStamp>0001-01-01T00:00:00</DataBaseTimeStamp>
          <EventType>String</EventType>
          <PnrTicketed>String</PnrTicketed>
          <LastActionAgentId>String</LastActionAgentId>
          <AirSegs>0</AirSegs>
          <AirPSegs>0</AirPSegs>
          <HtlSegs>0</HtlSegs>
          <HtlPSegs>0</HtlPSegs>
          <CarSegs>0</CarSegs>
          <CarPSegs>0</CarPSegs>
          <TrnPSegs>0</TrnPSegs>
          <OwningAgencyLocationID>String</OwningAgencyLocationID>
        </Version>
      </Versions>
      <VendorLocators>
        <VendorLocator>
          <AirSegmentNbr>0</AirSegmentNbr>
          <CarrierCode>String</CarrierCode>
          <VendorLocator>String</VendorLocator>
        </VendorLocator>
      </VendorLocators>
      <CustomFields>
        <CustomFieldValue>
          <PNRPropertiesCustomFieldID>String</PNRPropertiesCustomFieldID>
          <RecordLocator>String</RecordLocator>
          <PNRCreationDate>0001-01-01T00:00:00</PNRCreationDate>
          <FieldName>String</FieldName>
          <FieldValue>String</FieldValue>
          <CustomFieldID>0</CustomFieldID>
          <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
          <ElementNumber>0</ElementNumber>
          <GDS>String</GDS>
        </CustomFieldValue>
      </CustomFields>
      <Emails>
        <Email>
          <SequenceNbr>0</SequenceNbr>
          <EmailType>String</EmailType>
          <Email>String</Email>
        </Email>
      </Emails>
      <EventDetails>
        <EventDetail>
          <ItineraryEventTypeDetailID>0</ItineraryEventTypeDetailID>
          <AgentivityRef>0</AgentivityRef>
          <EventTypeDetail>String</EventTypeDetail>
          <OldData>String</OldData>
          <NewData>String</NewData>
          <DateTimeStamp>0001-01-01T00:00:00</DateTimeStamp>
          <EventTypeDetailID>0</EventTypeDetailID>
        </EventDetail>
      </EventDetails>
      <AccountLocations>
        <AccountLocation>
          <PrimaryAccountLocation>String</PrimaryAccountLocation>
          <SecondaryAccountLocation>String</SecondaryAccountLocation>
          <Valid>false</Valid>
          <ExactMatch>false</ExactMatch>
          <GDS>String</GDS>
        </AccountLocation>
      </AccountLocations>
      <EmailTrails>
        <BookingEmailTrail>
          <RecipientEmail>String</RecipientEmail>
          <DeliveryDetails>String</DeliveryDetails>
          <MailSentDateTime>0001-01-01T00:00:00</MailSentDateTime>
          <RecipientLastActivityEvent>String</RecipientLastActivityEvent>
          <EmailId>0</EmailId>
          <UserId>0</UserId>
          <SentResponseMessage>String</SentResponseMessage>
          <SentResponseErrorCode>0</SentResponseErrorCode>
          <DeliveredBookingID>0</DeliveredBookingID>
        </BookingEmailTrail>
      </EmailTrails>
      <AgentivityWarnings>
        <Warning>
          <Message>String</Message>
          <Vendor>String</Vendor>
          <WarningDateTime>0001-01-01T00:00:00</WarningDateTime>
          <OriginalRemark>String</OriginalRemark>
          <ClearedDateTime>0001-01-01T00:00:00</ClearedDateTime>
          <ClearedByConsultantID>String</ClearedByConsultantID>
          <PropertiesList>
            <Property>
              <Name>String</Name>
              <Value>String</Value>
            </Property>
          </PropertiesList>
        </Warning>
      </AgentivityWarnings>
      <AirlineTicketingDues>
        <TicketingDue>
          <Airline>String</Airline>
          <DueDate>0001-01-01T00:00:00</DueDate>
          <DueTime>String</DueTime>
        </TicketingDue>
      </AirlineTicketingDues>
      <CTCE>String</CTCE>
      <CTCM>String</CTCM>
      <CarbonTonnage>0</CarbonTonnage>
      <CarbonEmissions>
        <CarbonEmission>
          <Value>0</Value>
          <Unit>
            <Id>0</Id>
            <Symbol>String</Symbol>
            <Name>String</Name>
          </Unit>
          <Provider>
            <Id>0</Id>
            <Name>String</Name>
            <Description>String</Description>
            <LogoPath>String</LogoPath>
          </Provider>
          <CalculationDateTime>0001-01-01T00:00:00</CalculationDateTime>
          <CalculationDetails>
            <Id>0</Id>
            <Name>String</Name>
          </CalculationDetails>
        </CarbonEmission>
      </CarbonEmissions>
      <OwningCompanyCode>String</OwningCompanyCode>
      <Itinerary>
        <ItinerarySegment>
          <ArrivalTimeFormatted>String</ArrivalTimeFormatted>
          <BoardPoint>String</BoardPoint>
          <ChangeOfDayFormatted>String</ChangeOfDayFormatted>
          <DepartureTimeFormatted>String</DepartureTimeFormatted>
          <EndDate>String</EndDate>
          <Equipment>String</Equipment>
          <EquipmentCode>String</EquipmentCode>
          <OffPoint>String</OffPoint>
          <OperatorCode>String</OperatorCode>
          <OperatorService>String</OperatorService>
          <SegmentNbr>0</SegmentNbr>
          <SegmentStatus>String</SegmentStatus>
          <SegmentType>String</SegmentType>
          <ServiceCode>String</ServiceCode>
          <StartDate>String</StartDate>
          <TicketNumber>String</TicketNumber>
          <VendorLocators>String</VendorLocators>
        </ItinerarySegment>
      </Itinerary>
      <ItineraryFormatted>String</ItineraryFormatted>
    </BookingDetails>
  </ResponseReport>
  <ResponseError>
    <ErrorCode>String</ErrorCode>
    <Message>String</Message>
    <StatusCode>String</StatusCode>
    <VerboseMessage>String</VerboseMessage>
  </ResponseError>
</AgentivityResponse>