Agentivity API

<back to all web services

GetPNRSegments

The following routes are available for this service:
GET/PNRSegments
import 'package:servicestack/servicestack.dart';

// @DataContract(Name="Metadata", Namespace="schemas.agentivity.com/types")
class PagingMetadata implements IConvertible
{
    /**
    * Starting Record
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="Starting Record", Name="Offset", ParameterType="query")
    String? Offset;

    /**
    * Number of records to return (PageSize)
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="Number of records to return (PageSize)", Name="Limit", ParameterType="query")
    String? Limit;

    /**
    * 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")
    int? TotalRecords;

    /**
    * 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")
    int? ResponseRecords;

    PagingMetadata({this.Offset,this.Limit,this.TotalRecords,this.ResponseRecords});
    PagingMetadata.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Offset = json['Offset'];
        Limit = json['Limit'];
        TotalRecords = json['TotalRecords'];
        ResponseRecords = json['ResponseRecords'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Offset': Offset,
        'Limit': Limit,
        'TotalRecords': TotalRecords,
        'ResponseRecords': ResponseRecords
    };

    getTypeName() => "PagingMetadata";
    TypeContext? context = _ctx;
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class HostSystem implements IConvertible
{
    // @DataMember(Order=1)
    String? Vendor;

    // @DataMember(Order=2)
    String? VendorLocator;

    HostSystem({this.Vendor,this.VendorLocator});
    HostSystem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Vendor = json['Vendor'];
        VendorLocator = json['VendorLocator'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Vendor': Vendor,
        'VendorLocator': VendorLocator
    };

    getTypeName() => "HostSystem";
    TypeContext? context = _ctx;
}

class AirlineReferences extends ListBase<HostSystem> implements IConvertible
{
    final List<HostSystem> l = [];
    set length(int newLength) { l.length = newLength; }
    int get length => l.length;
    HostSystem operator [](int index) => l[index];
    void operator []=(int index, HostSystem value) { l[index] = value; }
    AirlineReferences();
    AirlineReferences.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "AirlineReferences";
    TypeContext? context = _ctx;
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class PassengerName implements IConvertible
{
    // @DataMember(Order=1)
    String? LastName;

    // @DataMember(Order=2)
    String? FirstName;

    PassengerName({this.LastName,this.FirstName});
    PassengerName.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        LastName = json['LastName'];
        FirstName = json['FirstName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'LastName': LastName,
        'FirstName': FirstName
    };

    getTypeName() => "PassengerName";
    TypeContext? context = _ctx;
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class Coupon implements IConvertible
{
    // @DataMember(Order=1)
    String? CouponSequenceNbr;

    // @DataMember(Order=2)
    String? CouponBoardPoint;

    // @DataMember(Order=3)
    String? CouponOffPoint;

    // @DataMember(Order=4)
    String? Carrier;

    // @DataMember(Order=5)
    String? FlightNbr;

    // @DataMember(Order=6)
    String? FlightDate;

    // @DataMember(Order=7)
    String? FlightTime;

    Coupon({this.CouponSequenceNbr,this.CouponBoardPoint,this.CouponOffPoint,this.Carrier,this.FlightNbr,this.FlightDate,this.FlightTime});
    Coupon.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CouponSequenceNbr = json['CouponSequenceNbr'];
        CouponBoardPoint = json['CouponBoardPoint'];
        CouponOffPoint = json['CouponOffPoint'];
        Carrier = json['Carrier'];
        FlightNbr = json['FlightNbr'];
        FlightDate = json['FlightDate'];
        FlightTime = json['FlightTime'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CouponSequenceNbr': CouponSequenceNbr,
        'CouponBoardPoint': CouponBoardPoint,
        'CouponOffPoint': CouponOffPoint,
        'Carrier': Carrier,
        'FlightNbr': FlightNbr,
        'FlightDate': FlightDate,
        'FlightTime': FlightTime
    };

    getTypeName() => "Coupon";
    TypeContext? context = _ctx;
}

class Coupons extends ListBase<Coupon> implements IConvertible
{
    final List<Coupon> l = [];
    set length(int newLength) { l.length = newLength; }
    int get length => l.length;
    Coupon operator [](int index) => l[index];
    void operator []=(int index, Coupon value) { l[index] = value; }
    Coupons();
    Coupons.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "Coupons";
    TypeContext? context = _ctx;
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class PNRSummaryTicket implements IConvertible
{
    // @DataMember(Order=1)
    String? TktNumber;

    // @DataMember(Order=2)
    PassengerName? Passenger;

    // @DataMember(Order=3)
    Coupons? Coupons;

    PNRSummaryTicket({this.TktNumber,this.Passenger,this.Coupons});
    PNRSummaryTicket.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TktNumber = json['TktNumber'];
        Passenger = JsonConverters.fromJson(json['Passenger'],'PassengerName',context!);
        Coupons = JsonConverters.fromJson(json['Coupons'],'Coupons',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TktNumber': TktNumber,
        'Passenger': JsonConverters.toJson(Passenger,'PassengerName',context!),
        'Coupons': JsonConverters.toJson(Coupons,'Coupons',context!)
    };

    getTypeName() => "PNRSummaryTicket";
    TypeContext? context = _ctx;
}

class PNRSummaryTickets extends ListBase<PNRSummaryTicket> implements IConvertible
{
    final List<PNRSummaryTicket> l = [];
    set length(int newLength) { l.length = newLength; }
    int get length => l.length;
    PNRSummaryTicket operator [](int index) => l[index];
    void operator []=(int index, PNRSummaryTicket value) { l[index] = value; }
    PNRSummaryTickets();
    PNRSummaryTickets.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "PNRSummaryTickets";
    TypeContext? context = _ctx;
}

// @DataContract(Name="PNRSummary", Namespace="schemas.agentivity.com/types")
class PNRSummary implements IConvertible
{
    // @DataMember(Order=1)
    String? RecordLocator;

    // @DataMember(Order=2)
    AirlineReferences? AirlineReferences;

    // @DataMember(Order=3)
    PNRSummaryTickets? Tickets;

    PNRSummary({this.RecordLocator,this.AirlineReferences,this.Tickets});
    PNRSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        RecordLocator = json['RecordLocator'];
        AirlineReferences = JsonConverters.fromJson(json['AirlineReferences'],'AirlineReferences',context!);
        Tickets = JsonConverters.fromJson(json['Tickets'],'PNRSummaryTickets',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'RecordLocator': RecordLocator,
        'AirlineReferences': JsonConverters.toJson(AirlineReferences,'AirlineReferences',context!),
        'Tickets': JsonConverters.toJson(Tickets,'PNRSummaryTickets',context!)
    };

    getTypeName() => "PNRSummary";
    TypeContext? context = _ctx;
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class Seat implements IConvertible
{
    // @DataMember(Order=1)
    String? SeatLocation;

    // @DataMember(Order=2)
    String? SeatStatusCode;

    Seat({this.SeatLocation,this.SeatStatusCode});
    Seat.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SeatLocation = json['SeatLocation'];
        SeatStatusCode = json['SeatStatusCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SeatLocation': SeatLocation,
        'SeatStatusCode': SeatStatusCode
    };

    getTypeName() => "Seat";
    TypeContext? context = _ctx;
}

class SeatingData extends ListBase<Seat> implements IConvertible
{
    final List<Seat> l = [];
    set length(int newLength) { l.length = newLength; }
    int get length => l.length;
    Seat operator [](int index) => l[index];
    void operator []=(int index, Seat value) { l[index] = value; }
    SeatingData();
    SeatingData.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "SeatingData";
    TypeContext? context = _ctx;
}

// @DataContract(Name="AirSegment", Namespace="schemas.agentivity.com/types")
class AirSegment implements IConvertible
{
    // @DataMember
    int? AirSegmentNbr;

    // @DataMember
    String? SegmentStatus;

    // @DataMember
    String? DepartureDate;

    // @DataMember
    String? DepartureTime;

    // @DataMember
    String? CarrierCode;

    // @DataMember
    String? BoardPoint;

    // @DataMember
    String? OffPoint;

    // @DataMember
    String? FlightNbr;

    // @DataMember
    String? BookingCode;

    // @DataMember
    String? ArrivalTime;

    // @DataMember
    String? ChangeOfDay;

    // @DataMember
    String? ConnectionIndicator;

    // @DataMember
    String? OperatingCarrierCode;

    // @DataMember
    String? OperatingCarrierName;

    // @DataMember
    String? JourneyTime;

    // @DataMember
    int? NbrSeats;

    // @DataMember(EmitDefaultValue=false)
    SeatingData? SeatingData;

    AirSegment({this.AirSegmentNbr,this.SegmentStatus,this.DepartureDate,this.DepartureTime,this.CarrierCode,this.BoardPoint,this.OffPoint,this.FlightNbr,this.BookingCode,this.ArrivalTime,this.ChangeOfDay,this.ConnectionIndicator,this.OperatingCarrierCode,this.OperatingCarrierName,this.JourneyTime,this.NbrSeats,this.SeatingData});
    AirSegment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AirSegmentNbr = json['AirSegmentNbr'];
        SegmentStatus = json['SegmentStatus'];
        DepartureDate = json['DepartureDate'];
        DepartureTime = json['DepartureTime'];
        CarrierCode = json['CarrierCode'];
        BoardPoint = json['BoardPoint'];
        OffPoint = json['OffPoint'];
        FlightNbr = json['FlightNbr'];
        BookingCode = json['BookingCode'];
        ArrivalTime = json['ArrivalTime'];
        ChangeOfDay = json['ChangeOfDay'];
        ConnectionIndicator = json['ConnectionIndicator'];
        OperatingCarrierCode = json['OperatingCarrierCode'];
        OperatingCarrierName = json['OperatingCarrierName'];
        JourneyTime = json['JourneyTime'];
        NbrSeats = json['NbrSeats'];
        SeatingData = JsonConverters.fromJson(json['SeatingData'],'SeatingData',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AirSegmentNbr': AirSegmentNbr,
        'SegmentStatus': SegmentStatus,
        'DepartureDate': DepartureDate,
        'DepartureTime': DepartureTime,
        'CarrierCode': CarrierCode,
        'BoardPoint': BoardPoint,
        'OffPoint': OffPoint,
        'FlightNbr': FlightNbr,
        'BookingCode': BookingCode,
        'ArrivalTime': ArrivalTime,
        'ChangeOfDay': ChangeOfDay,
        'ConnectionIndicator': ConnectionIndicator,
        'OperatingCarrierCode': OperatingCarrierCode,
        'OperatingCarrierName': OperatingCarrierName,
        'JourneyTime': JourneyTime,
        'NbrSeats': NbrSeats,
        'SeatingData': JsonConverters.toJson(SeatingData,'SeatingData',context!)
    };

    getTypeName() => "AirSegment";
    TypeContext? context = _ctx;
}

// @DataContract(Name="CarSegment", Namespace="schemas.agentivity.com/types")
class CarSegment implements IConvertible
{
    // @DataMember
    int? CarSegmentNbr;

    // @DataMember
    String? SegmentStatus;

    // @DataMember
    String? PickUpDate;

    // @DataMember
    String? PickUpTime;

    // @DataMember
    String? AirportCode;

    // @DataMember
    String? CarLocationCategory;

    // @DataMember
    String? DropOffDate;

    // @DataMember
    String? DropOffTime;

    // @DataMember
    String? ConfirmationNbr;

    // @DataMember
    String? CarVendorCode;

    // @DataMember
    String? CarRateType;

    // @DataMember
    String? CarRateCode;

    // @DataMember
    String? CarType;

    // @DataMember
    String? CarYieldManagementNbr;

    // @DataMember
    String? RateAmount;

    // @DataMember
    String? RateGuaranteeIndicator;

    // @DataMember
    String? MilesKilometerIndicator;

    // @DataMember
    String? DistanceAllowance;

    // @DataMember
    String? DistanceRateAmount;

    // @DataMember
    String? CurrencyCode;

    // @DataMember
    int? NbrOfCars;

    CarSegment({this.CarSegmentNbr,this.SegmentStatus,this.PickUpDate,this.PickUpTime,this.AirportCode,this.CarLocationCategory,this.DropOffDate,this.DropOffTime,this.ConfirmationNbr,this.CarVendorCode,this.CarRateType,this.CarRateCode,this.CarType,this.CarYieldManagementNbr,this.RateAmount,this.RateGuaranteeIndicator,this.MilesKilometerIndicator,this.DistanceAllowance,this.DistanceRateAmount,this.CurrencyCode,this.NbrOfCars});
    CarSegment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CarSegmentNbr = json['CarSegmentNbr'];
        SegmentStatus = json['SegmentStatus'];
        PickUpDate = json['PickUpDate'];
        PickUpTime = json['PickUpTime'];
        AirportCode = json['AirportCode'];
        CarLocationCategory = json['CarLocationCategory'];
        DropOffDate = json['DropOffDate'];
        DropOffTime = json['DropOffTime'];
        ConfirmationNbr = json['ConfirmationNbr'];
        CarVendorCode = json['CarVendorCode'];
        CarRateType = json['CarRateType'];
        CarRateCode = json['CarRateCode'];
        CarType = json['CarType'];
        CarYieldManagementNbr = json['CarYieldManagementNbr'];
        RateAmount = json['RateAmount'];
        RateGuaranteeIndicator = json['RateGuaranteeIndicator'];
        MilesKilometerIndicator = json['MilesKilometerIndicator'];
        DistanceAllowance = json['DistanceAllowance'];
        DistanceRateAmount = json['DistanceRateAmount'];
        CurrencyCode = json['CurrencyCode'];
        NbrOfCars = json['NbrOfCars'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CarSegmentNbr': CarSegmentNbr,
        'SegmentStatus': SegmentStatus,
        'PickUpDate': PickUpDate,
        'PickUpTime': PickUpTime,
        'AirportCode': AirportCode,
        'CarLocationCategory': CarLocationCategory,
        'DropOffDate': DropOffDate,
        'DropOffTime': DropOffTime,
        'ConfirmationNbr': ConfirmationNbr,
        'CarVendorCode': CarVendorCode,
        'CarRateType': CarRateType,
        'CarRateCode': CarRateCode,
        'CarType': CarType,
        'CarYieldManagementNbr': CarYieldManagementNbr,
        'RateAmount': RateAmount,
        'RateGuaranteeIndicator': RateGuaranteeIndicator,
        'MilesKilometerIndicator': MilesKilometerIndicator,
        'DistanceAllowance': DistanceAllowance,
        'DistanceRateAmount': DistanceRateAmount,
        'CurrencyCode': CurrencyCode,
        'NbrOfCars': NbrOfCars
    };

    getTypeName() => "CarSegment";
    TypeContext? context = _ctx;
}

// @DataContract(Name="Segment", Namespace="schemas.agentivity.com/types")
class HotelSegmentDepreciated implements IConvertible
{
    // @DataMember(Order=1)
    String? HotelSegmentNbr;

    // @DataMember(Order=4)
    String? StatusCode;

    // @DataMember(Order=5)
    String? ArrivalDate;

    // @DataMember(Order=6)
    String? DepartureDate;

    // @DataMember(Order=7)
    String? PropertyName;

    // @DataMember(Order=16)
    String? ConfirmationNbr;

    // @DataMember(Order=17)
    String? Currency;

    // @DataMember(Order=18)
    String? Rate;

    // @DataMember(Order=19)
    String? RoomBookingCode;

    // @DataMember(Order=20)
    int? NbrNights;

    // @DataMember(Order=21)
    String? MultiLevelRateCode;

    // @DataMember(Order=22)
    int? NbrRooms;

    // @DataMember(Order=23)
    String? BookedInName;

    // @DataMember(Order=24)
    String? ServiceInformation;

    // @DataMember(Order=25)
    String? PropertyCityCode;

    // @DataMember(Order=26)
    String? SegmentStatus;

    // @DataMember(Order=27)
    String? HotelVendorCode;

    HotelSegmentDepreciated({this.HotelSegmentNbr,this.StatusCode,this.ArrivalDate,this.DepartureDate,this.PropertyName,this.ConfirmationNbr,this.Currency,this.Rate,this.RoomBookingCode,this.NbrNights,this.MultiLevelRateCode,this.NbrRooms,this.BookedInName,this.ServiceInformation,this.PropertyCityCode,this.SegmentStatus,this.HotelVendorCode});
    HotelSegmentDepreciated.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        HotelSegmentNbr = json['HotelSegmentNbr'];
        StatusCode = json['StatusCode'];
        ArrivalDate = json['ArrivalDate'];
        DepartureDate = json['DepartureDate'];
        PropertyName = json['PropertyName'];
        ConfirmationNbr = json['ConfirmationNbr'];
        Currency = json['Currency'];
        Rate = json['Rate'];
        RoomBookingCode = json['RoomBookingCode'];
        NbrNights = json['NbrNights'];
        MultiLevelRateCode = json['MultiLevelRateCode'];
        NbrRooms = json['NbrRooms'];
        BookedInName = json['BookedInName'];
        ServiceInformation = json['ServiceInformation'];
        PropertyCityCode = json['PropertyCityCode'];
        SegmentStatus = json['SegmentStatus'];
        HotelVendorCode = json['HotelVendorCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'HotelSegmentNbr': HotelSegmentNbr,
        'StatusCode': StatusCode,
        'ArrivalDate': ArrivalDate,
        'DepartureDate': DepartureDate,
        'PropertyName': PropertyName,
        'ConfirmationNbr': ConfirmationNbr,
        'Currency': Currency,
        'Rate': Rate,
        'RoomBookingCode': RoomBookingCode,
        'NbrNights': NbrNights,
        'MultiLevelRateCode': MultiLevelRateCode,
        'NbrRooms': NbrRooms,
        'BookedInName': BookedInName,
        'ServiceInformation': ServiceInformation,
        'PropertyCityCode': PropertyCityCode,
        'SegmentStatus': SegmentStatus,
        'HotelVendorCode': HotelVendorCode
    };

    getTypeName() => "HotelSegmentDepreciated";
    TypeContext? context = _ctx;
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class PassiveSegment implements IConvertible
{
    // @DataMember
    String? SegmentStatus;

    // @DataMember
    String? StartDate;

    // @DataMember
    String? DepartureDate;

    // @DataMember
    String? NbrNights;

    // @DataMember
    String? VendorCode;

    // @DataMember
    String? CityCode;

    // @DataMember
    String? SegmentType;

    // @DataMember
    String? Text;

    // @DataMember
    String? Passenger;

    // @DataMember
    String? Address;

    // @DataMember
    String? BookingReasonCode;

    // @DataMember
    String? BookingSource;

    // @DataMember
    String? CommissionInformation;

    // @DataMember
    String? ConfirmationNumber;

    // @DataMember
    String? RateCode;

    // @DataMember
    String? RateQuoted;

    // @DataMember
    String? RateAccessCode;

    // @DataMember
    String? PropertyName;

    // @DataMember
    String? PropertyNumber;

    // @DataMember
    String? ServiceInformation;

    PassiveSegment({this.SegmentStatus,this.StartDate,this.DepartureDate,this.NbrNights,this.VendorCode,this.CityCode,this.SegmentType,this.Text,this.Passenger,this.Address,this.BookingReasonCode,this.BookingSource,this.CommissionInformation,this.ConfirmationNumber,this.RateCode,this.RateQuoted,this.RateAccessCode,this.PropertyName,this.PropertyNumber,this.ServiceInformation});
    PassiveSegment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SegmentStatus = json['SegmentStatus'];
        StartDate = json['StartDate'];
        DepartureDate = json['DepartureDate'];
        NbrNights = json['NbrNights'];
        VendorCode = json['VendorCode'];
        CityCode = json['CityCode'];
        SegmentType = json['SegmentType'];
        Text = json['Text'];
        Passenger = json['Passenger'];
        Address = json['Address'];
        BookingReasonCode = json['BookingReasonCode'];
        BookingSource = json['BookingSource'];
        CommissionInformation = json['CommissionInformation'];
        ConfirmationNumber = json['ConfirmationNumber'];
        RateCode = json['RateCode'];
        RateQuoted = json['RateQuoted'];
        RateAccessCode = json['RateAccessCode'];
        PropertyName = json['PropertyName'];
        PropertyNumber = json['PropertyNumber'];
        ServiceInformation = json['ServiceInformation'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SegmentStatus': SegmentStatus,
        'StartDate': StartDate,
        'DepartureDate': DepartureDate,
        'NbrNights': NbrNights,
        'VendorCode': VendorCode,
        'CityCode': CityCode,
        'SegmentType': SegmentType,
        'Text': Text,
        'Passenger': Passenger,
        'Address': Address,
        'BookingReasonCode': BookingReasonCode,
        'BookingSource': BookingSource,
        'CommissionInformation': CommissionInformation,
        'ConfirmationNumber': ConfirmationNumber,
        'RateCode': RateCode,
        'RateQuoted': RateQuoted,
        'RateAccessCode': RateAccessCode,
        'PropertyName': PropertyName,
        'PropertyNumber': PropertyNumber,
        'ServiceInformation': ServiceInformation
    };

    getTypeName() => "PassiveSegment";
    TypeContext? context = _ctx;
}

// @DataContract(Name="Segments", Namespace="schemas.agentivity.com/types")
class Segments implements IConvertible
{
    // @DataMember(Order=2, EmitDefaultValue=false)
    List<AirSegment>? AirSegments;

    // @DataMember(Order=3, EmitDefaultValue=false)
    List<CarSegment>? CarSegments;

    // @DataMember(Order=4, EmitDefaultValue=false)
    List<HotelSegmentDepreciated>? HotelSegments;

    // @DataMember(Order=5, EmitDefaultValue=false)
    List<PassiveSegment>? PassiveSegments;

    Segments({this.AirSegments,this.CarSegments,this.HotelSegments,this.PassiveSegments});
    Segments.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AirSegments = JsonConverters.fromJson(json['AirSegments'],'List<AirSegment>',context!);
        CarSegments = JsonConverters.fromJson(json['CarSegments'],'List<CarSegment>',context!);
        HotelSegments = JsonConverters.fromJson(json['HotelSegments'],'List<HotelSegmentDepreciated>',context!);
        PassiveSegments = JsonConverters.fromJson(json['PassiveSegments'],'List<PassiveSegment>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AirSegments': JsonConverters.toJson(AirSegments,'List<AirSegment>',context!),
        'CarSegments': JsonConverters.toJson(CarSegments,'List<CarSegment>',context!),
        'HotelSegments': JsonConverters.toJson(HotelSegments,'List<HotelSegmentDepreciated>',context!),
        'PassiveSegments': JsonConverters.toJson(PassiveSegments,'List<PassiveSegment>',context!)
    };

    getTypeName() => "Segments";
    TypeContext? context = _ctx;
}

// @DataContract(Name="PNRSegments", Namespace="schemas.agentivity.com/types")
class PNRSegments implements IConvertible
{
    // @DataMember(Order=10)
    PNRSummary? Summary;

    // @DataMember(Order=20)
    Segments? Segments;

    PNRSegments({this.Summary,this.Segments});
    PNRSegments.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Summary = JsonConverters.fromJson(json['Summary'],'PNRSummary',context!);
        Segments = JsonConverters.fromJson(json['Segments'],'Segments',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Summary': JsonConverters.toJson(Summary,'PNRSummary',context!),
        'Segments': JsonConverters.toJson(Segments,'Segments',context!)
    };

    getTypeName() => "PNRSegments";
    TypeContext? context = _ctx;
}

// @DataContract(Name="CacheMetadata", Namespace="schemas.agentivity.com/types")
class CacheMetadata implements IConvertible
{
    // @DataMember(Order=1)
    DateTime? CachedAt;

    // @DataMember(Order=2)
    DateTime? CacheExpiresAt;

    // @DataMember(Order=0)
    bool? IsFromCache;

    CacheMetadata({this.CachedAt,this.CacheExpiresAt,this.IsFromCache});
    CacheMetadata.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CachedAt = JsonConverters.fromJson(json['CachedAt'],'DateTime',context!);
        CacheExpiresAt = JsonConverters.fromJson(json['CacheExpiresAt'],'DateTime',context!);
        IsFromCache = json['IsFromCache'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CachedAt': JsonConverters.toJson(CachedAt,'DateTime',context!),
        'CacheExpiresAt': JsonConverters.toJson(CacheExpiresAt,'DateTime',context!),
        'IsFromCache': IsFromCache
    };

    getTypeName() => "CacheMetadata";
    TypeContext? context = _ctx;
}

// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
class ResponseMetadata implements IConvertible
{
    // @DataMember(Order=0)
    bool? Success;

    // @DataMember(Order=1)
    bool? HasCache;

    // @DataMember(Order=2)
    bool? HasPaging;

    // @DataMember(Order=3, EmitDefaultValue=false)
    CacheMetadata? CacheMetadata;

    // @DataMember(Order=4, EmitDefaultValue=false)
    PagingMetadata? PagingMetadata;

    ResponseMetadata({this.Success,this.HasCache,this.HasPaging,this.CacheMetadata,this.PagingMetadata});
    ResponseMetadata.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Success = json['Success'];
        HasCache = json['HasCache'];
        HasPaging = json['HasPaging'];
        CacheMetadata = JsonConverters.fromJson(json['CacheMetadata'],'CacheMetadata',context!);
        PagingMetadata = JsonConverters.fromJson(json['PagingMetadata'],'PagingMetadata',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Success': Success,
        'HasCache': HasCache,
        'HasPaging': HasPaging,
        'CacheMetadata': JsonConverters.toJson(CacheMetadata,'CacheMetadata',context!),
        'PagingMetadata': JsonConverters.toJson(PagingMetadata,'PagingMetadata',context!)
    };

    getTypeName() => "ResponseMetadata";
    TypeContext? context = _ctx;
}

// @DataContract(Name="ApiRequestPerHour", Namespace="schemas.agentivity.com/types")
class ApiRequestPerHour implements IConvertible
{
    // @DataMember(Order=10)
    DateTime? RequestDate;

    // @DataMember(Order=100)
    int? Hour0;

    // @DataMember(Order=110)
    int? Hour1;

    // @DataMember(Order=120)
    int? Hour2;

    // @DataMember(Order=130)
    int? Hour3;

    // @DataMember(Order=140)
    int? Hour4;

    // @DataMember(Order=150)
    int? Hour5;

    // @DataMember(Order=160)
    int? Hour6;

    // @DataMember(Order=170)
    int? Hour7;

    // @DataMember(Order=180)
    int? Hour8;

    // @DataMember(Order=190)
    int? Hour9;

    // @DataMember(Order=200)
    int? Hour10;

    // @DataMember(Order=210)
    int? Hour11;

    // @DataMember(Order=220)
    int? Hour12;

    // @DataMember(Order=230)
    int? Hour13;

    // @DataMember(Order=240)
    int? Hour14;

    // @DataMember(Order=250)
    int? Hour15;

    // @DataMember(Order=260)
    int? Hour16;

    // @DataMember(Order=270)
    int? Hour17;

    // @DataMember(Order=280)
    int? Hour18;

    // @DataMember(Order=290)
    int? Hour19;

    // @DataMember(Order=300)
    int? Hour20;

    // @DataMember(Order=310)
    int? Hour21;

    // @DataMember(Order=320)
    int? Hour22;

    // @DataMember(Order=330)
    int? Hour23;

    ApiRequestPerHour({this.RequestDate,this.Hour0,this.Hour1,this.Hour2,this.Hour3,this.Hour4,this.Hour5,this.Hour6,this.Hour7,this.Hour8,this.Hour9,this.Hour10,this.Hour11,this.Hour12,this.Hour13,this.Hour14,this.Hour15,this.Hour16,this.Hour17,this.Hour18,this.Hour19,this.Hour20,this.Hour21,this.Hour22,this.Hour23});
    ApiRequestPerHour.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        RequestDate = JsonConverters.fromJson(json['RequestDate'],'DateTime',context!);
        Hour0 = json['Hour0'];
        Hour1 = json['Hour1'];
        Hour2 = json['Hour2'];
        Hour3 = json['Hour3'];
        Hour4 = json['Hour4'];
        Hour5 = json['Hour5'];
        Hour6 = json['Hour6'];
        Hour7 = json['Hour7'];
        Hour8 = json['Hour8'];
        Hour9 = json['Hour9'];
        Hour10 = json['Hour10'];
        Hour11 = json['Hour11'];
        Hour12 = json['Hour12'];
        Hour13 = json['Hour13'];
        Hour14 = json['Hour14'];
        Hour15 = json['Hour15'];
        Hour16 = json['Hour16'];
        Hour17 = json['Hour17'];
        Hour18 = json['Hour18'];
        Hour19 = json['Hour19'];
        Hour20 = json['Hour20'];
        Hour21 = json['Hour21'];
        Hour22 = json['Hour22'];
        Hour23 = json['Hour23'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'RequestDate': JsonConverters.toJson(RequestDate,'DateTime',context!),
        'Hour0': Hour0,
        'Hour1': Hour1,
        'Hour2': Hour2,
        'Hour3': Hour3,
        'Hour4': Hour4,
        'Hour5': Hour5,
        'Hour6': Hour6,
        'Hour7': Hour7,
        'Hour8': Hour8,
        'Hour9': Hour9,
        'Hour10': Hour10,
        'Hour11': Hour11,
        'Hour12': Hour12,
        'Hour13': Hour13,
        'Hour14': Hour14,
        'Hour15': Hour15,
        'Hour16': Hour16,
        'Hour17': Hour17,
        'Hour18': Hour18,
        'Hour19': Hour19,
        'Hour20': Hour20,
        'Hour21': Hour21,
        'Hour22': Hour22,
        'Hour23': Hour23
    };

    getTypeName() => "ApiRequestPerHour";
    TypeContext? context = _ctx;
}

// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
class AgentivityError implements IConvertible
{
    // @DataMember
    String? ErrorCode;

    // @DataMember
    String? Message;

    // @DataMember
    String? StatusCode;

    // @DataMember
    String? VerboseMessage;

    AgentivityError({this.ErrorCode,this.Message,this.StatusCode,this.VerboseMessage});
    AgentivityError.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ErrorCode = json['ErrorCode'];
        Message = json['Message'];
        StatusCode = json['StatusCode'];
        VerboseMessage = json['VerboseMessage'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ErrorCode': ErrorCode,
        'Message': Message,
        'StatusCode': StatusCode,
        'VerboseMessage': VerboseMessage
    };

    getTypeName() => "AgentivityError";
    TypeContext? context = _ctx;
}

// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
class CollectionResponse<TItem> implements IConvertible
{
    // @DataMember(Order=1)
    ResponseMetadata? ResponseMetadata;

    // @DataMember(Order=2, EmitDefaultValue=false)
    List<ApiRequestPerHour>? ResponseReport;

    // @DataMember(Order=3, EmitDefaultValue=false)
    AgentivityError? ResponseError;

    CollectionResponse({this.ResponseMetadata,this.ResponseReport,this.ResponseError});
    CollectionResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseMetadata = JsonConverters.fromJson(json['ResponseMetadata'],'ResponseMetadata',context!);
        ResponseReport = JsonConverters.fromJson(json['ResponseReport'],'List<ApiRequestPerHour>',context!);
        ResponseError = JsonConverters.fromJson(json['ResponseError'],'AgentivityError',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseMetadata': JsonConverters.toJson(ResponseMetadata,'ResponseMetadata',context!),
        'ResponseReport': JsonConverters.toJson(ResponseReport,'List<ApiRequestPerHour>',context!),
        'ResponseError': JsonConverters.toJson(ResponseError,'AgentivityError',context!)
    };

    getTypeName() => "CollectionResponse<$TItem>";
    TypeContext? context = _ctx;
}

// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
class GetPNRSegmentsResponse extends CollectionResponse<PNRSegments> implements IConvertible
{
    GetPNRSegmentsResponse();
    GetPNRSegmentsResponse.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    getTypeName() => "GetPNRSegmentsResponse";
    TypeContext? context = _ctx;
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class GetPNRSegments extends PagingMetadata implements IConvertible
{
    /**
    * Record locator
    */
    // @DataMember
    String? RecordLocator;

