Agentivity API

<back to all web services

BookingDetailsByRef

The following routes are available for this service:
GET/BookingDetails
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")
abstract class CompanyLevelRequestBase extends PagingMetadata implements IMemberUsername, IMemberOwningCompanyCode
{
    /**
    * Comma Delimited List of Owning Company Codes
    */
    // @DataMember
    List<String>? OwningCompanyCode;

    /**
    * UserName in form of an email address
    */
    // @DataMember
    String? UserName;

    CompanyLevelRequestBase({this.OwningCompanyCode,this.UserName});
    CompanyLevelRequestBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'OwningCompanyCode': JsonConverters.toJson(OwningCompanyCode,'List<String>',context!),
        'UserName': UserName
    });

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

// @DataContract(Name="FrequentFlyer", Namespace="schemas.agentivity.com/types")
class FrequentFlyerDetails implements IConvertible
{
    // @DataMember(Order=10)
    String? Vendor;

    // @DataMember(Order=20)
    String? Number;

    // @DataMember(Order=30)
    String? FullNumber;

    FrequentFlyerDetails({this.Vendor,this.Number,this.FullNumber});
    FrequentFlyerDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

// @DataContract(Name="Passenger", Namespace="schemas.agentivity.com/types")
class PassengerDetails implements IConvertible
{
    // @DataMember(Order=10)
    int? Id;

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

    // @DataMember(Order=30)
    String? LastName;

    // @DataMember(Order=40)
    List<FrequentFlyerDetails>? FrequentFlyers;

    // @DataMember(Order=50)
    int? SequenceNbr;

    // @DataMember(Order=60)
    int? LastNameElement;

    // @DataMember(Order=70)
    bool? IsVip;

    // @DataMember(Order=80)
    String? TravellerGUID;

    PassengerDetails({this.Id,this.FirstName,this.LastName,this.FrequentFlyers,this.SequenceNbr,this.LastNameElement,this.IsVip,this.TravellerGUID});
    PassengerDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        FirstName = json['FirstName'];
        LastName = json['LastName'];
        FrequentFlyers = JsonConverters.fromJson(json['FrequentFlyers'],'List<FrequentFlyerDetails>',context!);
        SequenceNbr = json['SequenceNbr'];
        LastNameElement = json['LastNameElement'];
        IsVip = json['IsVip'];
        TravellerGUID = json['TravellerGUID'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'FirstName': FirstName,
        'LastName': LastName,
        'FrequentFlyers': JsonConverters.toJson(FrequentFlyers,'List<FrequentFlyerDetails>',context!),
        'SequenceNbr': SequenceNbr,
        'LastNameElement': LastNameElement,
        'IsVip': IsVip,
        'TravellerGUID': TravellerGUID
    };

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

// @DataContract(Name="Phone", Namespace="schemas.agentivity.com/types")
class BookingPhone implements IConvertible
{
    // @DataMember(Order=10)
    String? PhoneType;

    // @DataMember(Order=20)
    String? City;

    // @DataMember(Order=30)
    String? Number;

    // @DataMember(Order=40)
    int? SequenceNbr;

    BookingPhone({this.PhoneType,this.City,this.Number,this.SequenceNbr});
    BookingPhone.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PhoneType = json['PhoneType'];
        City = json['City'];
        Number = json['Number'];
        SequenceNbr = json['SequenceNbr'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PhoneType': PhoneType,
        'City': City,
        'Number': Number,
        'SequenceNbr': SequenceNbr
    };

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

// @DataContract(Name="Notepad", Namespace="schemas.agentivity.com/types")
class BookingNotepad implements IConvertible
{
    // @DataMember(Order=10)
    String? Remark;

    // @DataMember(Order=20)
    DateTime? CreatedDate;

    // @DataMember(Order=30)
    String? CreatedTime;

    // @DataMember(Order=30)
    String? Qualifier;

    // @DataMember(Order=40)
    int? SequenceNbr;

    BookingNotepad({this.Remark,this.CreatedDate,this.CreatedTime,this.Qualifier,this.SequenceNbr});
    BookingNotepad.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Remark = json['Remark'];
        CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!);
        CreatedTime = json['CreatedTime'];
        Qualifier = json['Qualifier'];
        SequenceNbr = json['SequenceNbr'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Remark': Remark,
        'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!),
        'CreatedTime': CreatedTime,
        'Qualifier': Qualifier,
        'SequenceNbr': SequenceNbr
    };

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

// @DataContract(Namespace="schemas.agentivity.com/types")
abstract class VendorRemarkBase
{
    // @DataMember
    int? TravelOrderIdentifier;

    // @DataMember
    int? RmkNum;

    // @DataMember
    DateTime? DateStamp;

    // @DataMember
    String? TimeStamp;

    // @DataMember
    String? RemarkType;

    // @DataMember
    String? VendorType;

    // @DataMember
    String? Vendor;

    // @DataMember
    String? Remark;

    VendorRemarkBase({this.TravelOrderIdentifier,this.RmkNum,this.DateStamp,this.TimeStamp,this.RemarkType,this.VendorType,this.Vendor,this.Remark});
    VendorRemarkBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TravelOrderIdentifier = json['TravelOrderIdentifier'];
        RmkNum = json['RmkNum'];
        DateStamp = JsonConverters.fromJson(json['DateStamp'],'DateTime',context!);
        TimeStamp = json['TimeStamp'];
        RemarkType = json['RemarkType'];
        VendorType = json['VendorType'];
        Vendor = json['Vendor'];
        Remark = json['Remark'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TravelOrderIdentifier': TravelOrderIdentifier,
        'RmkNum': RmkNum,
        'DateStamp': JsonConverters.toJson(DateStamp,'DateTime',context!),
        'TimeStamp': TimeStamp,
        'RemarkType': RemarkType,
        'VendorType': VendorType,
        'Vendor': Vendor,
        'Remark': Remark
    };

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

// @DataContract(Namespace="schemas.agentivity.com/types")
class VendorRemark extends VendorRemarkBase implements IConvertible
{
    // @DataMember
    int? VendorRemarkID;

