GET | /TicketCouponsByStatusCode |
---|
import Foundation
import ServiceStack
// @DataContract(Namespace="schemas.agentivity.com/types")
public class GetTicketCouponsByStatusCode : CompanyLevelRequestBase, IRequestConsultantID
{
/**
* Date in format YYYYMMDD
*/
// @DataMember
public var dateStart:String
/**
* Date in format YYYYMMDD
*/
// @DataMember
public var dateEnd:String
/**
* Travel agent ID
*/
// @DataMember
public var travAgntID:String
/**
* Comma Delimited List of Accounts
*/
// @DataMember
public var account:[String]
/**
* Comma Delimited List of PCCs
*/
// @DataMember
public var owningAgencyLocationID:[String]
/**
* Coupon code group ("ALL OPEN") or any Coupon Status eg USED, OPEN
*/
// @DataMember
public var couponCodeGroup:String
/**
* Date range type. A single character: I = Issue date, T = Travel date, E = Expiry date
*/
// @DataMember
public var dateTracker:String
/**
* Repeat
*/
// @DataMember
public var repeat:Bool
/**
* Lists only segments that are not active
*/
// @DataMember
public var noActiveSegments:Bool
/**
* Include partial matches
*/
// @DataMember
public var includePartialMatches:Bool
/**
* Show Matching Coupons Only
*/
// @DataMember
public var showMatchingCouponsOnly:Bool
/**
* Pax surname
*/
// @DataMember
public var paxSurname:String
/**
* Two letter code for carrier
*/
// @DataMember
public var carrierCode:String
/**
* Comma delimited list of 3-character plating carriers
*/
// @DataMember
public var excludedPlatingCarrier:[String]
/**
* Id of the owning consultant
*/
// @DataMember
public var owningConsultantID:String
/**
* Cache Guid
*/
// @DataMember
public var cacheGuid:String
/**
* Agentivity Traveller GUID
*/
// @DataMember
public var travellerGUID:String
/**
* Request Consultant ID (sign on)
*/
// @DataMember
public var requestConsultantID:String
// @DataMember
public var crmCode:Int
// @DataMember
public var crmid:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case dateStart
case dateEnd
case travAgntID
case account
case owningAgencyLocationID
case couponCodeGroup
case dateTracker
case repeat
case noActiveSegments
case includePartialMatches
case showMatchingCouponsOnly
case paxSurname
case carrierCode
case excludedPlatingCarrier
case owningConsultantID
case cacheGuid
case travellerGUID
case requestConsultantID
case crmCode
case crmid
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
dateStart = try container.decodeIfPresent(String.self, forKey: .dateStart)
dateEnd = try container.decodeIfPresent(String.self, forKey: .dateEnd)
travAgntID = try container.decodeIfPresent(String.self, forKey: .travAgntID)
account = try container.decodeIfPresent([String].self, forKey: .account) ?? []
owningAgencyLocationID = try container.decodeIfPresent([String].self, forKey: .owningAgencyLocationID) ?? []
couponCodeGroup = try container.decodeIfPresent(String.self, forKey: .couponCodeGroup)
dateTracker = try container.decodeIfPresent(String.self, forKey: .dateTracker)
repeat = try container.decodeIfPresent(Bool.self, forKey: .repeat)
noActiveSegments = try container.decodeIfPresent(Bool.self, forKey: .noActiveSegments)
includePartialMatches = try container.decodeIfPresent(Bool.self, forKey: .includePartialMatches)
showMatchingCouponsOnly = try container.decodeIfPresent(Bool.self, forKey: .showMatchingCouponsOnly)
paxSurname = try container.decodeIfPresent(String.self, forKey: .paxSurname)
carrierCode = try container.decodeIfPresent(String.self, forKey: .carrierCode)
excludedPlatingCarrier = try container.decodeIfPresent([String].self, forKey: .excludedPlatingCarrier) ?? []
owningConsultantID = try container.decodeIfPresent(String.self, forKey: .owningConsultantID)
cacheGuid = try container.decodeIfPresent(String.self, forKey: .cacheGuid)
travellerGUID = try container.decodeIfPresent(String.self, forKey: .travellerGUID)
requestConsultantID = try container.decodeIfPresent(String.self, forKey: .requestConsultantID)
crmCode = try container.decodeIfPresent(Int.self, forKey: .crmCode)
crmid = try container.decodeIfPresent(String.self, forKey: .crmid)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if dateStart != nil { try container.encode(dateStart, forKey: .dateStart) }
if dateEnd != nil { try container.encode(dateEnd, forKey: .dateEnd) }
if travAgntID != nil { try container.encode(travAgntID, forKey: .travAgntID) }
if account != nil { try container.encode(account, forKey: .account) }
if owningAgencyLocationID != nil { try container.encode(owningAgencyLocationID, forKey: .owningAgencyLocationID) }
if couponCodeGroup != nil { try container.encode(couponCodeGroup, forKey: .couponCodeGroup) }
if dateTracker != nil { try container.encode(dateTracker, forKey: .dateTracker) }
if repeat != nil { try container.encode(repeat, forKey: .repeat) }
if noActiveSegments != nil { try container.encode(noActiveSegments, forKey: .noActiveSegments) }
if includePartialMatches != nil { try container.encode(includePartialMatches, forKey: .includePartialMatches) }
if showMatchingCouponsOnly != nil { try container.encode(showMatchingCouponsOnly, forKey: .showMatchingCouponsOnly) }
if paxSurname != nil { try container.encode(paxSurname, forKey: .paxSurname) }
if carrierCode != nil { try container.encode(carrierCode, forKey: .carrierCode) }
if excludedPlatingCarrier != nil { try container.encode(excludedPlatingCarrier, forKey: .excludedPlatingCarrier) }
if owningConsultantID != nil { try container.encode(owningConsultantID, forKey: .owningConsultantID) }
if cacheGuid != nil { try container.encode(cacheGuid, forKey: .cacheGuid) }
if travellerGUID != nil { try container.encode(travellerGUID, forKey: .travellerGUID) }
if requestConsultantID != nil { try container.encode(requestConsultantID, forKey: .requestConsultantID) }
if crmCode != nil { try container.encode(crmCode, forKey: .crmCode) }
if crmid != nil { try container.encode(crmid, forKey: .crmid) }
}
}
// @DataContract(Namespace="schemas.agentivity.com/types")
public class CompanyLevelRequestBase : PagingMetadata, IMemberUsername, IMemberOwningCompanyCode
{
/**
* Comma Delimited List of Owning Company Codes
*/
// @DataMember
public var owningCompanyCode:[String]
/**
* UserName in form of an email address
*/
// @DataMember
public var userName:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case owningCompanyCode
case userName
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
owningCompanyCode = try container.decodeIfPresent([String].self, forKey: .owningCompanyCode) ?? []
userName = try container.decodeIfPresent(String.self, forKey: .userName)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if owningCompanyCode != nil { try container.encode(owningCompanyCode, forKey: .owningCompanyCode) }
if userName != nil { try container.encode(userName, forKey: .userName) }
}
}
// @DataContract(Name="Metadata", Namespace="schemas.agentivity.com/types")
public class PagingMetadata : Codable
{
/**
* Starting Record
*/
// @DataMember
// @ApiMember(DataType="string", Description="Starting Record", Name="Offset", ParameterType="query")
public var offset:String
/**
* Number of records to return (PageSize)
*/
// @DataMember
// @ApiMember(DataType="string", Description="Number of records to return (PageSize)", Name="Limit", ParameterType="query")
public var limit:String
/**
* Total Number of Records in a Full Reponse (if no paging)
*/
// @DataMember
// @ApiMember(DataType="string", Description="Total Number of Records in a Full Reponse (if no paging)", Name="TotalRecords", ParameterType="query")
public var totalRecords:Int
/**
* Total Number of Records in this Reponse (on this page)
*/
// @DataMember
// @ApiMember(DataType="string", Description="Total Number of Records in this Reponse (on this page)", Name="ResponseRecords", ParameterType="query")
public var responseRecords:Int
required public init(){}
}
// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
public class TicketCouponsByStatusCodeResponse : CollectionResponse<TicketCouponsByStatusCode>
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
// @DataContract(Name="AgentivityResponse", Namespace="schemas.agentivity.com/types")
public class CollectionResponse<TItem : Codable> : Codable
{
// @DataMember(Order=1)
public var responseMetadata:ResponseMetadata
// @DataMember(Order=2, EmitDefaultValue=false)
public var responseReport:[ApiRequestPerHour]
// @DataMember(Order=3, EmitDefaultValue=false)
public var responseError:AgentivityError
required public init(){}
}
// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
public class ResponseMetadata : Codable
{
// @DataMember(Order=0)
public var success:Bool
// @DataMember(Order=1)
public var hasCache:Bool
// @DataMember(Order=2)
public var hasPaging:Bool
// @DataMember(Order=3, EmitDefaultValue=false)
public var cacheMetadata:CacheMetadata
// @DataMember(Order=4, EmitDefaultValue=false)
public var pagingMetadata:PagingMetadata
required public init(){}
}
// @DataContract(Name="CacheMetadata", Namespace="schemas.agentivity.com/types")
public class CacheMetadata : Codable
{
// @DataMember(Order=1)
public var cachedAt:Date
// @DataMember(Order=2)
public var cacheExpiresAt:Date
// @DataMember(Order=0)
public var isFromCache:Bool
required public init(){}
}
// @DataContract(Name="ApiRequestPerHour", Namespace="schemas.agentivity.com/types")
public class ApiRequestPerHour : Codable
{
// @DataMember(Order=10)
public var requestDate:Date
// @DataMember(Order=100)
public var hour0:Int
// @DataMember(Order=110)
public var hour1:Int
// @DataMember(Order=120)
public var hour2:Int
// @DataMember(Order=130)
public var hour3:Int
// @DataMember(Order=140)
public var hour4:Int
// @DataMember(Order=150)
public var hour5:Int
// @DataMember(Order=160)
public var hour6:Int
// @DataMember(Order=170)
public var hour7:Int
// @DataMember(Order=180)
public var hour8:Int
// @DataMember(Order=190)
public var hour9:Int
// @DataMember(Order=200)
public var hour10:Int
// @DataMember(Order=210)
public var hour11:Int
// @DataMember(Order=220)
public var hour12:Int
// @DataMember(Order=230)
public var hour13:Int
// @DataMember(Order=240)
public var hour14:Int
// @DataMember(Order=250)
public var hour15:Int
// @DataMember(Order=260)
public var hour16:Int
// @DataMember(Order=270)
public var hour17:Int
// @DataMember(Order=280)
public var hour18:Int
// @DataMember(Order=290)
public var hour19:Int
// @DataMember(Order=300)
public var hour20:Int
// @DataMember(Order=310)
public var hour21:Int
// @DataMember(Order=320)
public var hour22:Int
// @DataMember(Order=330)
public var hour23:Int
required public init(){}
}
// @DataContract(Name="ResponseMetadata", Namespace="schemas.agentivity.com/types")
public class AgentivityError : Codable
{
// @DataMember
public var errorCode:String
// @DataMember
public var message:String
// @DataMember
public var statusCode:String
// @DataMember
public var verboseMessage:String
required public init(){}
}
// @DataContract(Name="TicketCouponsByStatusCode", Namespace="schemas.agentivity.com/types")
public class TicketCouponsByStatusCode : IBookingIdentifier, ICustomFields, Codable
{
// @DataMember(Order=5)
public var companyName:String
// @DataMember(Order=10)
public var tktNumber:String
// @DataMember(Order=20)
public var rn:String
// @DataMember(Order=30)
public var airTktSegId:String
// @DataMember(Order=35)
public var vndIssueDt:Date?
// @DataMember(Order=40)
public var recordLocator:String
// @DataMember(Order=45)
public var passenger:String
// @DataMember(Order=51)
public var travAgntID:String
// @DataMember(Order=60)
public var owningConsultantID:String
// @DataMember(Order=70)
public var fopFare:String
// @DataMember(Order=80)
public var baseFare:String
// @DataMember(Order=90)
public var fop:String
// @DataMember(Order=110)
public var totalTax:String
// @DataMember(Order=120)
public var tax1Code:String
// @DataMember(Order=130)
public var tax1Amt:String
// @DataMember(Order=140)
public var tax2Code:String
// @DataMember(Order=150)
public var tax2Amt:String
// @DataMember(Order=160)
public var tax3Code:String
// @DataMember(Order=170)
public var tax3Amt:String
// @DataMember(Order=180)
public var tax4Code:String
// @DataMember(Order=180)
public var tax4Amt:String
// @DataMember(Order=200)
public var tax5Code:String
// @DataMember(Order=210)
public var tax5Amt:String
// @DataMember(Order=220)
public var account:String
// @DataMember(Order=230)
public var exchangedForTicket:String
// @DataMember(Order=240)
public var couponSequenceNbr:String
// @DataMember(Order=250)
public var carrier:String
// @DataMember(Order=260)
public var boardPoint:String
// @DataMember(Order=270)
public var offPoint:String
// @DataMember(Order=280)
public var flightDate:Date?
// @DataMember(Order=290)
public var flightServiceClass:String
// @DataMember(Order=300)
public var fareBasis:String
// @DataMember(Order=310)
public var flightCouponStatus:String
// @DataMember(Order=320)
public var dateLastChecked:Date?
// @DataMember(Order=330)
public var pcc:String
// @DataMember(Order=340)
public var airlineCode:String
// @DataMember(Order=500)
public var owningCompanyCode:String
// @DataMember(Order=510)
public var creditCurrency:String
// @DataMember(Order=520)
public var creditValue:Double?
// @DataMember(Order=530)
public var flightServiceClassName:String
// @DataMember(Order=540)
public var flownKM:Int?
// @DataMember(Order=550)
public var bar:String
// @DataMember(Order=560)
public var pnrCreationDate:Date?
// @DataMember(Order=570)
public var agentivityRef:Int
// @DataMember(Order=580)
public var customFields:CustomFieldsCollection
required public init(){}
}
public class CustomFieldsCollection : List<CustomFieldData>
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
// @DataContract(Name="CustomField", Namespace="schemas.agentivity.com/types")
public class CustomFieldData : Codable
{
// @DataMember(Order=20)
public var fieldName:String
// @DataMember(Order=30)
public var fieldValue:String
required public init(){}
}
Swift GetTicketCouponsByStatusCode DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /TicketCouponsByStatusCode HTTP/1.1 Host: api.agentivity.com Accept: application/json
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"ResponseMetadata":{"Success":false,"HasCache":false,"HasPaging":false,"CacheMetadata":{"IsFromCache":false,"CachedAt":"\/Date(-62135596800000-0000)\/","CacheExpiresAt":"\/Date(-62135596800000-0000)\/"},"PagingMetadata":{"Offset":"String","Limit":"String","TotalRecords":0,"ResponseRecords":0}},"ResponseReport":[{"CompanyName":"String","TktNumber":"String","RN":"String","AirTktSegId":"String","VndIssueDt":"\/Date(-62135596800000-0000)\/","RecordLocator":"String","Passenger":"String","TravAgntID":"String","OwningConsultantID":"String","FOPFare":"String","BaseFare":"String","FOP":"String","TotalTax":"String","Tax1Code":"String","Tax1Amt":"String","Tax2Code":"String","Tax2Amt":"String","Tax3Code":"String","Tax3Amt":"String","Tax4Code":"String","Tax4Amt":"String","Tax5Code":"String","Tax5Amt":"String","Account":"String","ExchangedForTicket":"String","CouponSequenceNbr":"String","Carrier":"String","BoardPoint":"String","OffPoint":"String","FlightDate":"\/Date(-62135596800000-0000)\/","FlightServiceClass":"String","FareBasis":"String","FlightCouponStatus":"String","DateLastChecked":"\/Date(-62135596800000-0000)\/","PCC":"String","AirlineCode":"String","OwningCompanyCode":"String","CreditCurrency":"String","CreditValue":0,"FlightServiceClassName":"String","FlownKM":0,"BAR":"String","PNRCreationDate":"\/Date(-62135596800000-0000)\/","AgentivityRef":0,"CustomFields":[{"FieldName":"String","FieldValue":"String"}]}],"ResponseError":{"ErrorCode":"String","Message":"String","StatusCode":"String","VerboseMessage":"String"}}