    /**
    * Date in format YYYYMMDD
    */
    // @DataMember
    String? PNRCreationDate;

    /**
    * Type of segment
    */
    // @DataMember
    List<String>? SegmentType;

    /**
    * Type of passive segment
    */
    // @DataMember
    List<String>? PassiveSegmentType;

    GetPNRSegments({this.RecordLocator,this.PNRCreationDate,this.SegmentType,this.PassiveSegmentType});
    GetPNRSegments.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        RecordLocator = json['RecordLocator'];
        PNRCreationDate = json['PNRCreationDate'];
        SegmentType = JsonConverters.fromJson(json['SegmentType'],'List<String>',context!);
        PassiveSegmentType = JsonConverters.fromJson(json['PassiveSegmentType'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'RecordLocator': RecordLocator,
        'PNRCreationDate': PNRCreationDate,
        'SegmentType': JsonConverters.toJson(SegmentType,'List<String>',context!),
        'PassiveSegmentType': JsonConverters.toJson(PassiveSegmentType,'List<String>',context!)
    });

    getTypeName() => "GetPNRSegments";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.agentivity.com', types: <String, TypeInfo> {
    'PagingMetadata': TypeInfo(TypeOf.Class, create:() => PagingMetadata()),
    'HostSystem': TypeInfo(TypeOf.Class, create:() => HostSystem()),
    'AirlineReferences': TypeInfo(TypeOf.Class, create:() => AirlineReferences()),
    'PassengerName': TypeInfo(TypeOf.Class, create:() => PassengerName()),
    'Coupon': TypeInfo(TypeOf.Class, create:() => Coupon()),
    'Coupons': TypeInfo(TypeOf.Class, create:() => Coupons()),
    'PNRSummaryTicket': TypeInfo(TypeOf.Class, create:() => PNRSummaryTicket()),
    'PNRSummaryTickets': TypeInfo(TypeOf.Class, create:() => PNRSummaryTickets()),
    'PNRSummary': TypeInfo(TypeOf.Class, create:() => PNRSummary()),
    'Seat': TypeInfo(TypeOf.Class, create:() => Seat()),
    'SeatingData': TypeInfo(TypeOf.Class, create:() => SeatingData()),
    'AirSegment': TypeInfo(TypeOf.Class, create:() => AirSegment()),
    'CarSegment': TypeInfo(TypeOf.Class, create:() => CarSegment()),
    'HotelSegmentDepreciated': TypeInfo(TypeOf.Class, create:() => HotelSegmentDepreciated()),
    'PassiveSegment': TypeInfo(TypeOf.Class, create:() => PassiveSegment()),
    'Segments': TypeInfo(TypeOf.Class, create:() => Segments()),
    'List<AirSegment>': TypeInfo(TypeOf.Class, create:() => <AirSegment>[]),
    'List<CarSegment>': TypeInfo(TypeOf.Class, create:() => <CarSegment>[]),
    'List<HotelSegmentDepreciated>': TypeInfo(TypeOf.Class, create:() => <HotelSegmentDepreciated>[]),
    'List<PassiveSegment>': TypeInfo(TypeOf.Class, create:() => <PassiveSegment>[]),
    'PNRSegments': TypeInfo(TypeOf.Class, create:() => PNRSegments()),
    'CacheMetadata': TypeInfo(TypeOf.Class, create:() => CacheMetadata()),
    'ResponseMetadata': TypeInfo(TypeOf.Class, create:() => ResponseMetadata()),
    'ApiRequestPerHour': TypeInfo(TypeOf.Class, create:() => ApiRequestPerHour()),
    'AgentivityError': TypeInfo(TypeOf.Class, create:() => AgentivityError()),
    'CollectionResponse<TItem>': TypeInfo(TypeOf.Class, create:() => CollectionResponse<TItem>()),
    'List<ApiRequestPerHour>': TypeInfo(TypeOf.Class, create:() => <ApiRequestPerHour>[]),
    'GetPNRSegmentsResponse': TypeInfo(TypeOf.Class, create:() => GetPNRSegmentsResponse()),
    'GetPNRSegments': TypeInfo(TypeOf.Class, create:() => GetPNRSegments()),
});