    VendorRemark({this.VendorRemarkID});
    VendorRemark.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        VendorRemarkID = json['VendorRemarkID'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'VendorRemarkID': VendorRemarkID
    });

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

// @DataContract(Name="DIEntry", Namespace="schemas.agentivity.com/types")
class DiEntry implements IConvertible
{
    // @DataMember(Order=10)
    int? SequenceNbr;

    // @DataMember(Order=20)
    String? Keyword;

    // @DataMember(Order=30)
    String? Remark;

    DiEntry({this.SequenceNbr,this.Keyword,this.Remark});
    DiEntry.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SequenceNbr = json['SequenceNbr'];
        Keyword = json['Keyword'];
        Remark = json['Remark'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SequenceNbr': SequenceNbr,
        'Keyword': Keyword,
        'Remark': Remark
    };

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

// @DataContract(Name="Ticket", Namespace="schemas.agentivity.com/types")
class BookingTicket implements IConvertible
{
    // @DataMember(Order=10)
    int? SegmentNbr;

    // @DataMember(Order=20)
    String? TicketNumber;

    // @DataMember(Order=30)
    String? TicketType;

    // @DataMember(Order=40)
    bool? TicketDetailsAvailable;

    BookingTicket({this.SegmentNbr,this.TicketNumber,this.TicketType,this.TicketDetailsAvailable});
    BookingTicket.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SegmentNbr = json['SegmentNbr'];
        TicketNumber = json['TicketNumber'];
        TicketType = json['TicketType'];
        TicketDetailsAvailable = json['TicketDetailsAvailable'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SegmentNbr': SegmentNbr,
        'TicketNumber': TicketNumber,
        'TicketType': TicketType,
        'TicketDetailsAvailable': TicketDetailsAvailable
    };

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

// @DataContract(Name="Version", Namespace="schemas.agentivity.com/types")
class BookingVersion implements IConvertible
{
    // @DataMember(Order=10)
    int? AgentivityRef;

    // @DataMember(Order=20)
    DateTime? DataBaseTimeStamp;

    // @DataMember(Order=30)
    String? EventType;

    // @DataMember(Order=40)
    String? PnrTicketed;

    // @DataMember(Order=50)
    String? LastActionAgentId;

    // @DataMember(Order=60)
    int? AirSegs;

    // @DataMember(Order=70)
    int? AirPSegs;

    // @DataMember(Order=80)
    int? HtlSegs;

    // @DataMember(Order=90)
    int? HtlPSegs;

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

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

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

    // @DataMember(Order=130)
    String? OwningAgencyLocationID;

    BookingVersion({this.AgentivityRef,this.DataBaseTimeStamp,this.EventType,this.PnrTicketed,this.LastActionAgentId,this.AirSegs,this.AirPSegs,this.HtlSegs,this.HtlPSegs,this.CarSegs,this.CarPSegs,this.TrnPSegs,this.OwningAgencyLocationID});
    BookingVersion.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AgentivityRef = json['AgentivityRef'];
        DataBaseTimeStamp = JsonConverters.fromJson(json['DataBaseTimeStamp'],'DateTime',context!);
        EventType = json['EventType'];
        PnrTicketed = json['PnrTicketed'];
        LastActionAgentId = json['LastActionAgentId'];
        AirSegs = json['AirSegs'];
        AirPSegs = json['AirPSegs'];
        HtlSegs = json['HtlSegs'];
        HtlPSegs = json['HtlPSegs'];
        CarSegs = json['CarSegs'];
        CarPSegs = json['CarPSegs'];
        TrnPSegs = json['TrnPSegs'];
        OwningAgencyLocationID = json['OwningAgencyLocationID'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AgentivityRef': AgentivityRef,
        'DataBaseTimeStamp': JsonConverters.toJson(DataBaseTimeStamp,'DateTime',context!),
        'EventType': EventType,
        'PnrTicketed': PnrTicketed,
        'LastActionAgentId': LastActionAgentId,
        'AirSegs': AirSegs,
        'AirPSegs': AirPSegs,
        'HtlSegs': HtlSegs,
        'HtlPSegs': HtlPSegs,
        'CarSegs': CarSegs,
        'CarPSegs': CarPSegs,
        'TrnPSegs': TrnPSegs,
        'OwningAgencyLocationID': OwningAgencyLocationID
    };

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

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

    // @DataMember(Order=20)
    String? CarrierCode;

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

    BookingVendorLocator({this.AirSegmentNbr,this.CarrierCode,this.VendorLocator});
    BookingVendorLocator.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

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

    // @DataMember(Order=20)
    String? RecordLocator;

    // @DataMember(Order=30)
    DateTime? PNRCreationDate;

    // @DataMember(Order=40)
    String? FieldName;

    // @DataMember(Order=50)
    String? FieldValue;

    // @DataMember(Order=60)
    int? CustomFieldID;

    // @DataMember(Order=70)
    DateTime? CreationDateTime;

    // @DataMember(Order=80)
    int? ElementNumber;

