Agentivity API

<back to all web services

BookingDetailsByRef

The following routes are available for this service:
GET/BookingDetails
namespace AgentivityAPI.ServiceModel

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<DataContract(Name="FrequentFlyer", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type FrequentFlyerDetails() = 
        [<DataMember(Order=10)>]
        member val Vendor:String = null with get,set

        [<DataMember(Order=20)>]
        member val Number:String = null with get,set

        [<DataMember(Order=30)>]
        member val FullNumber:String = null with get,set

    [<DataContract(Name="Passenger", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type PassengerDetails() = 
        [<DataMember(Order=10)>]
        member val Id:Int32 = new Int32() with get,set

        [<DataMember(Order=20)>]
        member val FirstName:String = null with get,set

        [<DataMember(Order=30)>]
        member val LastName:String = null with get,set

        [<DataMember(Order=40)>]
        member val FrequentFlyers:ResizeArray<FrequentFlyerDetails> = null with get,set

        [<DataMember(Order=50)>]
        member val SequenceNbr:Int32 = new Int32() with get,set

        [<DataMember(Order=60)>]
        member val LastNameElement:Int32 = new Int32() with get,set

        [<DataMember(Order=70)>]
        member val IsVip:Boolean = new Boolean() with get,set

        [<DataMember(Order=80)>]
        member val TravellerGUID:String = null with get,set

    [<DataContract(Name="Phone", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingPhone() = 
        [<DataMember(Order=10)>]
        member val PhoneType:String = null with get,set

        [<DataMember(Order=20)>]
        member val City:String = null with get,set

        [<DataMember(Order=30)>]
        member val Number:String = null with get,set

        [<DataMember(Order=40)>]
        member val SequenceNbr:Int32 = new Int32() with get,set

    [<DataContract(Name="Notepad", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingNotepad() = 
        [<DataMember(Order=10)>]
        member val Remark:String = null with get,set

        [<DataMember(Order=20)>]
        member val CreatedDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=30)>]
        member val CreatedTime:String = null with get,set

        [<DataMember(Order=30)>]
        member val Qualifier:String = null with get,set

        [<DataMember(Order=40)>]
        member val SequenceNbr:Int32 = new Int32() with get,set

    [<DataContract(Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type VendorRemarkBase() = 
        [<DataMember>]
        member val TravelOrderIdentifier:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember>]
        member val RmkNum:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember>]
        member val DateStamp:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember>]
        member val TimeStamp:String = null with get,set

        [<DataMember>]
        member val RemarkType:String = null with get,set

        [<DataMember>]
        member val VendorType:String = null with get,set

        [<DataMember>]
        member val Vendor:String = null with get,set

        [<DataMember>]
        member val Remark:String = null with get,set

    [<DataContract(Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type VendorRemark() = 
        inherit VendorRemarkBase()
        [<DataMember>]
        member val VendorRemarkID:Int32 = new Int32() with get,set

    [<DataContract(Name="DIEntry", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type DiEntry() = 
        [<DataMember(Order=10)>]
        member val SequenceNbr:Int32 = new Int32() with get,set

        [<DataMember(Order=20)>]
        member val Keyword:String = null with get,set

        [<DataMember(Order=30)>]
        member val Remark:String = null with get,set

    [<DataContract(Name="Ticket", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingTicket() = 
        [<DataMember(Order=10)>]
        member val SegmentNbr:Int32 = new Int32() with get,set

        [<DataMember(Order=20)>]
        member val TicketNumber:String = null with get,set

        [<DataMember(Order=30)>]
        member val TicketType:String = null with get,set

        [<DataMember(Order=40)>]
        member val TicketDetailsAvailable:Boolean = new Boolean() with get,set

    [<DataContract(Name="Version", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingVersion() = 
        [<DataMember(Order=10)>]
        member val AgentivityRef:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Order=20)>]
        member val DataBaseTimeStamp:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=30)>]
        member val EventType:String = null with get,set

        [<DataMember(Order=40)>]
        member val PnrTicketed:String = null with get,set

        [<DataMember(Order=50)>]
        member val LastActionAgentId:String = null with get,set

        [<DataMember(Order=60)>]
        member val AirSegs:Int32 = new Int32() with get,set

        [<DataMember(Order=70)>]
        member val AirPSegs:Int32 = new Int32() with get,set

        [<DataMember(Order=80)>]
        member val HtlSegs:Int32 = new Int32() with get,set

        [<DataMember(Order=90)>]
        member val HtlPSegs:Int32 = new Int32() with get,set

        [<DataMember(Order=100)>]
        member val CarSegs:Int32 = new Int32() with get,set

        [<DataMember(Order=110)>]
        member val CarPSegs:Int32 = new Int32() with get,set

        [<DataMember(Order=120)>]
        member val TrnPSegs:Int32 = new Int32() with get,set

        [<DataMember(Order=130)>]
        member val OwningAgencyLocationID:String = null with get,set

    [<DataContract(Name="VendorLocator", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingVendorLocator() = 
        [<DataMember(Order=10)>]
        member val AirSegmentNbr:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Order=20)>]
        member val CarrierCode:String = null with get,set

        [<DataMember(Order=30)>]
        member val VendorLocator:String = null with get,set

    [<DataContract(Name="CustomFieldValue", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type CustomFieldValue() = 
        [<DataMember(Order=10)>]
        member val PNRPropertiesCustomFieldID:String = null with get,set

        [<DataMember(Order=20)>]
        member val RecordLocator:String = null with get,set

        [<DataMember(Order=30)>]
        member val PNRCreationDate:DateTime = new DateTime() with get,set

        [<DataMember(Order=40)>]
        member val FieldName:String = null with get,set

        [<DataMember(Order=50)>]
        member val FieldValue:String = null with get,set

        [<DataMember(Order=60)>]
        member val CustomFieldID:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Order=70)>]
        member val CreationDateTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=80)>]
        member val ElementNumber:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Order=90)>]
        member val GDS:String = null with get,set

    [<DataContract(Name="Email", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingEmail() = 
        [<DataMember(Order=10)>]
        member val SequenceNbr:Int32 = new Int32() with get,set

        [<DataMember(Order=20)>]
        member val EmailType:String = null with get,set

        [<DataMember(Order=30)>]
        member val Email:String = null with get,set

    [<DataContract(Name="EventDetail", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingEventDetail() = 
        [<DataMember(Order=10)>]
        member val ItineraryEventTypeDetailID:Int32 = new Int32() with get,set

        [<DataMember(Order=20)>]
        member val AgentivityRef:Int32 = new Int32() with get,set

        [<DataMember(Order=30)>]
        member val EventTypeDetail:String = null with get,set

        [<DataMember(Order=40)>]
        member val OldData:String = null with get,set

        [<DataMember(Order=50)>]
        member val NewData:String = null with get,set

        [<DataMember(Order=60)>]
        member val DateTimeStamp:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=70)>]
        member val EventTypeDetailID:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<DataContract(Name="AccountLocation", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingAccountLocation() = 
        [<DataMember(Order=10)>]
        member val PrimaryAccountLocation:String = null with get,set

        [<DataMember(Order=20)>]
        member val SecondaryAccountLocation:String = null with get,set

        [<DataMember(Order=30)>]
        member val Valid:Boolean = new Boolean() with get,set

        [<DataMember(Order=40)>]
        member val ExactMatch:Boolean = new Boolean() with get,set

        [<DataMember(Order=50)>]
        member val GDS:String = null with get,set

    [<DataContract(Name="BookingEmailTrail", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingEmailTrail() = 
        [<DataMember(Order=10)>]
        member val RecipientEmail:String = null with get,set

        [<DataMember(Order=20)>]
        member val DeliveryDetails:String = null with get,set

        [<DataMember(Order=30)>]
        member val MailSentDateTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=40)>]
        member val RecipientLastActivityEvent:String = null with get,set

        [<DataMember(Order=50)>]
        member val EmailId:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Order=60)>]
        member val UserId:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Order=70)>]
        member val SentResponseMessage:String = null with get,set

        [<DataMember(Order=80)>]
        member val SentResponseErrorCode:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Order=90)>]
        member val DeliveredBookingID:Int32 = new Int32() with get,set

    [<DataContract(Name="Property", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingWarningProperty() = 
        [<DataMember(Order=10)>]
        member val Name:String = null with get,set

        [<DataMember(Order=20)>]
        member val Value:String = null with get,set

    [<DataContract(Name="Warning", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingDetailsWarning() = 
        [<DataMember(Order=10)>]
        member val Message:String = null with get,set

        [<DataMember(Order=20)>]
        member val Vendor:String = null with get,set

        [<DataMember(Order=30)>]
        member val WarningDateTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=40)>]
        member val OriginalRemark:String = null with get,set

        [<DataMember(Order=50)>]
        member val ClearedDateTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=60)>]
        member val ClearedByConsultantID:String = null with get,set

        [<DataMember(Order=70)>]
        member val PropertiesList:ResizeArray<BookingWarningProperty> = null with get,set

    [<DataContract(Name="TicketingDue", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingDetailsAirTicketingDue() = 
        [<DataMember(Order=10)>]
        member val Airline:String = null with get,set

        [<DataMember(Order=20)>]
        member val DueDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=30)>]
        member val DueTime:String = null with get,set

    [<DataContract(Name="MeasurementUnit", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type MeasurementUnit() = 
        [<DataMember(Order=10)>]
        member val Id:Int16 = new Int16() with get,set

        [<DataMember(Order=20)>]
        member val Symbol:String = null with get,set

        [<DataMember(Order=30)>]
        member val Name:String = null with get,set

    [<DataContract(Name="AssessmentProvider", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type AssessmentProvider() = 
        [<DataMember(Order=10)>]
        member val Id:Int16 = new Int16() with get,set

        [<DataMember(Order=20)>]
        member val Name:String = null with get,set

        [<DataMember(Order=30)>]
        member val Description:String = null with get,set

        [<DataMember(Order=40)>]
        member val LogoPath:String = null with get,set

    [<DataContract(Name="CarbonCalculationDetails", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type CarbonCalculationDetails() = 
        [<DataMember(Order=10)>]
        member val Id:Int16 = new Int16() with get,set

        [<DataMember(Order=20)>]
        member val Name:String = null with get,set

    [<DataContract(Name="CarbonEmission", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type CarbonEmission() = 
        [<DataMember(Order=10)>]
        member val Value:Nullable<Double> = new Nullable<Double>() with get,set

        [<DataMember(Order=20)>]
        member val Unit:MeasurementUnit = null with get,set

        [<DataMember(Order=30)>]
        member val Provider:AssessmentProvider = null with get,set

        [<DataMember(Order=40)>]
        member val CalculationDateTime:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=50)>]
        member val CalculationDetails:CarbonCalculationDetails = null with get,set

    [<DataContract(Name="ItinerarySegment", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type ItinerarySegment() = 
        [<DataMember>]
        member val SegmentType:String = null with get,set

        [<DataMember>]
        member val SegmentNbr:Int32 = new Int32() with get,set

        [<DataMember>]
        member val BoardPoint:String = null with get,set

        [<DataMember>]
        member val OffPoint:String = null with get,set

        [<DataMember>]
        member val OperatorCode:String = null with get,set

        [<DataMember>]
        member val OperatorService:String = null with get,set

        [<DataMember>]
        member val SegmentStatus:String = null with get,set

        [<DataMember>]
        member val DepartureTimeFormatted:String = null with get,set

        [<DataMember>]
        member val ArrivalTimeFormatted:String = null with get,set

        [<DataMember>]
        member val ChangeOfDayFormatted:String = null with get,set

        [<DataMember>]
        member val ServiceCode:String = null with get,set

        [<DataMember>]
        member val StartDate:String = null with get,set

        [<DataMember>]
        member val EndDate:String = null with get,set

        [<DataMember>]
        member val TicketNumber:String = null with get,set

        ///<summary>
        ///Comma separated list of vendor locators
        ///</summary>
        [<DataMember>]
        member val VendorLocators:String = null with get,set

        [<DataMember>]
        member val EquipmentCode:String = null with get,set

        [<DataMember>]
        member val Equipment:String = null with get,set

    [<AllowNullLiteral>]
    type ItinerarySegmentsCollection() = 
        inherit ResizeArray<ItinerarySegment>()

    [<DataContract(Name="BookingDetails", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingDetails() = 
        [<DataMember(Order=20)>]
        member val RecordLocator:String = null with get,set

        [<DataMember(Order=30)>]
        member val PNRCreationDate:String = null with get,set

        [<DataMember(Order=35)>]
        member val CreationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        [<DataMember(Order=40)>]
        member val PNRTicketed:String = null with get,set

        [<DataMember(Order=50)>]
        member val Account:String = null with get,set

        [<DataMember(Order=60)>]
        member val OwningConsultantID:String = null with get,set

        [<DataMember(Order=70)>]
        member val OwningConsultant:String = null with get,set

        [<DataMember(Order=80)>]
        member val CrsDescription:String = null with get,set

        [<DataMember(Order=90)>]
        member val LastActionConsultantID:String = null with get,set

        [<DataMember(Order=100)>]
        member val LastActionAgencyLocationID:String = null with get,set

        [<DataMember(Order=110)>]
        member val OwningAgencyLocationID:String = null with get,set

        [<DataMember(Order=120)>]
        member val CreatingAgencyIata:String = null with get,set

        [<DataMember(Order=130)>]
        member val CompanyID:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember(Order=200)>]
        member val Passengers:ResizeArray<PassengerDetails> = null with get,set

        [<DataMember(Order=210)>]
        member val Phones:ResizeArray<BookingPhone> = null with get,set

        [<DataMember(Order=220)>]
        member val Notepads:ResizeArray<BookingNotepad> = null with get,set

        [<DataMember(Order=230)>]
        member val VendorRemarks:ResizeArray<VendorRemark> = null with get,set

        [<DataMember(Order=240)>]
        member val DiEntries:ResizeArray<DiEntry> = null with get,set

        [<DataMember(Order=250)>]
        member val Tickets:ResizeArray<BookingTicket> = null with get,set

        [<DataMember(Order=260)>]
        member val Versions:ResizeArray<BookingVersion> = null with get,set

        [<DataMember(Order=270)>]
        member val VendorLocators:ResizeArray<BookingVendorLocator> = null with get,set

        [<DataMember(Order=280)>]
        member val CustomFields:ResizeArray<CustomFieldValue> = null with get,set

        [<DataMember(Order=290)>]
        member val Emails:ResizeArray<BookingEmail> = null with get,set

        [<DataMember(Order=300)>]
        member val EventDetails:ResizeArray<BookingEventDetail> = null with get,set

        [<DataMember(Order=310)>]
        member val AccountLocations:ResizeArray<BookingAccountLocation> = null with get,set

        [<DataMember(Order=320)>]
        member val EmailTrails:ResizeArray<BookingEmailTrail> = null with get,set

        [<DataMember(Order=330)>]
        member val AgentivityWarnings:ResizeArray<BookingDetailsWarning> = null with get,set

        [<DataMember(Order=340)>]
        member val AirlineTicketingDues:ResizeArray<BookingDetailsAirTicketingDue> = null with get,set

        [<DataMember(Order=350)>]
        member val CTCE:String = null with get,set

        [<DataMember(Order=360)>]
        member val CTCM:String = null with get,set

        [<DataMember(Order=370)>]
        member val CarbonTonnage:Nullable<Double> = new Nullable<Double>() with get,set

        [<DataMember(Order=380)>]
        member val CarbonEmissions:ResizeArray<CarbonEmission> = null with get,set

        [<DataMember(Order=500)>]
        member val OwningCompanyCode:String = null with get,set

        [<DataMember(Order=10)>]
        member val AgentivityRef:Int32 = new Int32() with get,set

        [<DataMember(Order=1000)>]
        member val Itinerary:ItinerarySegmentsCollection = null with get,set

        [<DataMember(Order=1010)>]
        member val ItineraryFormatted:String = null with get,set

    [<DataContract(Name="CacheMetadata", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type CacheMetadata() = 
        [<DataMember(Order=1)>]
        member val CachedAt:DateTime = new DateTime() with get,set

        [<DataMember(Order=2)>]
        member val CacheExpiresAt:DateTime = new DateTime() with get,set

        [<DataMember(Order=0)>]
        member val IsFromCache:Boolean = new Boolean() with get,set

    [<DataContract(Name="Metadata", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type PagingMetadata() = 
        ///<summary>
        ///Starting Record
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="string", Description="Starting Record", Name="Offset", ParameterType="query")>]
        member val Offset:String = null with get,set

        ///<summary>
        ///Number of records to return (PageSize)
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="string", Description="Number of records to return (PageSize)", Name="Limit", ParameterType="query")>]
        member val Limit:String = null with get,set

        ///<summary>
        ///Total Number of Records in a Full Reponse (if no paging)
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="string", Description="Total Number of Records in a Full Reponse (if no paging)", Name="TotalRecords", ParameterType="query")>]
        member val TotalRecords:Int32 = new Int32() with get,set

        ///<summary>
        ///Total Number of Records in this Reponse (on this page)
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="string", Description="Total Number of Records in this Reponse (on this page)", Name="ResponseRecords", ParameterType="query")>]
        member val ResponseRecords:Int32 = new Int32() with get,set

    [<DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type ResponseMetadata() = 
        [<DataMember(Order=0)>]
        member val Success:Boolean = new Boolean() with get,set

        [<DataMember(Order=1)>]
        member val HasCache:Boolean = new Boolean() with get,set

        [<DataMember(Order=2)>]
        member val HasPaging:Boolean = new Boolean() with get,set

        [<DataMember(Order=3, EmitDefaultValue=false)>]
        member val CacheMetadata:CacheMetadata = null with get,set

        [<DataMember(Order=4, EmitDefaultValue=false)>]
        member val PagingMetadata:PagingMetadata = null with get,set

    [<DataContract(Name="ApiRequestPerHour", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type ApiRequestPerHour() = 
        [<DataMember(Order=10)>]
        member val RequestDate:DateTime = new DateTime() with get,set

        [<DataMember(Order=100)>]
        member val Hour0:Int32 = new Int32() with get,set

        [<DataMember(Order=110)>]
        member val Hour1:Int32 = new Int32() with get,set

        [<DataMember(Order=120)>]
        member val Hour2:Int32 = new Int32() with get,set

        [<DataMember(Order=130)>]
        member val Hour3:Int32 = new Int32() with get,set

        [<DataMember(Order=140)>]
        member val Hour4:Int32 = new Int32() with get,set

        [<DataMember(Order=150)>]
        member val Hour5:Int32 = new Int32() with get,set

        [<DataMember(Order=160)>]
        member val Hour6:Int32 = new Int32() with get,set

        [<DataMember(Order=170)>]
        member val Hour7:Int32 = new Int32() with get,set

        [<DataMember(Order=180)>]
        member val Hour8:Int32 = new Int32() with get,set

        [<DataMember(Order=190)>]
        member val Hour9:Int32 = new Int32() with get,set

        [<DataMember(Order=200)>]
        member val Hour10:Int32 = new Int32() with get,set

        [<DataMember(Order=210)>]
        member val Hour11:Int32 = new Int32() with get,set

        [<DataMember(Order=220)>]
        member val Hour12:Int32 = new Int32() with get,set

        [<DataMember(Order=230)>]
        member val Hour13:Int32 = new Int32() with get,set

        [<DataMember(Order=240)>]
        member val Hour14:Int32 = new Int32() with get,set

        [<DataMember(Order=250)>]
        member val Hour15:Int32 = new Int32() with get,set

        [<DataMember(Order=260)>]
        member val Hour16:Int32 = new Int32() with get,set

        [<DataMember(Order=270)>]
        member val Hour17:Int32 = new Int32() with get,set

        [<DataMember(Order=280)>]
        member val Hour18:Int32 = new Int32() with get,set

        [<DataMember(Order=290)>]
        member val Hour19:Int32 = new Int32() with get,set

        [<DataMember(Order=300)>]
        member val Hour20:Int32 = new Int32() with get,set

        [<DataMember(Order=310)>]
        member val Hour21:Int32 = new Int32() with get,set

        [<DataMember(Order=320)>]
        member val Hour22:Int32 = new Int32() with get,set

        [<DataMember(Order=330)>]
        member val Hour23:Int32 = new Int32() with get,set

    [<DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type AgentivityError() = 
        [<DataMember>]
        member val ErrorCode:String = null with get,set

        [<DataMember>]
        member val Message:String = null with get,set

        [<DataMember>]
        member val StatusCode:String = null with get,set

        [<DataMember>]
        member val VerboseMessage:String = null with get,set

    [<DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type CollectionResponse<TItem>() = 
        [<DataMember(Order=1)>]
        member val ResponseMetadata:ResponseMetadata = null with get,set

        [<DataMember(Order=2, EmitDefaultValue=false)>]
        member val ResponseReport:ResizeArray<ApiRequestPerHour> = null with get,set

        [<DataMember(Order=3, EmitDefaultValue=false)>]
        member val ResponseError:AgentivityError = null with get,set

    [<DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingDetailsByRefResponse() = 
        inherit CollectionResponse<BookingDetails>()

    [<DataContract(Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type CompanyLevelRequestBase() = 
        inherit PagingMetadata()
        ///<summary>
        ///Comma Delimited List of Owning Company Codes
        ///</summary>
        [<DataMember>]
        member val OwningCompanyCode:String[] = null with get,set

        ///<summary>
        ///UserName in form of an email address
        ///</summary>
        [<DataMember>]
        member val UserName:String = null with get,set

    [<Flags>]
    type BookingDetailsOptions =
        | None = 0
        | Passengers = 1
        | Itinerary = 2
        | PassengersItinerary = 3
        | DiEntries = 4
        | Phones = 8
        | Notepads = 16
        | VendorRemarks = 32
        | Tickets = 64
        | Versions = 128
        | VendorLocators = 256
        | CustomFields = 512
        | Emails = 1024
        | ContactFields = 1032
        | AccountValue = 2048
        | EventDetails = 4096
        | History = 4224
        | EmailTrails = 8192
        | AgentivityWarnings = 16384
        | AirTicketingDueDates = 32768
        | All = 65535

    [<DataContract(Namespace="schemas.agentivity.com/types")>]
    [<AllowNullLiteral>]
    type BookingDetailsByRef() = 
        inherit CompanyLevelRequestBase()
        ///<summary>
        ///Agentivity Booking Reference
        ///</summary>
        [<DataMember>]
        member val AgentivityRef:Int32 = new Int32() with get,set

        ///<summary>
        ///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.
        ///</summary>
        [<DataMember>]
        member val LoadOptions:BookingDetailsOptions = new BookingDetailsOptions() with get,set

        ///<summary>
        ///Record locator
        ///</summary>
        [<DataMember>]
        member val RecordLocator:String = null with get,set

        ///<summary>
        ///Date in format YYYYMMDD
        ///</summary>
        [<DataMember>]
        member val PNRCreationDate:String = null with get,set

        ///<summary>
        ///Request Consultant ID (sign on)
        ///</summary>
        [<DataMember>]
        member val RequestConsultantID:String = null with get,set

F# BookingDetailsByRef 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 /BookingDetails 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":[{"AgentivityRef":0,"RecordLocator":"String","PNRCreationDate":"String","CreationDate":"\/Date(-62135596800000-0000)\/","PNRTicketed":"String","Account":"String","OwningConsultantID":"String","OwningConsultant":"String","CrsDescription":"String","LastActionConsultantID":"String","LastActionAgencyLocationID":"String","OwningAgencyLocationID":"String","CreatingAgencyIata":"String","CompanyID":0,"Passengers":[{"Id":0,"FirstName":"String","LastName":"String","FrequentFlyers":[{"Vendor":"String","Number":"String","FullNumber":"String"}],"SequenceNbr":0,"LastNameElement":0,"IsVip":false,"TravellerGUID":"String"}],"Phones":[{"PhoneType":"String","City":"String","Number":"String","SequenceNbr":0}],"Notepads":[{"Remark":"String","CreatedDate":"\/Date(-62135596800000-0000)\/","CreatedTime":"String","Qualifier":"String","SequenceNbr":0}],"VendorRemarks":[{"VendorRemarkID":0,"TravelOrderIdentifier":0,"RmkNum":0,"DateStamp":"\/Date(-62135596800000-0000)\/","TimeStamp":"String","RemarkType":"String","VendorType":"String","Vendor":"String","Remark":"String"}],"DiEntries":[{"SequenceNbr":0,"Keyword":"String","Remark":"String"}],"Tickets":[{"SegmentNbr":0,"TicketNumber":"String","TicketType":"String","TicketDetailsAvailable":false}],"Versions":[{"AgentivityRef":0,"DataBaseTimeStamp":"\/Date(-62135596800000-0000)\/","EventType":"String","PnrTicketed":"String","LastActionAgentId":"String","AirSegs":0,"AirPSegs":0,"HtlSegs":0,"HtlPSegs":0,"CarSegs":0,"CarPSegs":0,"TrnPSegs":0,"OwningAgencyLocationID":"String"}],"VendorLocators":[{"AirSegmentNbr":0,"CarrierCode":"String","VendorLocator":"String"}],"CustomFields":[{"PNRPropertiesCustomFieldID":"String","RecordLocator":"String","PNRCreationDate":"\/Date(-62135596800000-0000)\/","FieldName":"String","FieldValue":"String","CustomFieldID":0,"CreationDateTime":"\/Date(-62135596800000-0000)\/","ElementNumber":0,"GDS":"String"}],"Emails":[{"SequenceNbr":0,"EmailType":"String","Email":"String"}],"EventDetails":[{"ItineraryEventTypeDetailID":0,"AgentivityRef":0,"EventTypeDetail":"String","OldData":"String","NewData":"String","DateTimeStamp":"\/Date(-62135596800000-0000)\/","EventTypeDetailID":0}],"AccountLocations":[{"PrimaryAccountLocation":"String","SecondaryAccountLocation":"String","Valid":false,"ExactMatch":false,"GDS":"String"}],"EmailTrails":[{"RecipientEmail":"String","DeliveryDetails":"String","MailSentDateTime":"\/Date(-62135596800000-0000)\/","RecipientLastActivityEvent":"String","EmailId":0,"UserId":0,"SentResponseMessage":"String","SentResponseErrorCode":0,"DeliveredBookingID":0}],"AgentivityWarnings":[{"Message":"String","Vendor":"String","WarningDateTime":"\/Date(-62135596800000-0000)\/","OriginalRemark":"String","ClearedDateTime":"\/Date(-62135596800000-0000)\/","ClearedByConsultantID":"String","PropertiesList":[{"Name":"String","Value":"String"}]}],"AirlineTicketingDues":[{"Airline":"String","DueDate":"\/Date(-62135596800000-0000)\/","DueTime":"String"}],"CTCE":"String","CTCM":"String","CarbonTonnage":0,"CarbonEmissions":[{"Value":0,"Unit":{"Id":0,"Symbol":"String","Name":"String"},"Provider":{"Id":0,"Name":"String","Description":"String","LogoPath":"String"},"CalculationDateTime":"\/Date(-62135596800000-0000)\/","CalculationDetails":{"Id":0,"Name":"String"}}],"OwningCompanyCode":"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"}],"ResponseError":{"ErrorCode":"String","Message":"String","StatusCode":"String","VerboseMessage":"String"}}