Dart GetPNRSegments 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 /PNRSegments 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>
    <PNRSegments>
      <Summary>
        <RecordLocator>String</RecordLocator>
        <AirlineReferences>
          <HostSystem>
            <Vendor>String</Vendor>
            <VendorLocator>String</VendorLocator>
          </HostSystem>
        </AirlineReferences>
        <Tickets>
          <Ticket>
            <TktNumber>String</TktNumber>
            <Passenger>
              <LastName>String</LastName>
              <FirstName>String</FirstName>
            </Passenger>
            <Coupons>
              <Coupon>
                <CouponSequenceNbr>String</CouponSequenceNbr>
                <CouponBoardPoint>String</CouponBoardPoint>
                <CouponOffPoint>String</CouponOffPoint>
                <Carrier>String</Carrier>
                <FlightNbr>String</FlightNbr>
                <FlightDate>String</FlightDate>
                <FlightTime>String</FlightTime>
              </Coupon>
            </Coupons>
          </Ticket>
        </Tickets>
      </Summary>
      <Segments>
        <AirSegments>
          <AirSegment>
            <AirSegmentNbr>0</AirSegmentNbr>
            <ArrivalTime>String</ArrivalTime>
            <BoardPoint>String</BoardPoint>
            <BookingCode>String</BookingCode>
            <CarrierCode>String</CarrierCode>
            <ChangeOfDay>String</ChangeOfDay>
            <ConnectionIndicator>String</ConnectionIndicator>
            <DepartureDate>String</DepartureDate>
            <DepartureTime>String</DepartureTime>
            <FlightNbr>String</FlightNbr>
            <JourneyTime>String</JourneyTime>
            <NbrSeats>0</NbrSeats>
            <OffPoint>String</OffPoint>
            <OperatingCarrierCode>String</OperatingCarrierCode>
            <OperatingCarrierName>String</OperatingCarrierName>
            <SeatingData>
              <Seat>
                <SeatLocation>String</SeatLocation>
                <SeatStatusCode>String</SeatStatusCode>
              </Seat>
            </SeatingData>
            <SegmentStatus>String</SegmentStatus>
          </AirSegment>
        </AirSegments>
        <CarSegments>
          <CarSegment>
            <AirportCode>String</AirportCode>
            <CarLocationCategory>String</CarLocationCategory>
            <CarRateCode>String</CarRateCode>
            <CarRateType>String</CarRateType>
            <CarSegmentNbr>0</CarSegmentNbr>
            <CarType>String</CarType>
            <CarVendorCode>String</CarVendorCode>
            <CarYieldManagementNbr>String</CarYieldManagementNbr>
            <ConfirmationNbr>String</ConfirmationNbr>
            <CurrencyCode>String</CurrencyCode>
            <DistanceAllowance>String</DistanceAllowance>
            <DistanceRateAmount>String</DistanceRateAmount>
            <DropOffDate>String</DropOffDate>
            <DropOffTime>String</DropOffTime>
            <MilesKilometerIndicator>String</MilesKilometerIndicator>
            <NbrOfCars>0</NbrOfCars>
            <PickUpDate>String</PickUpDate>
            <PickUpTime>String</PickUpTime>
            <RateAmount>String</RateAmount>
            <RateGuaranteeIndicator>String</RateGuaranteeIndicator>
            <SegmentStatus>String</SegmentStatus>
          </CarSegment>
        </CarSegments>
        <HotelSegments>
          <Segment>
            <HotelSegmentNbr>String</HotelSegmentNbr>
            <StatusCode>String</StatusCode>
            <ArrivalDate>String</ArrivalDate>
            <DepartureDate>String</DepartureDate>
            <PropertyName>String</PropertyName>
            <ConfirmationNbr>String</ConfirmationNbr>
            <Currency>String</Currency>
            <Rate>String</Rate>
            <RoomBookingCode>String</RoomBookingCode>
            <NbrNights>0</NbrNights>
            <MultiLevelRateCode>String</MultiLevelRateCode>
            <NbrRooms>0</NbrRooms>
            <BookedInName>String</BookedInName>
            <ServiceInformation>String</ServiceInformation>
            <PropertyCityCode>String</PropertyCityCode>
            <SegmentStatus>String</SegmentStatus>
            <HotelVendorCode>String</HotelVendorCode>
          </Segment>
        </HotelSegments>
        <PassiveSegments>
          <PassiveSegment>
            <Address>String</Address>
            <BookingReasonCode>String</BookingReasonCode>
            <BookingSource>String</BookingSource>
            <CityCode>String</CityCode>
            <CommissionInformation>String</CommissionInformation>
            <ConfirmationNumber>String</ConfirmationNumber>
            <DepartureDate>String</DepartureDate>
            <NbrNights>String</NbrNights>
            <Passenger>String</Passenger>
            <PropertyName>String</PropertyName>
            <PropertyNumber>String</PropertyNumber>
            <RateAccessCode>String</RateAccessCode>
            <RateCode>String</RateCode>
            <RateQuoted>String</RateQuoted>
            <SegmentStatus>String</SegmentStatus>
            <SegmentType>String</SegmentType>
            <ServiceInformation>String</ServiceInformation>
            <StartDate>String</StartDate>
            <Text>String</Text>
            <VendorCode>String</VendorCode>
          </PassiveSegment>
        </PassiveSegments>
      </Segments>
    </PNRSegments>
  </ResponseReport>
  <ResponseError>
    <ErrorCode>String</ErrorCode>
    <Message>String</Message>
    <StatusCode>String</StatusCode>
    <VerboseMessage>String</VerboseMessage>
  </ResponseError>
</AgentivityResponse>