Agentivity API

<back to all web services

AgencyReviews

The following routes are available for this service:
GET/AgencyReviews
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="AgencyReviewSummary", Namespace="schemas.agentivity.com/types")
class AgencyReviewSummary implements ICarbonTonnage, ICarbonEmissionDto, IConvertible
{
    // @DataMember(Order=10)
    int? TicketedBookings;

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

    // @DataMember(Order=25)
    int? AssumedTicketedBookings;

    // @DataMember(Order=30)
    int? NonTicketedBookings;

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

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

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

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

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

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

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

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

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

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

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

    // @DataMember(Order=145)
    int? AeroTouchesAuto;

    // @DataMember(Order=150)
    double? AverageItineraryChanges;

    // @DataMember(Order=160)
    double? AverageAccountBookingToTravelTime;

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

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

    // @DataMember(Order=190)
    double? TotalItineraryChanges;

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

    // @DataMember(Order=210)
    double? CarbonEmissionValue;

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

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

    AgencyReviewSummary({this.TicketedBookings,this.LCCTktBookings,this.AssumedTicketedBookings,this.NonTicketedBookings,this.TicketedBookingsPerc,this.NonTicketedBookingsPerc,this.OnlineBookings,this.OfflineBookings,this.CxlBookings,this.OffLineHtlBookings,this.BookingsWithHotelSegments,this.BookingsWithCarSegments,this.NonAirBookings,this.TotalBookings,this.AeroTouches,this.AeroTouchesAuto,this.AverageItineraryChanges,this.AverageAccountBookingToTravelTime,this.TotalItineraryChangesBeforeTicketing,this.TotalItineraryChangesAfterTicketing,this.TotalItineraryChanges,this.BookingsWithNdcContent,this.CarbonEmissionValue,this.CarbonEmissionUnitId,this.CarbonTonnage});
    AgencyReviewSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TicketedBookings = json['TicketedBookings'];
        LCCTktBookings = json['LCCTktBookings'];
        AssumedTicketedBookings = json['AssumedTicketedBookings'];
        NonTicketedBookings = json['NonTicketedBookings'];
        TicketedBookingsPerc = json['TicketedBookingsPerc'];
        NonTicketedBookingsPerc = json['NonTicketedBookingsPerc'];
        OnlineBookings = json['OnlineBookings'];
        OfflineBookings = json['OfflineBookings'];
        CxlBookings = json['CxlBookings'];
        OffLineHtlBookings = json['OffLineHtlBookings'];
        BookingsWithHotelSegments = json['BookingsWithHotelSegments'];
        BookingsWithCarSegments = json['BookingsWithCarSegments'];
        NonAirBookings = json['NonAirBookings'];
        TotalBookings = json['TotalBookings'];
        AeroTouches = json['AeroTouches'];
        AeroTouchesAuto = json['AeroTouchesAuto'];
        AverageItineraryChanges = JsonConverters.toDouble(json['AverageItineraryChanges']);
        AverageAccountBookingToTravelTime = JsonConverters.toDouble(json['AverageAccountBookingToTravelTime']);
        TotalItineraryChangesBeforeTicketing = json['TotalItineraryChangesBeforeTicketing'];
        TotalItineraryChangesAfterTicketing = json['TotalItineraryChangesAfterTicketing'];
        TotalItineraryChanges = JsonConverters.toDouble(json['TotalItineraryChanges']);
        BookingsWithNdcContent = json['BookingsWithNdcContent'];
        CarbonEmissionValue = JsonConverters.toDouble(json['CarbonEmissionValue']);
        CarbonEmissionUnitId = json['CarbonEmissionUnitId'];
        CarbonTonnage = JsonConverters.toDouble(json['CarbonTonnage']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TicketedBookings': TicketedBookings,
        'LCCTktBookings': LCCTktBookings,
        'AssumedTicketedBookings': AssumedTicketedBookings,
        'NonTicketedBookings': NonTicketedBookings,
        'TicketedBookingsPerc': TicketedBookingsPerc,
        'NonTicketedBookingsPerc': NonTicketedBookingsPerc,
        'OnlineBookings': OnlineBookings,
        'OfflineBookings': OfflineBookings,
        'CxlBookings': CxlBookings,
        'OffLineHtlBookings': OffLineHtlBookings,
        'BookingsWithHotelSegments': BookingsWithHotelSegments,
        'BookingsWithCarSegments': BookingsWithCarSegments,
        'NonAirBookings': NonAirBookings,
        'TotalBookings': TotalBookings,
        'AeroTouches': AeroTouches,
        'AeroTouchesAuto': AeroTouchesAuto,
        'AverageItineraryChanges': AverageItineraryChanges,
        'AverageAccountBookingToTravelTime': AverageAccountBookingToTravelTime,
        'TotalItineraryChangesBeforeTicketing': TotalItineraryChangesBeforeTicketing,
        'TotalItineraryChangesAfterTicketing': TotalItineraryChangesAfterTicketing,
        'TotalItineraryChanges': TotalItineraryChanges,
        'BookingsWithNdcContent': BookingsWithNdcContent,
        'CarbonEmissionValue': CarbonEmissionValue,
        'CarbonEmissionUnitId': CarbonEmissionUnitId,
        'CarbonTonnage': CarbonTonnage
    };

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

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

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