    // @DataMember(Order=90)
    String? GDS;

    CustomFieldValue({this.PNRPropertiesCustomFieldID,this.RecordLocator,this.PNRCreationDate,this.FieldName,this.FieldValue,this.CustomFieldID,this.CreationDateTime,this.ElementNumber,this.GDS});
    CustomFieldValue.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PNRPropertiesCustomFieldID = json['PNRPropertiesCustomFieldID'];
        RecordLocator = json['RecordLocator'];
        PNRCreationDate = JsonConverters.fromJson(json['PNRCreationDate'],'DateTime',context!);
        FieldName = json['FieldName'];
        FieldValue = json['FieldValue'];
        CustomFieldID = json['CustomFieldID'];
        CreationDateTime = JsonConverters.fromJson(json['CreationDateTime'],'DateTime',context!);
        ElementNumber = json['ElementNumber'];
        GDS = json['GDS'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PNRPropertiesCustomFieldID': PNRPropertiesCustomFieldID,
        'RecordLocator': RecordLocator,
        'PNRCreationDate': JsonConverters.toJson(PNRCreationDate,'DateTime',context!),
        'FieldName': FieldName,
        'FieldValue': FieldValue,
        'CustomFieldID': CustomFieldID,
        'CreationDateTime': JsonConverters.toJson(CreationDateTime,'DateTime',context!),
        'ElementNumber': ElementNumber,
        'GDS': GDS
    };

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

// @DataContract(Name="Email", Namespace="schemas.agentivity.com/types")
class BookingEmail implements IConvertible
{
    // @DataMember(Order=10)
    int? SequenceNbr;

    // @DataMember(Order=20)
    String? EmailType;

    // @DataMember(Order=30)
    String? Email;

    BookingEmail({this.SequenceNbr,this.EmailType,this.Email});
    BookingEmail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SequenceNbr = json['SequenceNbr'];
        EmailType = json['EmailType'];
        Email = json['Email'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SequenceNbr': SequenceNbr,
        'EmailType': EmailType,
        'Email': Email
    };

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

// @DataContract(Name="EventDetail", Namespace="schemas.agentivity.com/types")
class BookingEventDetail implements IConvertible
{
    // @DataMember(Order=10)
    int? ItineraryEventTypeDetailID;

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

    // @DataMember(Order=30)
    String? EventTypeDetail;

    // @DataMember(Order=40)
    String? OldData;

    // @DataMember(Order=50)
    String? NewData;

    // @DataMember(Order=60)
    DateTime? DateTimeStamp;

    // @DataMember(Order=70)
    int? EventTypeDetailID;

    BookingEventDetail({this.ItineraryEventTypeDetailID,this.AgentivityRef,this.EventTypeDetail,this.OldData,this.NewData,this.DateTimeStamp,this.EventTypeDetailID});
    BookingEventDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ItineraryEventTypeDetailID = json['ItineraryEventTypeDetailID'];
        AgentivityRef = json['AgentivityRef'];
        EventTypeDetail = json['EventTypeDetail'];
        OldData = json['OldData'];
        NewData = json['NewData'];
        DateTimeStamp = JsonConverters.fromJson(json['DateTimeStamp'],'DateTime',context!);
        EventTypeDetailID = json['EventTypeDetailID'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ItineraryEventTypeDetailID': ItineraryEventTypeDetailID,
        'AgentivityRef': AgentivityRef,
        'EventTypeDetail': EventTypeDetail,
        'OldData': OldData,
        'NewData': NewData,
        'DateTimeStamp': JsonConverters.toJson(DateTimeStamp,'DateTime',context!),
        'EventTypeDetailID': EventTypeDetailID
    };

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

// @DataContract(Name="AccountLocation", Namespace="schemas.agentivity.com/types")
class BookingAccountLocation implements IConvertible
{
    // @DataMember(Order=10)
    String? PrimaryAccountLocation;

    // @DataMember(Order=20)
    String? SecondaryAccountLocation;

    // @DataMember(Order=30)
    bool? Valid;

    // @DataMember(Order=40)
    bool? ExactMatch;

    // @DataMember(Order=50)
    String? GDS;

    BookingAccountLocation({this.PrimaryAccountLocation,this.SecondaryAccountLocation,this.Valid,this.ExactMatch,this.GDS});
    BookingAccountLocation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PrimaryAccountLocation = json['PrimaryAccountLocation'];
        SecondaryAccountLocation = json['SecondaryAccountLocation'];
        Valid = json['Valid'];
        ExactMatch = json['ExactMatch'];
        GDS = json['GDS'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PrimaryAccountLocation': PrimaryAccountLocation,
        'SecondaryAccountLocation': SecondaryAccountLocation,
        'Valid': Valid,
        'ExactMatch': ExactMatch,
        'GDS': GDS
    };

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

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

    // @DataMember(Order=20)
    String? DeliveryDetails;

    // @DataMember(Order=30)
    DateTime? MailSentDateTime;

    // @DataMember(Order=40)
    String? RecipientLastActivityEvent;

    // @DataMember(Order=50)
    int? EmailId;

    // @DataMember(Order=60)
    int? UserId;

    // @DataMember(Order=70)
    String? SentResponseMessage;

    // @DataMember(Order=80)
    int? SentResponseErrorCode;

    // @DataMember(Order=90)
    int? DeliveredBookingID;

