// Copyright 2018 Google Inc. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // AUTO-GENERATED CODE. DO NOT EDIT. // Package qpxexpress provides access to the QPX Express API. // // See http://developers.google.com/qpx-express // // Usage example: // // import "google.golang.org/api/qpxexpress/v1" // ... // qpxexpressService, err := qpxexpress.New(oauthHttpClient) package qpxexpress // import "google.golang.org/api/qpxexpress/v1" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" gensupport "google.golang.org/api/gensupport" googleapi "google.golang.org/api/googleapi" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled const apiId = "qpxExpress:v1" const apiName = "qpxExpress" const apiVersion = "v1" const basePath = "https://www.googleapis.com/qpxExpress/v1/trips/" func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.Trips = NewTripsService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Trips *TripsService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewTripsService(s *Service) *TripsService { rs := &TripsService{s: s} return rs } type TripsService struct { s *Service } // AircraftData: The make, model, and type of an aircraft. type AircraftData struct { // Code: The aircraft code. For example, for a Boeing 777 the code would // be 777. Code string `json:"code,omitempty"` // Kind: Identifies this as an aircraftData object. Value: the fixed // string qpxexpress#aircraftData Kind string `json:"kind,omitempty"` // Name: The name of an aircraft, for example Boeing 777. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Code") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *AircraftData) MarshalJSON() ([]byte, error) { type NoMethod AircraftData raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // AirportData: An airport. type AirportData struct { // City: The city code an airport is located in. For example, for JFK // airport, this is NYC. City string `json:"city,omitempty"` // Code: An airport's code. For example, for Boston Logan airport, this // is BOS. Code string `json:"code,omitempty"` // Kind: Identifies this as an airport object. Value: the fixed string // qpxexpress#airportData. Kind string `json:"kind,omitempty"` // Name: The name of an airport. For example, for airport BOS the name // is "Boston Logan International". Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "City") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "City") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *AirportData) MarshalJSON() ([]byte, error) { type NoMethod AirportData raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // BagDescriptor: Information about an item of baggage. type BagDescriptor struct { // CommercialName: Provides the commercial name for an optional service. CommercialName string `json:"commercialName,omitempty"` // Count: How many of this type of bag will be checked on this flight. Count int64 `json:"count,omitempty"` // Description: A description of the baggage. Description []string `json:"description,omitempty"` // Kind: Identifies this as a baggage object. Value: the fixed string // qpxexpress#bagDescriptor. Kind string `json:"kind,omitempty"` // Subcode: The standard IATA subcode used to identify this optional // service. Subcode string `json:"subcode,omitempty"` // ForceSendFields is a list of field names (e.g. "CommercialName") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CommercialName") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *BagDescriptor) MarshalJSON() ([]byte, error) { type NoMethod BagDescriptor raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CarrierData: Information about a carrier (ie. an airline, bus line, // railroad, etc) that might be useful to display to an end-user. type CarrierData struct { // Code: The IATA designator of a carrier (airline, etc). For example, // for American Airlines, the code is AA. Code string `json:"code,omitempty"` // Kind: Identifies this as a kind of carrier (ie. an airline, bus line, // railroad, etc). Value: the fixed string qpxexpress#carrierData. Kind string `json:"kind,omitempty"` // Name: The long, full name of a carrier. For example: American // Airlines. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Code") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CarrierData) MarshalJSON() ([]byte, error) { type NoMethod CarrierData raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CityData: Information about a city that might be useful to an // end-user; typically the city of an airport. type CityData struct { // Code: The IATA character ID of a city. For example, for Boston this // is BOS. Code string `json:"code,omitempty"` // Country: The two-character country code of the country the city is // located in. For example, US for the United States of America. Country string `json:"country,omitempty"` // Kind: Identifies this as a city, typically with one or more airports. // Value: the fixed string qpxexpress#cityData. Kind string `json:"kind,omitempty"` // Name: The full name of a city. An example would be: New York. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Code") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CityData) MarshalJSON() ([]byte, error) { type NoMethod CityData raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Data: Detailed information about components found in the solutions of // this response, including a trip's airport, city, taxes, airline, and // aircraft. type Data struct { // Aircraft: The aircraft that is flying between an origin and // destination. Aircraft []*AircraftData `json:"aircraft,omitempty"` // Airport: The airport of an origin or destination. Airport []*AirportData `json:"airport,omitempty"` // Carrier: The airline carrier of the aircraft flying between an origin // and destination. Allowed values are IATA carrier codes. Carrier []*CarrierData `json:"carrier,omitempty"` // City: The city that is either the origin or destination of part of a // trip. City []*CityData `json:"city,omitempty"` // Kind: Identifies this as QPX Express response resource, including a // trip's airport, city, taxes, airline, and aircraft. Value: the fixed // string qpxexpress#data. Kind string `json:"kind,omitempty"` // Tax: The taxes due for flying between an origin and a destination. Tax []*TaxData `json:"tax,omitempty"` // ForceSendFields is a list of field names (e.g. "Aircraft") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Aircraft") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Data) MarshalJSON() ([]byte, error) { type NoMethod Data raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // FareInfo: Complete information about a fare used in the solution to a // low-fare search query. In the airline industry a fare is a price an // airline charges for one-way travel between two points. A fare // typically contains a carrier code, two city codes, a price, and a // fare basis. (A fare basis is a one-to-eight character alphanumeric // code used to identify a fare.) type FareInfo struct { BasisCode string `json:"basisCode,omitempty"` // Carrier: The carrier of the aircraft or other vehicle commuting // between two points. Carrier string `json:"carrier,omitempty"` // Destination: The city code of the city the trip ends at. Destination string `json:"destination,omitempty"` // Id: A unique identifier of the fare. Id string `json:"id,omitempty"` // Kind: Identifies this as a fare object. Value: the fixed string // qpxexpress#fareInfo. Kind string `json:"kind,omitempty"` // Origin: The city code of the city the trip begins at. Origin string `json:"origin,omitempty"` // Private: Whether this is a private fare, for example one offered only // to select customers rather than the general public. Private bool `json:"private,omitempty"` // ForceSendFields is a list of field names (e.g. "BasisCode") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BasisCode") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *FareInfo) MarshalJSON() ([]byte, error) { type NoMethod FareInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // FlightInfo: A flight is a sequence of legs with the same airline // carrier and flight number. (A leg is the smallest unit of travel, in // the case of a flight a takeoff immediately followed by a landing at // two set points on a particular carrier with a particular flight // number.) The naive view is that a flight is scheduled travel of an // aircraft between two points, with possibly intermediate stops, but // carriers will frequently list flights that require a change of // aircraft between legs. type FlightInfo struct { Carrier string `json:"carrier,omitempty"` // Number: The flight number. Number string `json:"number,omitempty"` // ForceSendFields is a list of field names (e.g. "Carrier") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Carrier") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *FlightInfo) MarshalJSON() ([]byte, error) { type NoMethod FlightInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // FreeBaggageAllowance: Information about free baggage allowed on one // segment of a trip. type FreeBaggageAllowance struct { // BagDescriptor: A representation of a type of bag, such as an ATPCo // subcode, Commercial Name, or other description. BagDescriptor []*BagDescriptor `json:"bagDescriptor,omitempty"` // Kilos: The maximum number of kilos all the free baggage together may // weigh. Kilos int64 `json:"kilos,omitempty"` // KilosPerPiece: The maximum number of kilos any one piece of baggage // may weigh. KilosPerPiece int64 `json:"kilosPerPiece,omitempty"` // Kind: Identifies this as free baggage object, allowed on one segment // of a trip. Value: the fixed string qpxexpress#freeBaggageAllowance. Kind string `json:"kind,omitempty"` // Pieces: The number of free pieces of baggage allowed. Pieces int64 `json:"pieces,omitempty"` // Pounds: The number of pounds of free baggage allowed. Pounds int64 `json:"pounds,omitempty"` // ForceSendFields is a list of field names (e.g. "BagDescriptor") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BagDescriptor") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *FreeBaggageAllowance) MarshalJSON() ([]byte, error) { type NoMethod FreeBaggageAllowance raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // LegInfo: Information about a leg. (A leg is the smallest unit of // travel, in the case of a flight a takeoff immediately followed by a // landing at two set points on a particular carrier with a particular // flight number.) type LegInfo struct { // Aircraft: The aircraft (or bus, ferry, railcar, etc) travelling // between the two points of this leg. Aircraft string `json:"aircraft,omitempty"` // ArrivalTime: The scheduled time of arrival at the destination of the // leg, local to the point of arrival. ArrivalTime string `json:"arrivalTime,omitempty"` // ChangePlane: Whether you have to change planes following this leg. // Only applies to the next leg. ChangePlane bool `json:"changePlane,omitempty"` // ConnectionDuration: Duration of a connection following this leg, in // minutes. ConnectionDuration int64 `json:"connectionDuration,omitempty"` // DepartureTime: The scheduled departure time of the leg, local to the // point of departure. DepartureTime string `json:"departureTime,omitempty"` // Destination: The leg destination as a city and airport. Destination string `json:"destination,omitempty"` // DestinationTerminal: The terminal the flight is scheduled to arrive // at. DestinationTerminal string `json:"destinationTerminal,omitempty"` // Duration: The scheduled travelling time from the origin to the // destination. Duration int64 `json:"duration,omitempty"` // Id: An identifier that uniquely identifies this leg in the solution. Id string `json:"id,omitempty"` // Kind: Identifies this as a leg object. A leg is the smallest unit of // travel, in the case of a flight a takeoff immediately followed by a // landing at two set points on a particular carrier with a particular // flight number. Value: the fixed string qpxexpress#legInfo. Kind string `json:"kind,omitempty"` // Meal: A simple, general description of the meal(s) served on the // flight, for example: "Hot meal". Meal string `json:"meal,omitempty"` // Mileage: The number of miles in this leg. Mileage int64 `json:"mileage,omitempty"` // OnTimePerformance: In percent, the published on time performance on // this leg. OnTimePerformance int64 `json:"onTimePerformance,omitempty"` // OperatingDisclosure: Department of Transportation disclosure // information on the actual operator of a flight in a code share. (A // code share refers to a marketing agreement between two carriers, // where one carrier will list in its schedules (and take bookings for) // flights that are actually operated by another carrier.) OperatingDisclosure string `json:"operatingDisclosure,omitempty"` // Origin: The leg origin as a city and airport. Origin string `json:"origin,omitempty"` // OriginTerminal: The terminal the flight is scheduled to depart from. OriginTerminal string `json:"originTerminal,omitempty"` // Secure: Whether passenger information must be furnished to the United // States Transportation Security Administration (TSA) prior to // departure. Secure bool `json:"secure,omitempty"` // ForceSendFields is a list of field names (e.g. "Aircraft") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Aircraft") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *LegInfo) MarshalJSON() ([]byte, error) { type NoMethod LegInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // PassengerCounts: The number and type of passengers. Unfortunately the // definition of an infant, child, adult, and senior citizen varies // across carriers and reservation systems. type PassengerCounts struct { // AdultCount: The number of passengers that are adults. AdultCount int64 `json:"adultCount,omitempty"` // ChildCount: The number of passengers that are children. ChildCount int64 `json:"childCount,omitempty"` // InfantInLapCount: The number of passengers that are infants // travelling in the lap of an adult. InfantInLapCount int64 `json:"infantInLapCount,omitempty"` // InfantInSeatCount: The number of passengers that are infants each // assigned a seat. InfantInSeatCount int64 `json:"infantInSeatCount,omitempty"` // Kind: Identifies this as a passenger count object, representing the // number of passengers. Value: the fixed string // qpxexpress#passengerCounts. Kind string `json:"kind,omitempty"` // SeniorCount: The number of passengers that are senior citizens. SeniorCount int64 `json:"seniorCount,omitempty"` // ForceSendFields is a list of field names (e.g. "AdultCount") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AdultCount") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *PassengerCounts) MarshalJSON() ([]byte, error) { type NoMethod PassengerCounts raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // PricingInfo: The price of one or more travel segments. The currency // used to purchase tickets is usually determined by the sale/ticketing // city or the sale/ticketing country, unless none are specified, in // which case it defaults to that of the journey origin country. type PricingInfo struct { // BaseFareTotal: The total fare in the base fare currency (the currency // of the country of origin). This element is only present when the // sales currency and the currency of the country of commencement are // different. BaseFareTotal string `json:"baseFareTotal,omitempty"` // Fare: The fare used to price one or more segments. Fare []*FareInfo `json:"fare,omitempty"` // FareCalculation: The horizontal fare calculation. This is a field on // a ticket that displays all of the relevant items that go into the // calculation of the fare. FareCalculation string `json:"fareCalculation,omitempty"` // Kind: Identifies this as a pricing object, representing the price of // one or more travel segments. Value: the fixed string // qpxexpress#pricingInfo. Kind string `json:"kind,omitempty"` // LatestTicketingTime: The latest ticketing time for this pricing // assuming the reservation occurs at ticketing time and there is no // change in fares/rules. The time is local to the point of sale (POS). LatestTicketingTime string `json:"latestTicketingTime,omitempty"` // Passengers: The number of passengers to which this price applies. Passengers *PassengerCounts `json:"passengers,omitempty"` // Ptc: The passenger type code for this pricing. An alphanumeric code // used by a carrier to restrict fares to certain categories of // passenger. For instance, a fare might be valid only for senior // citizens. Ptc string `json:"ptc,omitempty"` // Refundable: Whether the fares on this pricing are refundable. Refundable bool `json:"refundable,omitempty"` // SaleFareTotal: The total fare in the sale or equivalent currency. SaleFareTotal string `json:"saleFareTotal,omitempty"` // SaleTaxTotal: The taxes in the sale or equivalent currency. SaleTaxTotal string `json:"saleTaxTotal,omitempty"` // SaleTotal: Total per-passenger price (fare and tax) in the sale or // equivalent currency. SaleTotal string `json:"saleTotal,omitempty"` // SegmentPricing: The per-segment price and baggage information. SegmentPricing []*SegmentPricing `json:"segmentPricing,omitempty"` // Tax: The taxes used to calculate the tax total per ticket. Tax []*TaxInfo `json:"tax,omitempty"` // ForceSendFields is a list of field names (e.g. "BaseFareTotal") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BaseFareTotal") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *PricingInfo) MarshalJSON() ([]byte, error) { type NoMethod PricingInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // SegmentInfo: Details of a segment of a flight; a segment is one or // more consecutive legs on the same flight. For example a hypothetical // flight ZZ001, from DFW to OGG, would have one segment with two legs: // DFW to HNL (leg 1), HNL to OGG (leg 2), and DFW to OGG (legs 1 and // 2). type SegmentInfo struct { // BookingCode: The booking code or class for this segment. BookingCode string `json:"bookingCode,omitempty"` // BookingCodeCount: The number of seats available in this booking code // on this segment. BookingCodeCount int64 `json:"bookingCodeCount,omitempty"` // Cabin: The cabin booked for this segment. Cabin string `json:"cabin,omitempty"` // ConnectionDuration: In minutes, the duration of the connection // following this segment. ConnectionDuration int64 `json:"connectionDuration,omitempty"` // Duration: The duration of the flight segment in minutes. Duration int64 `json:"duration,omitempty"` // Flight: The flight this is a segment of. Flight *FlightInfo `json:"flight,omitempty"` // Id: An id uniquely identifying the segment in the solution. Id string `json:"id,omitempty"` // Kind: Identifies this as a segment object. A segment is one or more // consecutive legs on the same flight. For example a hypothetical // flight ZZ001, from DFW to OGG, could have one segment with two legs: // DFW to HNL (leg 1), HNL to OGG (leg 2). Value: the fixed string // qpxexpress#segmentInfo. Kind string `json:"kind,omitempty"` // Leg: The legs composing this segment. Leg []*LegInfo `json:"leg,omitempty"` // MarriedSegmentGroup: The solution-based index of a segment in a // married segment group. Married segments can only be booked together. // For example, an airline might report a certain booking code as sold // out from Boston to Pittsburgh, but as available as part of two // married segments Boston to Chicago connecting through Pittsburgh. For // example content of this field, consider the round-trip flight ZZ1 // PHX-PHL ZZ2 PHL-CLT ZZ3 CLT-PHX. This has three segments, with the // two outbound ones (ZZ1 ZZ2) married. In this case, the two outbound // segments belong to married segment group 0, and the return segment // belongs to married segment group 1. MarriedSegmentGroup string `json:"marriedSegmentGroup,omitempty"` // SubjectToGovernmentApproval: Whether the operation of this segment // remains subject to government approval. SubjectToGovernmentApproval bool `json:"subjectToGovernmentApproval,omitempty"` // ForceSendFields is a list of field names (e.g. "BookingCode") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BookingCode") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *SegmentInfo) MarshalJSON() ([]byte, error) { type NoMethod SegmentInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // SegmentPricing: The price of this segment. type SegmentPricing struct { // FareId: A segment identifier unique within a single solution. It is // used to refer to different parts of the same solution. FareId string `json:"fareId,omitempty"` // FreeBaggageOption: Details of the free baggage allowance on this // segment. FreeBaggageOption []*FreeBaggageAllowance `json:"freeBaggageOption,omitempty"` // Kind: Identifies this as a segment pricing object, representing the // price of this segment. Value: the fixed string // qpxexpress#segmentPricing. Kind string `json:"kind,omitempty"` // SegmentId: Unique identifier in the response of this segment. SegmentId string `json:"segmentId,omitempty"` // ForceSendFields is a list of field names (e.g. "FareId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FareId") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *SegmentPricing) MarshalJSON() ([]byte, error) { type NoMethod SegmentPricing raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // SliceInfo: Information about a slice. A slice represents a // traveller's intent, the portion of a low-fare search corresponding to // a traveler's request to get between two points. One-way journeys are // generally expressed using 1 slice, round-trips using 2. For example, // if a traveler specifies the following trip in a user interface: // | Origin | Destination | Departure Date | | BOS | LAX | March 10, // 2007 | | LAX | SYD | March 17, 2007 | | SYD | BOS | March 22, 2007 // | // then this is a three slice trip. type SliceInfo struct { // Duration: The duration of the slice in minutes. Duration int64 `json:"duration,omitempty"` // Kind: Identifies this as a slice object. A slice represents a // traveller's intent, the portion of a low-fare search corresponding to // a traveler's request to get between two points. One-way journeys are // generally expressed using 1 slice, round-trips using 2. Value: the // fixed string qpxexpress#sliceInfo. Kind string `json:"kind,omitempty"` // Segment: The segment(s) constituting the slice. Segment []*SegmentInfo `json:"segment,omitempty"` // ForceSendFields is a list of field names (e.g. "Duration") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Duration") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *SliceInfo) MarshalJSON() ([]byte, error) { type NoMethod SliceInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // SliceInput: Criteria a desired slice must satisfy. type SliceInput struct { // Alliance: Slices with only the carriers in this alliance should be // returned; do not use this field with permittedCarrier. Allowed values // are ONEWORLD, SKYTEAM, and STAR. Alliance string `json:"alliance,omitempty"` // Date: Departure date in YYYY-MM-DD format. Date string `json:"date,omitempty"` // Destination: Airport or city IATA designator of the destination. Destination string `json:"destination,omitempty"` // Kind: Identifies this as a slice input object, representing the // criteria a desired slice must satisfy. Value: the fixed string // qpxexpress#sliceInput. Kind string `json:"kind,omitempty"` // MaxConnectionDuration: The longest connection between two legs, in // minutes, you are willing to accept. MaxConnectionDuration int64 `json:"maxConnectionDuration,omitempty"` // MaxStops: The maximum number of stops you are willing to accept in // this slice. MaxStops int64 `json:"maxStops,omitempty"` // Origin: Airport or city IATA designator of the origin. Origin string `json:"origin,omitempty"` // PermittedCarrier: A list of 2-letter IATA airline designators. Slices // with only these carriers should be returned. PermittedCarrier []string `json:"permittedCarrier,omitempty"` // PermittedDepartureTime: Slices must depart in this time of day range, // local to the point of departure. PermittedDepartureTime *TimeOfDayRange `json:"permittedDepartureTime,omitempty"` // PreferredCabin: Prefer solutions that book in this cabin for this // slice. Allowed values are COACH, PREMIUM_COACH, BUSINESS, and FIRST. PreferredCabin string `json:"preferredCabin,omitempty"` // ProhibitedCarrier: A list of 2-letter IATA airline designators. // Exclude slices that use these carriers. ProhibitedCarrier []string `json:"prohibitedCarrier,omitempty"` // ForceSendFields is a list of field names (e.g. "Alliance") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Alliance") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *SliceInput) MarshalJSON() ([]byte, error) { type NoMethod SliceInput raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TaxData: Tax data. type TaxData struct { // Id: An identifier uniquely identifying a tax in a response. Id string `json:"id,omitempty"` // Kind: Identifies this as a tax data object, representing some tax. // Value: the fixed string qpxexpress#taxData. Kind string `json:"kind,omitempty"` // Name: The name of a tax. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Id") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Id") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TaxData) MarshalJSON() ([]byte, error) { type NoMethod TaxData raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TaxInfo: Tax information. type TaxInfo struct { // ChargeType: Whether this is a government charge or a carrier // surcharge. ChargeType string `json:"chargeType,omitempty"` // Code: The code to enter in the ticket's tax box. Code string `json:"code,omitempty"` // Country: For government charges, the country levying the charge. Country string `json:"country,omitempty"` // Id: Identifier uniquely identifying this tax in a response. Not // present for unnamed carrier surcharges. Id string `json:"id,omitempty"` // Kind: Identifies this as a tax information object. Value: the fixed // string qpxexpress#taxInfo. Kind string `json:"kind,omitempty"` // SalePrice: The price of the tax in the sales or equivalent currency. SalePrice string `json:"salePrice,omitempty"` // ForceSendFields is a list of field names (e.g. "ChargeType") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ChargeType") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TaxInfo) MarshalJSON() ([]byte, error) { type NoMethod TaxInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TimeOfDayRange: Two times in a single day defining a time range. type TimeOfDayRange struct { // EarliestTime: The earliest time of day in HH:MM format. EarliestTime string `json:"earliestTime,omitempty"` // Kind: Identifies this as a time of day range object, representing two // times in a single day defining a time range. Value: the fixed string // qpxexpress#timeOfDayRange. Kind string `json:"kind,omitempty"` // LatestTime: The latest time of day in HH:MM format. LatestTime string `json:"latestTime,omitempty"` // ForceSendFields is a list of field names (e.g. "EarliestTime") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "EarliestTime") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TimeOfDayRange) MarshalJSON() ([]byte, error) { type NoMethod TimeOfDayRange raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TripOption: Trip information. type TripOption struct { // Id: Identifier uniquely identifying this trip in a response. Id string `json:"id,omitempty"` // Kind: Identifies this as a trip information object. Value: the fixed // string qpxexpress#tripOption. Kind string `json:"kind,omitempty"` // Pricing: Per passenger pricing information. Pricing []*PricingInfo `json:"pricing,omitempty"` // SaleTotal: The total price for all passengers on the trip, in the // form of a currency followed by an amount, e.g. USD253.35. SaleTotal string `json:"saleTotal,omitempty"` // Slice: The slices that make up this trip's itinerary. Slice []*SliceInfo `json:"slice,omitempty"` // ForceSendFields is a list of field names (e.g. "Id") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Id") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TripOption) MarshalJSON() ([]byte, error) { type NoMethod TripOption raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TripOptionsRequest: A QPX Express search request, which will yield // one or more solutions. type TripOptionsRequest struct { // MaxPrice: Do not return solutions that cost more than this price. The // alphabetical part of the price is in ISO 4217. The format, in regex, // is [A-Z]{3}\d+(\.\d+)? Example: $102.07 MaxPrice string `json:"maxPrice,omitempty"` // Passengers: Counts for each passenger type in the request. Passengers *PassengerCounts `json:"passengers,omitempty"` // Refundable: Return only solutions with refundable fares. Refundable bool `json:"refundable,omitempty"` // SaleCountry: IATA country code representing the point of sale. This // determines the "equivalent amount paid" currency for the ticket. SaleCountry string `json:"saleCountry,omitempty"` // Slice: The slices that make up the itinerary of this trip. A slice // represents a traveler's intent, the portion of a low-fare search // corresponding to a traveler's request to get between two points. // One-way journeys are generally expressed using one slice, round-trips // using two. An example of a one slice trip with three segments might // be BOS-SYD, SYD-LAX, LAX-BOS if the traveler only stopped in SYD and // LAX just long enough to change planes. Slice []*SliceInput `json:"slice,omitempty"` // Solutions: The number of solutions to return, maximum 500. Solutions int64 `json:"solutions,omitempty"` // TicketingCountry: IATA country code representing the point of // ticketing. TicketingCountry string `json:"ticketingCountry,omitempty"` // ForceSendFields is a list of field names (e.g. "MaxPrice") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "MaxPrice") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TripOptionsRequest) MarshalJSON() ([]byte, error) { type NoMethod TripOptionsRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TripOptionsResponse: A QPX Express search response. type TripOptionsResponse struct { // Data: Informational data global to list of solutions. Data *Data `json:"data,omitempty"` // Kind: Identifies this as a QPX Express trip response object, which // consists of zero or more solutions. Value: the fixed string // qpxexpress#tripOptions. Kind string `json:"kind,omitempty"` // RequestId: An identifier uniquely identifying this response. RequestId string `json:"requestId,omitempty"` // TripOption: A list of priced itinerary solutions to the QPX Express // query. TripOption []*TripOption `json:"tripOption,omitempty"` // ForceSendFields is a list of field names (e.g. "Data") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Data") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TripOptionsResponse) MarshalJSON() ([]byte, error) { type NoMethod TripOptionsResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TripsSearchRequest: A QPX Express search request. type TripsSearchRequest struct { // Request: A QPX Express search request. Required values are at least // one adult or senior passenger, an origin, a destination, and a date. Request *TripOptionsRequest `json:"request,omitempty"` // ForceSendFields is a list of field names (e.g. "Request") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Request") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TripsSearchRequest) MarshalJSON() ([]byte, error) { type NoMethod TripsSearchRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TripsSearchResponse: A QPX Express search response. type TripsSearchResponse struct { // Kind: Identifies this as a QPX Express API search response resource. // Value: the fixed string qpxExpress#tripsSearch. Kind string `json:"kind,omitempty"` // Trips: All possible solutions to the QPX Express search request. Trips *TripOptionsResponse `json:"trips,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Kind") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Kind") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TripsSearchResponse) MarshalJSON() ([]byte, error) { type NoMethod TripsSearchResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // method id "qpxExpress.trips.search": type TripsSearchCall struct { s *Service tripssearchrequest *TripsSearchRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Search: Returns a list of flights. func (r *TripsService) Search(tripssearchrequest *TripsSearchRequest) *TripsSearchCall { c := &TripsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.tripssearchrequest = tripssearchrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *TripsSearchCall) Fields(s ...googleapi.Field) *TripsSearchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *TripsSearchCall) Context(ctx context.Context) *TripsSearchCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *TripsSearchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *TripsSearchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.tripssearchrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "search") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "qpxExpress.trips.search" call. // Exactly one of *TripsSearchResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *TripsSearchResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *TripsSearchCall) Do(opts ...googleapi.CallOption) (*TripsSearchResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &TripsSearchResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Returns a list of flights.", // "httpMethod": "POST", // "id": "qpxExpress.trips.search", // "path": "search", // "request": { // "$ref": "TripsSearchRequest" // }, // "response": { // "$ref": "TripsSearchResponse" // } // } }