    // @DataMember(Order=30)
    int? TotalSegments;

    AirlineStats({this.CarrierCode,this.Carrier,this.TotalSegments});
    AirlineStats.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

// @DataContract(Name="AirlineSupport", Namespace="schemas.agentivity.com/types")
class AirlineSupport implements IConvertible
{
    // @DataMember(Order=10)
    List<AirlineStats>? AirlinesStats;

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

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

    AirlineSupport({this.AirlinesStats,this.TotalSegments,this.FormattedAirlineSupport});
    AirlineSupport.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AirlinesStats = JsonConverters.fromJson(json['AirlinesStats'],'List<AirlineStats>',context!);
        TotalSegments = json['TotalSegments'];
        FormattedAirlineSupport = json['FormattedAirlineSupport'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AirlinesStats': JsonConverters.toJson(AirlinesStats,'List<AirlineStats>',context!),
        'TotalSegments': TotalSegments,
        'FormattedAirlineSupport': FormattedAirlineSupport
    };

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

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

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

    // @DataMember(Order=30)
    int? TotalSegments;

    CarStats({this.VendorCode,this.VendorName,this.TotalSegments});
    CarStats.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        VendorCode = json['VendorCode'];
        VendorName = json['VendorName'];
        TotalSegments = json['TotalSegments'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'VendorCode': VendorCode,
        'VendorName': VendorName,
        'TotalSegments': TotalSegments
    };

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

// @DataContract(Name="CarSupport", Namespace="schemas.agentivity.com/types")
class CarSupport implements IConvertible
{
    // @DataMember(Order=10)
    List<CarStats>? Stats;

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

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

    CarSupport({this.Stats,this.TotalSegments,this.FormattedCarSupport});
    CarSupport.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Stats = JsonConverters.fromJson(json['Stats'],'List<CarStats>',context!);
        TotalSegments = json['TotalSegments'];
        FormattedCarSupport = json['FormattedCarSupport'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Stats': JsonConverters.toJson(Stats,'List<CarStats>',context!),
        'TotalSegments': TotalSegments,
        'FormattedCarSupport': FormattedCarSupport
    };

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

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

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

    // @DataMember(Order=30)
    int? TotalSegments;

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