    BookingEmailTrail({this.RecipientEmail,this.DeliveryDetails,this.MailSentDateTime,this.RecipientLastActivityEvent,this.EmailId,this.UserId,this.SentResponseMessage,this.SentResponseErrorCode,this.DeliveredBookingID});
    BookingEmailTrail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        RecipientEmail = json['RecipientEmail'];
        DeliveryDetails = json['DeliveryDetails'];
        MailSentDateTime = JsonConverters.fromJson(json['MailSentDateTime'],'DateTime',context!);
        RecipientLastActivityEvent = json['RecipientLastActivityEvent'];
        EmailId = json['EmailId'];
        UserId = json['UserId'];
        SentResponseMessage = json['SentResponseMessage'];
        SentResponseErrorCode = json['SentResponseErrorCode'];
        DeliveredBookingID = json['DeliveredBookingID'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'RecipientEmail': RecipientEmail,
        'DeliveryDetails': DeliveryDetails,
        'MailSentDateTime': JsonConverters.toJson(MailSentDateTime,'DateTime',context!),
        'RecipientLastActivityEvent': RecipientLastActivityEvent,
        'EmailId': EmailId,
        'UserId': UserId,
        'SentResponseMessage': SentResponseMessage,
        'SentResponseErrorCode': SentResponseErrorCode,
        'DeliveredBookingID': DeliveredBookingID
    };

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

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

    // @DataMember(Order=20)
    String? Value;

    BookingWarningProperty({this.Name,this.Value});
    BookingWarningProperty.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Value': Value
    };

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

// @DataContract(Name="Warning", Namespace="schemas.agentivity.com/types")
class BookingDetailsWarning implements IConvertible
{
    // @DataMember(Order=10)
    String? Message;

    // @DataMember(Order=20)
    String? Vendor;

    // @DataMember(Order=30)
    DateTime? WarningDateTime;

    // @DataMember(Order=40)
    String? OriginalRemark;

    // @DataMember(Order=50)
    DateTime? ClearedDateTime;

    // @DataMember(Order=60)
    String? ClearedByConsultantID;

    // @DataMember(Order=70)
    List<BookingWarningProperty>? PropertiesList;

    BookingDetailsWarning({this.Message,this.Vendor,this.WarningDateTime,this.OriginalRemark,this.ClearedDateTime,this.ClearedByConsultantID,this.PropertiesList});
    BookingDetailsWarning.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Message = json['Message'];
        Vendor = json['Vendor'];
        WarningDateTime = JsonConverters.fromJson(json['WarningDateTime'],'DateTime',context!);
        OriginalRemark = json['OriginalRemark'];
        ClearedDateTime = JsonConverters.fromJson(json['ClearedDateTime'],'DateTime',context!);
        ClearedByConsultantID = json['ClearedByConsultantID'];
        PropertiesList = JsonConverters.fromJson(json['PropertiesList'],'List<BookingWarningProperty>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Message': Message,
        'Vendor': Vendor,
        'WarningDateTime': JsonConverters.toJson(WarningDateTime,'DateTime',context!),
        'OriginalRemark': OriginalRemark,
        'ClearedDateTime': JsonConverters.toJson(ClearedDateTime,'DateTime',context!),
        'ClearedByConsultantID': ClearedByConsultantID,
        'PropertiesList': JsonConverters.toJson(PropertiesList,'List<BookingWarningProperty>',context!)
    };

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

// @DataContract(Name="TicketingDue", Namespace="schemas.agentivity.com/types")
class BookingDetailsAirTicketingDue implements IConvertible
{
    // @DataMember(Order=10)
    String? Airline;

    // @DataMember(Order=20)
    DateTime? DueDate;

    // @DataMember(Order=30)
    String? DueTime;

    BookingDetailsAirTicketingDue({this.Airline,this.DueDate,this.DueTime});
    BookingDetailsAirTicketingDue.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'Airline': Airline,
        'DueDate': JsonConverters.toJson(DueDate,'DateTime',context!),
        'DueTime': DueTime
    };

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

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

    // @DataMember(Order=20)
    String? Symbol;

    // @DataMember(Order=30)
    String? Name;

    MeasurementUnit({this.Id,this.Symbol,this.Name});
    MeasurementUnit.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Symbol = json['Symbol'];
        Name = json['Name'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Symbol': Symbol,
        'Name': Name
    };

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

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

    // @DataMember(Order=20)
    String? Name;

    // @DataMember(Order=30)
    String? Description;

    // @DataMember(Order=40)
    String? LogoPath;

    AssessmentProvider({this.Id,this.Name,this.Description,this.LogoPath});
    AssessmentProvider.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Name = json['Name'];
        Description = json['Description'];
        LogoPath = json['LogoPath'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name,
        'Description': Description,
        'LogoPath': LogoPath
    };

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

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

    // @DataMember(Order=20)
    String? Name;

    CarbonCalculationDetails({this.Id,this.Name});
    CarbonCalculationDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Name': Name
    };

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

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

    // @DataMember(Order=20)
    MeasurementUnit? Unit;

    // @DataMember(Order=30)
    AssessmentProvider? Provider;

    // @DataMember(Order=40)
    DateTime? CalculationDateTime;

    // @DataMember(Order=50)
    CarbonCalculationDetails? CalculationDetails;