    HotelStats({this.VendorCode,this.VendorName,this.TotalSegments,this.TotalNights});
    HotelStats.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        VendorCode = json['VendorCode'];
        VendorName = json['VendorName'];
        TotalSegments = json['TotalSegments'];
        TotalNights = json['TotalNights'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'VendorCode': VendorCode,
        'VendorName': VendorName,
        'TotalSegments': TotalSegments,
        'TotalNights': TotalNights
    };

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

// @DataContract(Name="HotelSupport", Namespace="schemas.agentivity.com/types")
class HotelSupport implements IConvertible
{
    // @DataMember(Order=10)
    List<HotelStats>? Stats;

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

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

    HotelSupport({this.Stats,this.TotalSegments,this.FormattedHotelSupport});
    HotelSupport.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Stats = JsonConverters.fromJson(json['Stats'],'List<HotelStats>',context!);
        TotalSegments = json['TotalSegments'];
        FormattedHotelSupport = json['FormattedHotelSupport'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Stats': JsonConverters.toJson(Stats,'List<HotelStats>',context!),
        'TotalSegments': TotalSegments,
        'FormattedHotelSupport': FormattedHotelSupport
    };

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

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

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

    // @DataMember(Order=30)
    CarSupport? CarSupport;

    // @DataMember(Order=40)
    HotelSupport? HotelSupport;

    AgencyReview({this.Summary,this.AirlineSupport,this.CarSupport,this.HotelSupport});
    AgencyReview.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'Summary': JsonConverters.toJson(Summary,'AgencyReviewSummary',context!),
        'AirlineSupport': JsonConverters.toJson(AirlineSupport,'AirlineSupport',context!),
        'CarSupport': JsonConverters.toJson(CarSupport,'CarSupport',context!),
        'HotelSupport': JsonConverters.toJson(HotelSupport,'HotelSupport',context!)
    };

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

// @Flags()
class AgencyReviewOptions
{
    static const AgencyReviewOptions None = const AgencyReviewOptions._(0);
    static const AgencyReviewOptions Summary = const AgencyReviewOptions._(1);
    static const AgencyReviewOptions AirlineSupport = const AgencyReviewOptions._(2);
    static const AgencyReviewOptions SummaryAirlineSupport = const AgencyReviewOptions._(3);
    static const AgencyReviewOptions CarSupport = const AgencyReviewOptions._(4);
    static const AgencyReviewOptions HotelSupport = const AgencyReviewOptions._(8);
    static const AgencyReviewOptions All = const AgencyReviewOptions._(15);

    final int _value;
    const AgencyReviewOptions._(this._value);
    int get value => _value;
    static List<AgencyReviewOptions> get values => const [None,Summary,AirlineSupport,SummaryAirlineSupport,CarSupport,HotelSupport,All];
}

// @Flags()
class FormattingStyle
{
    static const FormattingStyle None = const FormattingStyle._(0);
    static const FormattingStyle Html = const FormattingStyle._(1);
    static const FormattingStyle Charting = const FormattingStyle._(2);

    final int _value;
    const FormattingStyle._(this._value);
    int get value => _value;
    static List<FormattingStyle> get values => const [None,Html,Charting];
}

// @Flags()
class AgencyReviewMode
{
    static const AgencyReviewMode Account = const AgencyReviewMode._(0);
    static const AgencyReviewMode Pcc = const AgencyReviewMode._(1);

    final int _value;
    const AgencyReviewMode._(this._value);
    int get value => _value;
    static List<AgencyReviewMode> get values => const [Account,Pcc];
}

// @DataContract(Namespace="schemas.agentivity.com/types")
class AgencyReviews extends CompanyLevelRequestBase implements IRequestConsultantID, IConvertible
{
    /**
    * Account
    */
    // @DataMember
    String? Account;

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

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

    /**
    * Comma Delimited List of PCCs
    */
    // @DataMember
    List<String>? OwningAgencyLocationID;

    /**
    * Load options
    */
    // @DataMember
    AgencyReviewOptions? LoadOptions;

    /**
    * Airline support format style
    */
    // @DataMember
    FormattingStyle? AirlineSupportFormatStyle;

    /**
    * Car support format style
    */
    // @DataMember
    FormattingStyle? CarSupportFormatStyle;

    /**
    * Hotel support format style
    */
    // @DataMember
    FormattingStyle? HotelSupportFormatStyle;

    /**
    * Excluded carrier code
    */
    // @DataMember
    String? ExcludedCarrierCode;

    /**
    * Mode
    */
    // @DataMember
    AgencyReviewMode? Mode;

    /**
    * Top car items
    */
    // @DataMember
    int? TopCarItems;

    /**
    * Top hotel items
    */
    // @DataMember
    int? TopHotelItems;

    /**
    * Includes AfterHours Servicing in results
    */
    // @DataMember
    bool? IncludeAfterHoursServicingFields;

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

    AgencyReviews({this.Account,this.PNRCreationDateStart,this.PNRCreationDateEnd,this.OwningAgencyLocationID,this.LoadOptions,this.AirlineSupportFormatStyle,this.CarSupportFormatStyle,this.HotelSupportFormatStyle,this.ExcludedCarrierCode,this.Mode,this.TopCarItems,this.TopHotelItems,this.IncludeAfterHoursServicingFields,this.RequestConsultantID});
    AgencyReviews.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Account = json['Account'];
        PNRCreationDateStart = json['PNRCreationDateStart'];
        PNRCreationDateEnd = json['PNRCreationDateEnd'];
        OwningAgencyLocationID = JsonConverters.fromJson(json['OwningAgencyLocationID'],'List<String>',context!);
        LoadOptions = JsonConverters.fromJson(json['LoadOptions'],'AgencyReviewOptions',context!);
        AirlineSupportFormatStyle = JsonConverters.fromJson(json['AirlineSupportFormatStyle'],'FormattingStyle',context!);
        CarSupportFormatStyle = JsonConverters.fromJson(json['CarSupportFormatStyle'],'FormattingStyle',context!);
        HotelSupportFormatStyle = JsonConverters.fromJson(json['HotelSupportFormatStyle'],'FormattingStyle',context!);
        ExcludedCarrierCode = json['ExcludedCarrierCode'];
        Mode = JsonConverters.fromJson(json['Mode'],'AgencyReviewMode',context!);
        TopCarItems = json['TopCarItems'];
        TopHotelItems = json['TopHotelItems'];
        IncludeAfterHoursServicingFields = json['IncludeAfterHoursServicingFields'];
        RequestConsultantID = json['RequestConsultantID'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Account': Account,
        'PNRCreationDateStart': PNRCreationDateStart,
        'PNRCreationDateEnd': PNRCreationDateEnd,
        'OwningAgencyLocationID': JsonConverters.toJson(OwningAgencyLocationID,'List<String>',context!),
        'LoadOptions': JsonConverters.toJson(LoadOptions,'AgencyReviewOptions',context!),
        'AirlineSupportFormatStyle': JsonConverters.toJson(AirlineSupportFormatStyle,'FormattingStyle',context!),
        'CarSupportFormatStyle': JsonConverters.toJson(CarSupportFormatStyle,'FormattingStyle',context!),
        'HotelSupportFormatStyle': JsonConverters.toJson(HotelSupportFormatStyle,'FormattingStyle',context!),
        'ExcludedCarrierCode': ExcludedCarrierCode,
        'Mode': JsonConverters.toJson(Mode,'AgencyReviewMode',context!),
        'TopCarItems': TopCarItems,
        'TopHotelItems': TopHotelItems,
        'IncludeAfterHoursServicingFields': IncludeAfterHoursServicingFields,
        'RequestConsultantID': RequestConsultantID
    });

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

TypeContext _ctx = TypeContext(library: 'api.agentivity.com', types: <String, TypeInfo> {
    'PagingMetadata': TypeInfo(TypeOf.Class, create:() => PagingMetadata()),
    'CompanyLevelRequestBase': TypeInfo(TypeOf.AbstractClass),
    'AgencyReviewSummary': TypeInfo(TypeOf.Class, create:() => AgencyReviewSummary()),
    'AirlineStats': TypeInfo(TypeOf.Class, create:() => AirlineStats()),
    'AirlineSupport': TypeInfo(TypeOf.Class, create:() => AirlineSupport()),
    'List<AirlineStats>': TypeInfo(TypeOf.Class, create:() => <AirlineStats>[]),
    'CarStats': TypeInfo(TypeOf.Class, create:() => CarStats()),
    'CarSupport': TypeInfo(TypeOf.Class, create:() => CarSupport()),
    'List<CarStats>': TypeInfo(TypeOf.Class, create:() => <CarStats>[]),
    'HotelStats': TypeInfo(TypeOf.Class, create:() => HotelStats()),
    'HotelSupport': TypeInfo(TypeOf.Class, create:() => HotelSupport()),
    'List<HotelStats>': TypeInfo(TypeOf.Class, create:() => <HotelStats>[]),
    'AgencyReview': TypeInfo(TypeOf.Class, create:() => AgencyReview()),
    '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>[]),
    'AgencyReviewsResponse': TypeInfo(TypeOf.Class, create:() => AgencyReviewsResponse()),
    'AgencyReviewOptions': TypeInfo(TypeOf.Enum, enumValues:AgencyReviewOptions.values),
    'FormattingStyle': TypeInfo(TypeOf.Enum, enumValues:FormattingStyle.values),
    'AgencyReviewMode': TypeInfo(TypeOf.Enum, enumValues:AgencyReviewMode.values),
    'AgencyReviews': TypeInfo(TypeOf.Class, create:() => AgencyReviews()),
});

Dart AgencyReviews DTOs

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

HTTP + CSV

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

GET /AgencyReviews HTTP/1.1 
Host: api.agentivity.com 
Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"ResponseMetadata":{"Success":false,"HasCache":false,"HasPaging":false,"CacheMetadata":{"IsFromCache":false,"CachedAt":"\/Date(-62135596800000-0000)\/","CacheExpiresAt":"\/Date(-62135596800000-0000)\/"},"PagingMetadata":{"Offset":"String","Limit":"String","TotalRecords":0,"ResponseRecords":0}},"ResponseReport":[{"Summary":{"TicketedBookings":0,"LCCTktBookings":0,"AssumedTicketedBookings":0,"NonTicketedBookings":0,"TicketedBookingsPerc":0,"NonTicketedBookingsPerc":0,"OnlineBookings":0,"OfflineBookings":0,"CxlBookings":0,"OffLineHtlBookings":0,"BookingsWithHotelSegments":0,"BookingsWithCarSegments":0,"NonAirBookings":0,"TotalBookings":0,"AeroTouches":0,"AeroTouchesAuto":0,"AverageItineraryChanges":0,"AverageAccountBookingToTravelTime":0,"TotalItineraryChangesBeforeTicketing":0,"TotalItineraryChangesAfterTicketing":0,"TotalItineraryChanges":0,"CarbonTonnage":0,"CarbonEmissionValue":0,"CarbonEmissionUnitId":0,"BookingsWithNdcContent":0},"AirlineSupport":{"AirlinesStats":[{"CarrierCode":"String","Carrier":"String","TotalSegments":0}],"TotalSegments":0,"FormattedAirlineSupport":"String"},"CarSupport":{"Stats":[{"VendorCode":"String","VendorName":"String","TotalSegments":0}],"TotalSegments":0,"FormattedCarSupport":"String"},"HotelSupport":{"Stats":[{"VendorCode":"String","VendorName":"String","TotalSegments":0,"TotalNights":0}],"TotalSegments":0,"FormattedHotelSupport":"String"}}],"ResponseError":{"ErrorCode":"String","Message":"String","StatusCode":"String","VerboseMessage":"String"}}