    CarbonEmission({this.Value,this.Unit,this.Provider,this.CalculationDateTime,this.CalculationDetails});
    CarbonEmission.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Value = JsonConverters.toDouble(json['Value']);
        Unit = JsonConverters.fromJson(json['Unit'],'MeasurementUnit',context!);
        Provider = JsonConverters.fromJson(json['Provider'],'AssessmentProvider',context!);
        CalculationDateTime = JsonConverters.fromJson(json['CalculationDateTime'],'DateTime',context!);
        CalculationDetails = JsonConverters.fromJson(json['CalculationDetails'],'CarbonCalculationDetails',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Value': Value,
        'Unit': JsonConverters.toJson(Unit,'MeasurementUnit',context!),
        'Provider': JsonConverters.toJson(Provider,'AssessmentProvider',context!),
        'CalculationDateTime': JsonConverters.toJson(CalculationDateTime,'DateTime',context!),
        'CalculationDetails': JsonConverters.toJson(CalculationDetails,'CarbonCalculationDetails',context!)
    };

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

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

    // @DataMember
    int? SegmentNbr;

    // @DataMember
    String? BoardPoint;

    // @DataMember
    String? OffPoint;

    // @DataMember
    String? OperatorCode;

    // @DataMember
    String? OperatorService;

    // @DataMember
    String? SegmentStatus;

    // @DataMember
    String? DepartureTimeFormatted;

    // @DataMember
    String? ArrivalTimeFormatted;

    // @DataMember
    String? ChangeOfDayFormatted;

    // @DataMember
    String? ServiceCode;

    // @DataMember
    String? StartDate;

    // @DataMember
    String? EndDate;

    // @DataMember
    String? TicketNumber;

    /**
    * Comma separated list of vendor locators
    */
    // @DataMember
    String? VendorLocators;

    // @DataMember
    String? EquipmentCode;

    // @DataMember
    String? Equipment;

    ItinerarySegment({this.SegmentType,this.SegmentNbr,this.BoardPoint,this.OffPoint,this.OperatorCode,this.OperatorService,this.SegmentStatus,this.DepartureTimeFormatted,this.ArrivalTimeFormatted,this.ChangeOfDayFormatted,this.ServiceCode,this.StartDate,this.EndDate,this.TicketNumber,this.VendorLocators,this.EquipmentCode,this.Equipment});
    ItinerarySegment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SegmentType = json['SegmentType'];
        SegmentNbr = json['SegmentNbr'];
        BoardPoint = json['BoardPoint'];
        OffPoint = json['OffPoint'];
        OperatorCode = json['OperatorCode'];
        OperatorService = json['OperatorService'];
        SegmentStatus = json['SegmentStatus'];
        DepartureTimeFormatted = json['DepartureTimeFormatted'];
        ArrivalTimeFormatted = json['ArrivalTimeFormatted'];
        ChangeOfDayFormatted = json['ChangeOfDayFormatted'];
        ServiceCode = json['ServiceCode'];
        StartDate = json['StartDate'];
        EndDate = json['EndDate'];
        TicketNumber = json['TicketNumber'];
        VendorLocators = json['VendorLocators'];
        EquipmentCode = json['EquipmentCode'];
        Equipment = json['Equipment'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SegmentType': SegmentType,
        'SegmentNbr': SegmentNbr,
        'BoardPoint': BoardPoint,
        'OffPoint': OffPoint,
        'OperatorCode': OperatorCode,
        'OperatorService': OperatorService,
        'SegmentStatus': SegmentStatus,
        'DepartureTimeFormatted': DepartureTimeFormatted,
        'ArrivalTimeFormatted': ArrivalTimeFormatted,
        'ChangeOfDayFormatted': ChangeOfDayFormatted,
        'ServiceCode': ServiceCode,
        'StartDate': StartDate,
        'EndDate': EndDate,
        'TicketNumber': TicketNumber,
        'VendorLocators': VendorLocators,
        'EquipmentCode': EquipmentCode,
        'Equipment': Equipment
    };

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

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

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

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

    // @DataMember(Order=30)
    String? PNRCreationDate;

    // @DataMember(Order=35)
    DateTime? CreationDate;

    // @DataMember(Order=40)
    String? PNRTicketed;

    // @DataMember(Order=50)
    String? Account;

    // @DataMember(Order=60)
    String? OwningConsultantID;

    // @DataMember(Order=70)
    String? OwningConsultant;

    // @DataMember(Order=80)
    String? CrsDescription;

    // @DataMember(Order=90)
    String? LastActionConsultantID;

    // @DataMember(Order=100)
    String? LastActionAgencyLocationID;

    // @DataMember(Order=110)
    String? OwningAgencyLocationID;

    // @DataMember(Order=120)
    String? CreatingAgencyIata;

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

    // @DataMember(Order=200)
    List<PassengerDetails>? Passengers;

    // @DataMember(Order=210)
    List<BookingPhone>? Phones;

    // @DataMember(Order=220)
    List<BookingNotepad>? Notepads;

    // @DataMember(Order=230)
    List<VendorRemark>? VendorRemarks;

    // @DataMember(Order=240)
    List<DiEntry>? DiEntries;

    // @DataMember(Order=250)
    List<BookingTicket>? Tickets;

    // @DataMember(Order=260)
    List<BookingVersion>? Versions;

    // @DataMember(Order=270)
    List<BookingVendorLocator>? VendorLocators;

    // @DataMember(Order=280)
    List<CustomFieldValue>? CustomFields;

    // @DataMember(Order=290)
    List<BookingEmail>? Emails;

    // @DataMember(Order=300)
    List<BookingEventDetail>? EventDetails;

    // @DataMember(Order=310)
    List<BookingAccountLocation>? AccountLocations;

    // @DataMember(Order=320)
    List<BookingEmailTrail>? EmailTrails;

    // @DataMember(Order=330)
    List<BookingDetailsWarning>? AgentivityWarnings;

    // @DataMember(Order=340)
    List<BookingDetailsAirTicketingDue>? AirlineTicketingDues;

    // @DataMember(Order=350)
    String? CTCE;

    // @DataMember(Order=360)
    String? CTCM;

    // @DataMember(Order=370)
    double? CarbonTonnage;

    // @DataMember(Order=380)
    List<CarbonEmission>? CarbonEmissions;

    // @DataMember(Order=500)
    String? OwningCompanyCode;

    // @DataMember(Order=10)
    int? AgentivityRef;

    // @DataMember(Order=1000)
    ItinerarySegmentsCollection? Itinerary;

    // @DataMember(Order=1010)
    String? ItineraryFormatted;

    BookingDetails({this.RecordLocator,this.PNRCreationDate,this.CreationDate,this.PNRTicketed,this.Account,this.OwningConsultantID,this.OwningConsultant,this.CrsDescription,this.LastActionConsultantID,this.LastActionAgencyLocationID,this.OwningAgencyLocationID,this.CreatingAgencyIata,this.CompanyID,this.Passengers,this.Phones,this.Notepads,this.VendorRemarks,this.DiEntries,this.Tickets,this.Versions,this.VendorLocators,this.CustomFields,this.Emails,this.EventDetails,this.AccountLocations,this.EmailTrails,this.AgentivityWarnings,this.AirlineTicketingDues,this.CTCE,this.CTCM,this.CarbonTonnage,this.CarbonEmissions,this.OwningCompanyCode,this.AgentivityRef,this.Itinerary,this.ItineraryFormatted});
    BookingDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        RecordLocator = json['RecordLocator'];
        PNRCreationDate = json['PNRCreationDate'];
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        PNRTicketed = json['PNRTicketed'];
        Account = json['Account'];
        OwningConsultantID = json['OwningConsultantID'];
        OwningConsultant = json['OwningConsultant'];
        CrsDescription = json['CrsDescription'];
        LastActionConsultantID = json['LastActionConsultantID'];
        LastActionAgencyLocationID = json['LastActionAgencyLocationID'];
        OwningAgencyLocationID = json['OwningAgencyLocationID'];
        CreatingAgencyIata = json['CreatingAgencyIata'];
        CompanyID = json['CompanyID'];
        Passengers = JsonConverters.fromJson(json['Passengers'],'List<PassengerDetails>',context!);
        Phones = JsonConverters.fromJson(json['Phones'],'List<BookingPhone>',context!);
        Notepads = JsonConverters.fromJson(json['Notepads'],'List<BookingNotepad>',context!);
        VendorRemarks = JsonConverters.fromJson(json['VendorRemarks'],'List<VendorRemark>',context!);
        DiEntries = JsonConverters.fromJson(json['DiEntries'],'List<DiEntry>',context!);
        Tickets = JsonConverters.fromJson(json['Tickets'],'List<BookingTicket>',context!);
        Versions = JsonConverters.fromJson(json['Versions'],'List<BookingVersion>',context!);
        VendorLocators = JsonConverters.fromJson(json['VendorLocators'],'List<BookingVendorLocator>',context!);
        CustomFields = JsonConverters.fromJson(json['CustomFields'],'List<CustomFieldValue>',context!);
        Emails = JsonConverters.fromJson(json['Emails'],'List<BookingEmail>',context!);
        EventDetails = JsonConverters.fromJson(json['EventDetails'],'List<BookingEventDetail>',context!);
        AccountLocations = JsonConverters.fromJson(json['AccountLocations'],'List<BookingAccountLocation>',context!);
        EmailTrails = JsonConverters.fromJson(json['EmailTrails'],'List<BookingEmailTrail>',context!);
        AgentivityWarnings = JsonConverters.fromJson(json['AgentivityWarnings'],'List<BookingDetailsWarning>',context!);
        AirlineTicketingDues = JsonConverters.fromJson(json['AirlineTicketingDues'],'List<BookingDetailsAirTicketingDue>',context!);
        CTCE = json['CTCE'];
        CTCM = json['CTCM'];
        CarbonTonnage = JsonConverters.toDouble(json['CarbonTonnage']);
        CarbonEmissions = JsonConverters.fromJson(json['CarbonEmissions'],'List<CarbonEmission>',context!);
        OwningCompanyCode = json['OwningCompanyCode'];
        AgentivityRef = json['AgentivityRef'];
        Itinerary = JsonConverters.fromJson(json['Itinerary'],'ItinerarySegmentsCollection',context!);
        ItineraryFormatted = json['ItineraryFormatted'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'RecordLocator': RecordLocator,
        'PNRCreationDate': PNRCreationDate,
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'PNRTicketed': PNRTicketed,
        'Account': Account,
        'OwningConsultantID': OwningConsultantID,
        'OwningConsultant': OwningConsultant,
        'CrsDescription': CrsDescription,
        'LastActionConsultantID': LastActionConsultantID,
        'LastActionAgencyLocationID': LastActionAgencyLocationID,
        'OwningAgencyLocationID': OwningAgencyLocationID,
        'CreatingAgencyIata': CreatingAgencyIata,
        'CompanyID': CompanyID,
        'Passengers': JsonConverters.toJson(Passengers,'List<PassengerDetails>',context!),
        'Phones': JsonConverters.toJson(Phones,'List<BookingPhone>',context!),
        'Notepads': JsonConverters.toJson(Notepads,'List<BookingNotepad>',context!),
        'VendorRemarks': JsonConverters.toJson(VendorRemarks,'List<VendorRemark>',context!),
        'DiEntries': JsonConverters.toJson(DiEntries,'List<DiEntry>',context!),
        'Tickets': JsonConverters.toJson(Tickets,'List<BookingTicket>',context!),
        'Versions': JsonConverters.toJson(Versions,'List<BookingVersion>',context!),
        'VendorLocators': JsonConverters.toJson(VendorLocators,'List<BookingVendorLocator>',context!),
        'CustomFields': JsonConverters.toJson(CustomFields,'List<CustomFieldValue>',context!),
        'Emails': JsonConverters.toJson(Emails,'List<BookingEmail>',context!),
        'EventDetails': JsonConverters.toJson(EventDetails,'List<BookingEventDetail>',context!),
        'AccountLocations': JsonConverters.toJson(AccountLocations,'List<BookingAccountLocation>',context!),
        'EmailTrails': JsonConverters.toJson(EmailTrails,'List<BookingEmailTrail>',context!),
        'AgentivityWarnings': JsonConverters.toJson(AgentivityWarnings,'List<BookingDetailsWarning>',context!),
        'AirlineTicketingDues': JsonConverters.toJson(AirlineTicketingDues,'List<BookingDetailsAirTicketingDue>',context!),
        'CTCE': CTCE,
        'CTCM': CTCM,
        'CarbonTonnage': CarbonTonnage,
        'CarbonEmissions': JsonConverters.toJson(CarbonEmissions,'List<CarbonEmission>',context!),
        'OwningCompanyCode': OwningCompanyCode,
        'AgentivityRef': AgentivityRef,
        'Itinerary': JsonConverters.toJson(Itinerary,'ItinerarySegmentsCollection',context!),
        'ItineraryFormatted': ItineraryFormatted
    };

    getTypeName() => "BookingDetails";
    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 BookingDetailsByRefResponse extends CollectionResponse<BookingDetails> implements IConvertible
{
    BookingDetailsByRefResponse();
    BookingDetailsByRefResponse.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() => "BookingDetailsByRefResponse";
    TypeContext? context = _ctx;
}

// @Flags()
class BookingDetailsOptions
{
    static const BookingDetailsOptions None = const BookingDetailsOptions._(0);
    static const BookingDetailsOptions Passengers = const BookingDetailsOptions._(1);
    static const BookingDetailsOptions Itinerary = const BookingDetailsOptions._(2);
    static const BookingDetailsOptions PassengersItinerary = const BookingDetailsOptions._(3);
    static const BookingDetailsOptions DiEntries = const BookingDetailsOptions._(4);
    static const BookingDetailsOptions Phones = const BookingDetailsOptions._(8);
    static const BookingDetailsOptions Notepads = const BookingDetailsOptions._(16);
    static const BookingDetailsOptions VendorRemarks = const BookingDetailsOptions._(32);
    static const BookingDetailsOptions Tickets = const BookingDetailsOptions._(64);
    static const BookingDetailsOptions Versions = const BookingDetailsOptions._(128);
    static const BookingDetailsOptions VendorLocators = const BookingDetailsOptions._(256);
    static const BookingDetailsOptions CustomFields = const BookingDetailsOptions._(512);
    static const BookingDetailsOptions Emails = const BookingDetailsOptions._(1024);
    static const BookingDetailsOptions ContactFields = const BookingDetailsOptions._(1032);
    static const BookingDetailsOptions AccountValue = const BookingDetailsOptions._(2048);
    static const BookingDetailsOptions EventDetails = const BookingDetailsOptions._(4096);
    static const BookingDetailsOptions History = const BookingDetailsOptions._(4224);
    static const BookingDetailsOptions EmailTrails = const BookingDetailsOptions._(8192);
    static const BookingDetailsOptions AgentivityWarnings = const BookingDetailsOptions._(16384);
    static const BookingDetailsOptions AirTicketingDueDates = const BookingDetailsOptions._(32768);
    static const BookingDetailsOptions All = const BookingDetailsOptions._(65535);

    final int _value;
    const BookingDetailsOptions._(this._value);
    int get value => _value;
    static List<BookingDetailsOptions> get values => const [None,Passengers,Itinerary,PassengersItinerary,DiEntries,Phones,Notepads,VendorRemarks,Tickets,Versions,VendorLocators,CustomFields,Emails,ContactFields,AccountValue,EventDetails,History,EmailTrails,AgentivityWarnings,AirTicketingDueDates,All];
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class BookingDetailsByRef extends CompanyLevelRequestBase implements IRequestConsultantID, IConvertible
{
    /**
    * Agentivity Booking Reference
    */
    // @DataMember
    int? AgentivityRef;

    /**
    * 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
    BookingDetailsOptions? LoadOptions;

    /**
    * Record locator
    */
    // @DataMember
    String? RecordLocator;

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

    /**
    * Request Consultant ID (sign on)
    */
    // @DataMember
    String? RequestConsultantID;

    BookingDetailsByRef({this.AgentivityRef,this.LoadOptions,this.RecordLocator,this.PNRCreationDate,this.RequestConsultantID});
    BookingDetailsByRef.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        AgentivityRef = json['AgentivityRef'];
        LoadOptions = JsonConverters.fromJson(json['LoadOptions'],'BookingDetailsOptions',context!);
        RecordLocator = json['RecordLocator'];
        PNRCreationDate = json['PNRCreationDate'];
        RequestConsultantID = json['RequestConsultantID'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'AgentivityRef': AgentivityRef,
        'LoadOptions': JsonConverters.toJson(LoadOptions,'BookingDetailsOptions',context!),
        'RecordLocator': RecordLocator,
        'PNRCreationDate': PNRCreationDate,
        'RequestConsultantID': RequestConsultantID
    });

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

TypeContext _ctx = TypeContext(library: 'api.agentivity.com', types: <String, TypeInfo> {
    'PagingMetadata': TypeInfo(TypeOf.Class, create:() => PagingMetadata()),
    'CompanyLevelRequestBase': TypeInfo(TypeOf.AbstractClass),
    'FrequentFlyerDetails': TypeInfo(TypeOf.Class, create:() => FrequentFlyerDetails()),
    'PassengerDetails': TypeInfo(TypeOf.Class, create:() => PassengerDetails()),
    'List<FrequentFlyerDetails>': TypeInfo(TypeOf.Class, create:() => <FrequentFlyerDetails>[]),
    'BookingPhone': TypeInfo(TypeOf.Class, create:() => BookingPhone()),
    'BookingNotepad': TypeInfo(TypeOf.Class, create:() => BookingNotepad()),
    'VendorRemarkBase': TypeInfo(TypeOf.AbstractClass),
    'VendorRemark': TypeInfo(TypeOf.Class, create:() => VendorRemark()),
    'DiEntry': TypeInfo(TypeOf.Class, create:() => DiEntry()),
    'BookingTicket': TypeInfo(TypeOf.Class, create:() => BookingTicket()),
    'BookingVersion': TypeInfo(TypeOf.Class, create:() => BookingVersion()),
    'BookingVendorLocator': TypeInfo(TypeOf.Class, create:() => BookingVendorLocator()),
    'CustomFieldValue': TypeInfo(TypeOf.Class, create:() => CustomFieldValue()),
    'BookingEmail': TypeInfo(TypeOf.Class, create:() => BookingEmail()),
    'BookingEventDetail': TypeInfo(TypeOf.Class, create:() => BookingEventDetail()),
    'BookingAccountLocation': TypeInfo(TypeOf.Class, create:() => BookingAccountLocation()),
    'BookingEmailTrail': TypeInfo(TypeOf.Class, create:() => BookingEmailTrail()),
    'BookingWarningProperty': TypeInfo(TypeOf.Class, create:() => BookingWarningProperty()),
    'BookingDetailsWarning': TypeInfo(TypeOf.Class, create:() => BookingDetailsWarning()),
    'List<BookingWarningProperty>': TypeInfo(TypeOf.Class, create:() => <BookingWarningProperty>[]),
    'BookingDetailsAirTicketingDue': TypeInfo(TypeOf.Class, create:() => BookingDetailsAirTicketingDue()),
    'MeasurementUnit': TypeInfo(TypeOf.Class, create:() => MeasurementUnit()),
    'AssessmentProvider': TypeInfo(TypeOf.Class, create:() => AssessmentProvider()),
    'CarbonCalculationDetails': TypeInfo(TypeOf.Class, create:() => CarbonCalculationDetails()),
    'CarbonEmission': TypeInfo(TypeOf.Class, create:() => CarbonEmission()),
    'ItinerarySegment': TypeInfo(TypeOf.Class, create:() => ItinerarySegment()),
    'ItinerarySegmentsCollection': TypeInfo(TypeOf.Class, create:() => ItinerarySegmentsCollection()),
    'BookingDetails': TypeInfo(TypeOf.Class, create:() => BookingDetails()),
    'List<PassengerDetails>': TypeInfo(TypeOf.Class, create:() => <PassengerDetails>[]),
    'List<BookingPhone>': TypeInfo(TypeOf.Class, create:() => <BookingPhone>[]),
    'List<BookingNotepad>': TypeInfo(TypeOf.Class, create:() => <BookingNotepad>[]),
    'List<VendorRemark>': TypeInfo(TypeOf.Class, create:() => <VendorRemark>[]),
    'List<DiEntry>': TypeInfo(TypeOf.Class, create:() => <DiEntry>[]),
    'List<BookingTicket>': TypeInfo(TypeOf.Class, create:() => <BookingTicket>[]),
    'List<BookingVersion>': TypeInfo(TypeOf.Class, create:() => <BookingVersion>[]),
    'List<BookingVendorLocator>': TypeInfo(TypeOf.Class, create:() => <BookingVendorLocator>[]),
    'List<CustomFieldValue>': TypeInfo(TypeOf.Class, create:() => <CustomFieldValue>[]),
    'List<BookingEmail>': TypeInfo(TypeOf.Class, create:() => <BookingEmail>[]),
    'List<BookingEventDetail>': TypeInfo(TypeOf.Class, create:() => <BookingEventDetail>[]),
    'List<BookingAccountLocation>': TypeInfo(TypeOf.Class, create:() => <BookingAccountLocation>[]),
    'List<BookingEmailTrail>': TypeInfo(TypeOf.Class, create:() => <BookingEmailTrail>[]),
    'List<BookingDetailsWarning>': TypeInfo(TypeOf.Class, create:() => <BookingDetailsWarning>[]),
    'List<BookingDetailsAirTicketingDue>': TypeInfo(TypeOf.Class, create:() => <BookingDetailsAirTicketingDue>[]),
    'List<CarbonEmission>': TypeInfo(TypeOf.Class, create:() => <CarbonEmission>[]),
    '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>[]),
    'BookingDetailsByRefResponse': TypeInfo(TypeOf.Class, create:() => BookingDetailsByRefResponse()),
    'BookingDetailsOptions': TypeInfo(TypeOf.Enum, enumValues:BookingDetailsOptions.values),
    'BookingDetailsByRef': TypeInfo(TypeOf.Class, create:() => BookingDetailsByRef()),
});

Dart 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>