1 // Copyright 2020 Google LLC. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Code generated file. DO NOT EDIT. 6 7 // Package qpxexpress provides access to the QPX Express API. 8 // 9 // For product documentation, see: http://developers.google.com/qpx-express 10 // 11 // # Creating a client 12 // 13 // Usage example: 14 // 15 // import "google.golang.org/api/qpxexpress/v1" 16 // ... 17 // ctx := context.Background() 18 // qpxexpressService, err := qpxexpress.NewService(ctx) 19 // 20 // In this example, Google Application Default Credentials are used for authentication. 21 // 22 // For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. 23 // 24 // # Other authentication options 25 // 26 // To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: 27 // 28 // qpxexpressService, err := qpxexpress.NewService(ctx, option.WithAPIKey("AIza...")) 29 // 30 // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: 31 // 32 // config := &oauth2.Config{...} 33 // // ... 34 // token, err := config.Exchange(ctx, ...) 35 // qpxexpressService, err := qpxexpress.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 36 // 37 // See https://godoc.org/google.golang.org/api/option/ for details on options. 38 package qpxexpress // import "google.golang.org/api/qpxexpress/v1" 39 40 import ( 41 "bytes" 42 "context" 43 "encoding/json" 44 "errors" 45 "fmt" 46 "io" 47 "net/http" 48 "net/url" 49 "strconv" 50 "strings" 51 52 googleapi "google.golang.org/api/googleapi" 53 gensupport "google.golang.org/api/internal/gensupport" 54 option "google.golang.org/api/option" 55 htransport "google.golang.org/api/transport/http" 56 ) 57 58 // Always reference these packages, just in case the auto-generated code 59 // below doesn't. 60 var _ = bytes.NewBuffer 61 var _ = strconv.Itoa 62 var _ = fmt.Sprintf 63 var _ = json.NewDecoder 64 var _ = io.Copy 65 var _ = url.Parse 66 var _ = gensupport.MarshalJSON 67 var _ = googleapi.Version 68 var _ = errors.New 69 var _ = strings.Replace 70 var _ = context.Canceled 71 72 const apiId = "qpxExpress:v1" 73 const apiName = "qpxExpress" 74 const apiVersion = "v1" 75 const basePath = "https://www.googleapis.com/qpxExpress/v1/trips/" 76 77 // NewService creates a new Service. 78 func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { 79 client, endpoint, err := htransport.NewClient(ctx, opts...) 80 if err != nil { 81 return nil, err 82 } 83 s, err := New(client) 84 if err != nil { 85 return nil, err 86 } 87 if endpoint != "" { 88 s.BasePath = endpoint 89 } 90 return s, nil 91 } 92 93 // New creates a new Service. It uses the provided http.Client for requests. 94 // 95 // Deprecated: please use NewService instead. 96 // To provide a custom HTTP client, use option.WithHTTPClient. 97 // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 98 func New(client *http.Client) (*Service, error) { 99 if client == nil { 100 return nil, errors.New("client is nil") 101 } 102 s := &Service{client: client, BasePath: basePath} 103 s.Trips = NewTripsService(s) 104 return s, nil 105 } 106 107 type Service struct { 108 client *http.Client 109 BasePath string // API endpoint base URL 110 UserAgent string // optional additional User-Agent fragment 111 112 Trips *TripsService 113 } 114 115 func (s *Service) userAgent() string { 116 if s.UserAgent == "" { 117 return googleapi.UserAgent 118 } 119 return googleapi.UserAgent + " " + s.UserAgent 120 } 121 122 func NewTripsService(s *Service) *TripsService { 123 rs := &TripsService{s: s} 124 return rs 125 } 126 127 type TripsService struct { 128 s *Service 129 } 130 131 // AircraftData: The make, model, and type of an aircraft. 132 type AircraftData struct { 133 // Code: The aircraft code. For example, for a Boeing 777 the code would 134 // be 777. 135 Code string `json:"code,omitempty"` 136 137 // Kind: Identifies this as an aircraftData object. Value: the fixed 138 // string qpxexpress#aircraftData 139 Kind string `json:"kind,omitempty"` 140 141 // Name: The name of an aircraft, for example Boeing 777. 142 Name string `json:"name,omitempty"` 143 144 // ForceSendFields is a list of field names (e.g. "Code") to 145 // unconditionally include in API requests. By default, fields with 146 // empty values are omitted from API requests. However, any non-pointer, 147 // non-interface field appearing in ForceSendFields will be sent to the 148 // server regardless of whether the field is empty or not. This may be 149 // used to include empty fields in Patch requests. 150 ForceSendFields []string `json:"-"` 151 152 // NullFields is a list of field names (e.g. "Code") to include in API 153 // requests with the JSON null value. By default, fields with empty 154 // values are omitted from API requests. However, any field with an 155 // empty value appearing in NullFields will be sent to the server as 156 // null. It is an error if a field in this list has a non-empty value. 157 // This may be used to include null fields in Patch requests. 158 NullFields []string `json:"-"` 159 } 160 161 func (s *AircraftData) MarshalJSON() ([]byte, error) { 162 type NoMethod AircraftData 163 raw := NoMethod(*s) 164 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 165 } 166 167 // AirportData: An airport. 168 type AirportData struct { 169 // City: The city code an airport is located in. For example, for JFK 170 // airport, this is NYC. 171 City string `json:"city,omitempty"` 172 173 // Code: An airport's code. For example, for Boston Logan airport, this 174 // is BOS. 175 Code string `json:"code,omitempty"` 176 177 // Kind: Identifies this as an airport object. Value: the fixed string 178 // qpxexpress#airportData. 179 Kind string `json:"kind,omitempty"` 180 181 // Name: The name of an airport. For example, for airport BOS the name 182 // is "Boston Logan International". 183 Name string `json:"name,omitempty"` 184 185 // ForceSendFields is a list of field names (e.g. "City") to 186 // unconditionally include in API requests. By default, fields with 187 // empty values are omitted from API requests. However, any non-pointer, 188 // non-interface field appearing in ForceSendFields will be sent to the 189 // server regardless of whether the field is empty or not. This may be 190 // used to include empty fields in Patch requests. 191 ForceSendFields []string `json:"-"` 192 193 // NullFields is a list of field names (e.g. "City") to include in API 194 // requests with the JSON null value. By default, fields with empty 195 // values are omitted from API requests. However, any field with an 196 // empty value appearing in NullFields will be sent to the server as 197 // null. It is an error if a field in this list has a non-empty value. 198 // This may be used to include null fields in Patch requests. 199 NullFields []string `json:"-"` 200 } 201 202 func (s *AirportData) MarshalJSON() ([]byte, error) { 203 type NoMethod AirportData 204 raw := NoMethod(*s) 205 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 206 } 207 208 // BagDescriptor: Information about an item of baggage. 209 type BagDescriptor struct { 210 // CommercialName: Provides the commercial name for an optional service. 211 CommercialName string `json:"commercialName,omitempty"` 212 213 // Count: How many of this type of bag will be checked on this flight. 214 Count int64 `json:"count,omitempty"` 215 216 // Description: A description of the baggage. 217 Description []string `json:"description,omitempty"` 218 219 // Kind: Identifies this as a baggage object. Value: the fixed string 220 // qpxexpress#bagDescriptor. 221 Kind string `json:"kind,omitempty"` 222 223 // Subcode: The standard IATA subcode used to identify this optional 224 // service. 225 Subcode string `json:"subcode,omitempty"` 226 227 // ForceSendFields is a list of field names (e.g. "CommercialName") to 228 // unconditionally include in API requests. By default, fields with 229 // empty values are omitted from API requests. However, any non-pointer, 230 // non-interface field appearing in ForceSendFields will be sent to the 231 // server regardless of whether the field is empty or not. This may be 232 // used to include empty fields in Patch requests. 233 ForceSendFields []string `json:"-"` 234 235 // NullFields is a list of field names (e.g. "CommercialName") to 236 // include in API requests with the JSON null value. By default, fields 237 // with empty values are omitted from API requests. However, any field 238 // with an empty value appearing in NullFields will be sent to the 239 // server as null. It is an error if a field in this list has a 240 // non-empty value. This may be used to include null fields in Patch 241 // requests. 242 NullFields []string `json:"-"` 243 } 244 245 func (s *BagDescriptor) MarshalJSON() ([]byte, error) { 246 type NoMethod BagDescriptor 247 raw := NoMethod(*s) 248 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 249 } 250 251 // CarrierData: Information about a carrier (ie. an airline, bus line, 252 // railroad, etc) that might be useful to display to an end-user. 253 type CarrierData struct { 254 // Code: The IATA designator of a carrier (airline, etc). For example, 255 // for American Airlines, the code is AA. 256 Code string `json:"code,omitempty"` 257 258 // Kind: Identifies this as a kind of carrier (ie. an airline, bus line, 259 // railroad, etc). Value: the fixed string qpxexpress#carrierData. 260 Kind string `json:"kind,omitempty"` 261 262 // Name: The long, full name of a carrier. For example: American 263 // Airlines. 264 Name string `json:"name,omitempty"` 265 266 // ForceSendFields is a list of field names (e.g. "Code") to 267 // unconditionally include in API requests. By default, fields with 268 // empty values are omitted from API requests. However, any non-pointer, 269 // non-interface field appearing in ForceSendFields will be sent to the 270 // server regardless of whether the field is empty or not. This may be 271 // used to include empty fields in Patch requests. 272 ForceSendFields []string `json:"-"` 273 274 // NullFields is a list of field names (e.g. "Code") to include in API 275 // requests with the JSON null value. By default, fields with empty 276 // values are omitted from API requests. However, any field with an 277 // empty value appearing in NullFields will be sent to the server as 278 // null. It is an error if a field in this list has a non-empty value. 279 // This may be used to include null fields in Patch requests. 280 NullFields []string `json:"-"` 281 } 282 283 func (s *CarrierData) MarshalJSON() ([]byte, error) { 284 type NoMethod CarrierData 285 raw := NoMethod(*s) 286 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 287 } 288 289 // CityData: Information about a city that might be useful to an 290 // end-user; typically the city of an airport. 291 type CityData struct { 292 // Code: The IATA character ID of a city. For example, for Boston this 293 // is BOS. 294 Code string `json:"code,omitempty"` 295 296 // Country: The two-character country code of the country the city is 297 // located in. For example, US for the United States of America. 298 Country string `json:"country,omitempty"` 299 300 // Kind: Identifies this as a city, typically with one or more airports. 301 // Value: the fixed string qpxexpress#cityData. 302 Kind string `json:"kind,omitempty"` 303 304 // Name: The full name of a city. An example would be: New York. 305 Name string `json:"name,omitempty"` 306 307 // ForceSendFields is a list of field names (e.g. "Code") to 308 // unconditionally include in API requests. By default, fields with 309 // empty values are omitted from API requests. However, any non-pointer, 310 // non-interface field appearing in ForceSendFields will be sent to the 311 // server regardless of whether the field is empty or not. This may be 312 // used to include empty fields in Patch requests. 313 ForceSendFields []string `json:"-"` 314 315 // NullFields is a list of field names (e.g. "Code") to include in API 316 // requests with the JSON null value. By default, fields with empty 317 // values are omitted from API requests. However, any field with an 318 // empty value appearing in NullFields will be sent to the server as 319 // null. It is an error if a field in this list has a non-empty value. 320 // This may be used to include null fields in Patch requests. 321 NullFields []string `json:"-"` 322 } 323 324 func (s *CityData) MarshalJSON() ([]byte, error) { 325 type NoMethod CityData 326 raw := NoMethod(*s) 327 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 328 } 329 330 // Data: Detailed information about components found in the solutions of 331 // this response, including a trip's airport, city, taxes, airline, and 332 // aircraft. 333 type Data struct { 334 // Aircraft: The aircraft that is flying between an origin and 335 // destination. 336 Aircraft []*AircraftData `json:"aircraft,omitempty"` 337 338 // Airport: The airport of an origin or destination. 339 Airport []*AirportData `json:"airport,omitempty"` 340 341 // Carrier: The airline carrier of the aircraft flying between an origin 342 // and destination. Allowed values are IATA carrier codes. 343 Carrier []*CarrierData `json:"carrier,omitempty"` 344 345 // City: The city that is either the origin or destination of part of a 346 // trip. 347 City []*CityData `json:"city,omitempty"` 348 349 // Kind: Identifies this as QPX Express response resource, including a 350 // trip's airport, city, taxes, airline, and aircraft. Value: the fixed 351 // string qpxexpress#data. 352 Kind string `json:"kind,omitempty"` 353 354 // Tax: The taxes due for flying between an origin and a destination. 355 Tax []*TaxData `json:"tax,omitempty"` 356 357 // ForceSendFields is a list of field names (e.g. "Aircraft") to 358 // unconditionally include in API requests. By default, fields with 359 // empty values are omitted from API requests. However, any non-pointer, 360 // non-interface field appearing in ForceSendFields will be sent to the 361 // server regardless of whether the field is empty or not. This may be 362 // used to include empty fields in Patch requests. 363 ForceSendFields []string `json:"-"` 364 365 // NullFields is a list of field names (e.g. "Aircraft") to include in 366 // API requests with the JSON null value. By default, fields with empty 367 // values are omitted from API requests. However, any field with an 368 // empty value appearing in NullFields will be sent to the server as 369 // null. It is an error if a field in this list has a non-empty value. 370 // This may be used to include null fields in Patch requests. 371 NullFields []string `json:"-"` 372 } 373 374 func (s *Data) MarshalJSON() ([]byte, error) { 375 type NoMethod Data 376 raw := NoMethod(*s) 377 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 378 } 379 380 // FareInfo: Complete information about a fare used in the solution to a 381 // low-fare search query. In the airline industry a fare is a price an 382 // airline charges for one-way travel between two points. A fare 383 // typically contains a carrier code, two city codes, a price, and a 384 // fare basis. (A fare basis is a one-to-eight character alphanumeric 385 // code used to identify a fare.) 386 type FareInfo struct { 387 BasisCode string `json:"basisCode,omitempty"` 388 389 // Carrier: The carrier of the aircraft or other vehicle commuting 390 // between two points. 391 Carrier string `json:"carrier,omitempty"` 392 393 // Destination: The city code of the city the trip ends at. 394 Destination string `json:"destination,omitempty"` 395 396 // Id: A unique identifier of the fare. 397 Id string `json:"id,omitempty"` 398 399 // Kind: Identifies this as a fare object. Value: the fixed string 400 // qpxexpress#fareInfo. 401 Kind string `json:"kind,omitempty"` 402 403 // Origin: The city code of the city the trip begins at. 404 Origin string `json:"origin,omitempty"` 405 406 // Private: Whether this is a private fare, for example one offered only 407 // to select customers rather than the general public. 408 Private bool `json:"private,omitempty"` 409 410 // ForceSendFields is a list of field names (e.g. "BasisCode") to 411 // unconditionally include in API requests. By default, fields with 412 // empty values are omitted from API requests. However, any non-pointer, 413 // non-interface field appearing in ForceSendFields will be sent to the 414 // server regardless of whether the field is empty or not. This may be 415 // used to include empty fields in Patch requests. 416 ForceSendFields []string `json:"-"` 417 418 // NullFields is a list of field names (e.g. "BasisCode") to include in 419 // API requests with the JSON null value. By default, fields with empty 420 // values are omitted from API requests. However, any field with an 421 // empty value appearing in NullFields will be sent to the server as 422 // null. It is an error if a field in this list has a non-empty value. 423 // This may be used to include null fields in Patch requests. 424 NullFields []string `json:"-"` 425 } 426 427 func (s *FareInfo) MarshalJSON() ([]byte, error) { 428 type NoMethod FareInfo 429 raw := NoMethod(*s) 430 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 431 } 432 433 // FlightInfo: A flight is a sequence of legs with the same airline 434 // carrier and flight number. (A leg is the smallest unit of travel, in 435 // the case of a flight a takeoff immediately followed by a landing at 436 // two set points on a particular carrier with a particular flight 437 // number.) The naive view is that a flight is scheduled travel of an 438 // aircraft between two points, with possibly intermediate stops, but 439 // carriers will frequently list flights that require a change of 440 // aircraft between legs. 441 type FlightInfo struct { 442 Carrier string `json:"carrier,omitempty"` 443 444 // Number: The flight number. 445 Number string `json:"number,omitempty"` 446 447 // ForceSendFields is a list of field names (e.g. "Carrier") to 448 // unconditionally include in API requests. By default, fields with 449 // empty values are omitted from API requests. However, any non-pointer, 450 // non-interface field appearing in ForceSendFields will be sent to the 451 // server regardless of whether the field is empty or not. This may be 452 // used to include empty fields in Patch requests. 453 ForceSendFields []string `json:"-"` 454 455 // NullFields is a list of field names (e.g. "Carrier") to include in 456 // API requests with the JSON null value. By default, fields with empty 457 // values are omitted from API requests. However, any field with an 458 // empty value appearing in NullFields will be sent to the server as 459 // null. It is an error if a field in this list has a non-empty value. 460 // This may be used to include null fields in Patch requests. 461 NullFields []string `json:"-"` 462 } 463 464 func (s *FlightInfo) MarshalJSON() ([]byte, error) { 465 type NoMethod FlightInfo 466 raw := NoMethod(*s) 467 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 468 } 469 470 // FreeBaggageAllowance: Information about free baggage allowed on one 471 // segment of a trip. 472 type FreeBaggageAllowance struct { 473 // BagDescriptor: A representation of a type of bag, such as an ATPCo 474 // subcode, Commercial Name, or other description. 475 BagDescriptor []*BagDescriptor `json:"bagDescriptor,omitempty"` 476 477 // Kilos: The maximum number of kilos all the free baggage together may 478 // weigh. 479 Kilos int64 `json:"kilos,omitempty"` 480 481 // KilosPerPiece: The maximum number of kilos any one piece of baggage 482 // may weigh. 483 KilosPerPiece int64 `json:"kilosPerPiece,omitempty"` 484 485 // Kind: Identifies this as free baggage object, allowed on one segment 486 // of a trip. Value: the fixed string qpxexpress#freeBaggageAllowance. 487 Kind string `json:"kind,omitempty"` 488 489 // Pieces: The number of free pieces of baggage allowed. 490 Pieces int64 `json:"pieces,omitempty"` 491 492 // Pounds: The number of pounds of free baggage allowed. 493 Pounds int64 `json:"pounds,omitempty"` 494 495 // ForceSendFields is a list of field names (e.g. "BagDescriptor") to 496 // unconditionally include in API requests. By default, fields with 497 // empty values are omitted from API requests. However, any non-pointer, 498 // non-interface field appearing in ForceSendFields will be sent to the 499 // server regardless of whether the field is empty or not. This may be 500 // used to include empty fields in Patch requests. 501 ForceSendFields []string `json:"-"` 502 503 // NullFields is a list of field names (e.g. "BagDescriptor") to include 504 // in API requests with the JSON null value. By default, fields with 505 // empty values are omitted from API requests. However, any field with 506 // an empty value appearing in NullFields will be sent to the server as 507 // null. It is an error if a field in this list has a non-empty value. 508 // This may be used to include null fields in Patch requests. 509 NullFields []string `json:"-"` 510 } 511 512 func (s *FreeBaggageAllowance) MarshalJSON() ([]byte, error) { 513 type NoMethod FreeBaggageAllowance 514 raw := NoMethod(*s) 515 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 516 } 517 518 // LegInfo: Information about a leg. (A leg is the smallest unit of 519 // travel, in the case of a flight a takeoff immediately followed by a 520 // landing at two set points on a particular carrier with a particular 521 // flight number.) 522 type LegInfo struct { 523 // Aircraft: The aircraft (or bus, ferry, railcar, etc) travelling 524 // between the two points of this leg. 525 Aircraft string `json:"aircraft,omitempty"` 526 527 // ArrivalTime: The scheduled time of arrival at the destination of the 528 // leg, local to the point of arrival. 529 ArrivalTime string `json:"arrivalTime,omitempty"` 530 531 // ChangePlane: Whether you have to change planes following this leg. 532 // Only applies to the next leg. 533 ChangePlane bool `json:"changePlane,omitempty"` 534 535 // ConnectionDuration: Duration of a connection following this leg, in 536 // minutes. 537 ConnectionDuration int64 `json:"connectionDuration,omitempty"` 538 539 // DepartureTime: The scheduled departure time of the leg, local to the 540 // point of departure. 541 DepartureTime string `json:"departureTime,omitempty"` 542 543 // Destination: The leg destination as a city and airport. 544 Destination string `json:"destination,omitempty"` 545 546 // DestinationTerminal: The terminal the flight is scheduled to arrive 547 // at. 548 DestinationTerminal string `json:"destinationTerminal,omitempty"` 549 550 // Duration: The scheduled travelling time from the origin to the 551 // destination. 552 Duration int64 `json:"duration,omitempty"` 553 554 // Id: An identifier that uniquely identifies this leg in the solution. 555 Id string `json:"id,omitempty"` 556 557 // Kind: Identifies this as a leg object. A leg is the smallest unit of 558 // travel, in the case of a flight a takeoff immediately followed by a 559 // landing at two set points on a particular carrier with a particular 560 // flight number. Value: the fixed string qpxexpress#legInfo. 561 Kind string `json:"kind,omitempty"` 562 563 // Meal: A simple, general description of the meal(s) served on the 564 // flight, for example: "Hot meal". 565 Meal string `json:"meal,omitempty"` 566 567 // Mileage: The number of miles in this leg. 568 Mileage int64 `json:"mileage,omitempty"` 569 570 // OnTimePerformance: In percent, the published on time performance on 571 // this leg. 572 OnTimePerformance int64 `json:"onTimePerformance,omitempty"` 573 574 // OperatingDisclosure: Department of Transportation disclosure 575 // information on the actual operator of a flight in a code share. (A 576 // code share refers to a marketing agreement between two carriers, 577 // where one carrier will list in its schedules (and take bookings for) 578 // flights that are actually operated by another carrier.) 579 OperatingDisclosure string `json:"operatingDisclosure,omitempty"` 580 581 // Origin: The leg origin as a city and airport. 582 Origin string `json:"origin,omitempty"` 583 584 // OriginTerminal: The terminal the flight is scheduled to depart from. 585 OriginTerminal string `json:"originTerminal,omitempty"` 586 587 // Secure: Whether passenger information must be furnished to the United 588 // States Transportation Security Administration (TSA) prior to 589 // departure. 590 Secure bool `json:"secure,omitempty"` 591 592 // ForceSendFields is a list of field names (e.g. "Aircraft") to 593 // unconditionally include in API requests. By default, fields with 594 // empty values are omitted from API requests. However, any non-pointer, 595 // non-interface field appearing in ForceSendFields will be sent to the 596 // server regardless of whether the field is empty or not. This may be 597 // used to include empty fields in Patch requests. 598 ForceSendFields []string `json:"-"` 599 600 // NullFields is a list of field names (e.g. "Aircraft") to include in 601 // API requests with the JSON null value. By default, fields with empty 602 // values are omitted from API requests. However, any field with an 603 // empty value appearing in NullFields will be sent to the server as 604 // null. It is an error if a field in this list has a non-empty value. 605 // This may be used to include null fields in Patch requests. 606 NullFields []string `json:"-"` 607 } 608 609 func (s *LegInfo) MarshalJSON() ([]byte, error) { 610 type NoMethod LegInfo 611 raw := NoMethod(*s) 612 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 613 } 614 615 // PassengerCounts: The number and type of passengers. Unfortunately the 616 // definition of an infant, child, adult, and senior citizen varies 617 // across carriers and reservation systems. 618 type PassengerCounts struct { 619 // AdultCount: The number of passengers that are adults. 620 AdultCount int64 `json:"adultCount,omitempty"` 621 622 // ChildCount: The number of passengers that are children. 623 ChildCount int64 `json:"childCount,omitempty"` 624 625 // InfantInLapCount: The number of passengers that are infants 626 // travelling in the lap of an adult. 627 InfantInLapCount int64 `json:"infantInLapCount,omitempty"` 628 629 // InfantInSeatCount: The number of passengers that are infants each 630 // assigned a seat. 631 InfantInSeatCount int64 `json:"infantInSeatCount,omitempty"` 632 633 // Kind: Identifies this as a passenger count object, representing the 634 // number of passengers. Value: the fixed string 635 // qpxexpress#passengerCounts. 636 Kind string `json:"kind,omitempty"` 637 638 // SeniorCount: The number of passengers that are senior citizens. 639 SeniorCount int64 `json:"seniorCount,omitempty"` 640 641 // ForceSendFields is a list of field names (e.g. "AdultCount") to 642 // unconditionally include in API requests. By default, fields with 643 // empty values are omitted from API requests. However, any non-pointer, 644 // non-interface field appearing in ForceSendFields will be sent to the 645 // server regardless of whether the field is empty or not. This may be 646 // used to include empty fields in Patch requests. 647 ForceSendFields []string `json:"-"` 648 649 // NullFields is a list of field names (e.g. "AdultCount") to include in 650 // API requests with the JSON null value. By default, fields with empty 651 // values are omitted from API requests. However, any field with an 652 // empty value appearing in NullFields will be sent to the server as 653 // null. It is an error if a field in this list has a non-empty value. 654 // This may be used to include null fields in Patch requests. 655 NullFields []string `json:"-"` 656 } 657 658 func (s *PassengerCounts) MarshalJSON() ([]byte, error) { 659 type NoMethod PassengerCounts 660 raw := NoMethod(*s) 661 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 662 } 663 664 // PricingInfo: The price of one or more travel segments. The currency 665 // used to purchase tickets is usually determined by the sale/ticketing 666 // city or the sale/ticketing country, unless none are specified, in 667 // which case it defaults to that of the journey origin country. 668 type PricingInfo struct { 669 // BaseFareTotal: The total fare in the base fare currency (the currency 670 // of the country of origin). This element is only present when the 671 // sales currency and the currency of the country of commencement are 672 // different. 673 BaseFareTotal string `json:"baseFareTotal,omitempty"` 674 675 // Fare: The fare used to price one or more segments. 676 Fare []*FareInfo `json:"fare,omitempty"` 677 678 // FareCalculation: The horizontal fare calculation. This is a field on 679 // a ticket that displays all of the relevant items that go into the 680 // calculation of the fare. 681 FareCalculation string `json:"fareCalculation,omitempty"` 682 683 // Kind: Identifies this as a pricing object, representing the price of 684 // one or more travel segments. Value: the fixed string 685 // qpxexpress#pricingInfo. 686 Kind string `json:"kind,omitempty"` 687 688 // LatestTicketingTime: The latest ticketing time for this pricing 689 // assuming the reservation occurs at ticketing time and there is no 690 // change in fares/rules. The time is local to the point of sale (POS). 691 LatestTicketingTime string `json:"latestTicketingTime,omitempty"` 692 693 // Passengers: The number of passengers to which this price applies. 694 Passengers *PassengerCounts `json:"passengers,omitempty"` 695 696 // Ptc: The passenger type code for this pricing. An alphanumeric code 697 // used by a carrier to restrict fares to certain categories of 698 // passenger. For instance, a fare might be valid only for senior 699 // citizens. 700 Ptc string `json:"ptc,omitempty"` 701 702 // Refundable: Whether the fares on this pricing are refundable. 703 Refundable bool `json:"refundable,omitempty"` 704 705 // SaleFareTotal: The total fare in the sale or equivalent currency. 706 SaleFareTotal string `json:"saleFareTotal,omitempty"` 707 708 // SaleTaxTotal: The taxes in the sale or equivalent currency. 709 SaleTaxTotal string `json:"saleTaxTotal,omitempty"` 710 711 // SaleTotal: Total per-passenger price (fare and tax) in the sale or 712 // equivalent currency. 713 SaleTotal string `json:"saleTotal,omitempty"` 714 715 // SegmentPricing: The per-segment price and baggage information. 716 SegmentPricing []*SegmentPricing `json:"segmentPricing,omitempty"` 717 718 // Tax: The taxes used to calculate the tax total per ticket. 719 Tax []*TaxInfo `json:"tax,omitempty"` 720 721 // ForceSendFields is a list of field names (e.g. "BaseFareTotal") to 722 // unconditionally include in API requests. By default, fields with 723 // empty values are omitted from API requests. However, any non-pointer, 724 // non-interface field appearing in ForceSendFields will be sent to the 725 // server regardless of whether the field is empty or not. This may be 726 // used to include empty fields in Patch requests. 727 ForceSendFields []string `json:"-"` 728 729 // NullFields is a list of field names (e.g. "BaseFareTotal") to include 730 // in API requests with the JSON null value. By default, fields with 731 // empty values are omitted from API requests. However, any field with 732 // an empty value appearing in NullFields will be sent to the server as 733 // null. It is an error if a field in this list has a non-empty value. 734 // This may be used to include null fields in Patch requests. 735 NullFields []string `json:"-"` 736 } 737 738 func (s *PricingInfo) MarshalJSON() ([]byte, error) { 739 type NoMethod PricingInfo 740 raw := NoMethod(*s) 741 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 742 } 743 744 // SegmentInfo: Details of a segment of a flight; a segment is one or 745 // more consecutive legs on the same flight. For example a hypothetical 746 // flight ZZ001, from DFW to OGG, would have one segment with two legs: 747 // DFW to HNL (leg 1), HNL to OGG (leg 2), and DFW to OGG (legs 1 and 748 // 2). 749 type SegmentInfo struct { 750 // BookingCode: The booking code or class for this segment. 751 BookingCode string `json:"bookingCode,omitempty"` 752 753 // BookingCodeCount: The number of seats available in this booking code 754 // on this segment. 755 BookingCodeCount int64 `json:"bookingCodeCount,omitempty"` 756 757 // Cabin: The cabin booked for this segment. 758 Cabin string `json:"cabin,omitempty"` 759 760 // ConnectionDuration: In minutes, the duration of the connection 761 // following this segment. 762 ConnectionDuration int64 `json:"connectionDuration,omitempty"` 763 764 // Duration: The duration of the flight segment in minutes. 765 Duration int64 `json:"duration,omitempty"` 766 767 // Flight: The flight this is a segment of. 768 Flight *FlightInfo `json:"flight,omitempty"` 769 770 // Id: An id uniquely identifying the segment in the solution. 771 Id string `json:"id,omitempty"` 772 773 // Kind: Identifies this as a segment object. A segment is one or more 774 // consecutive legs on the same flight. For example a hypothetical 775 // flight ZZ001, from DFW to OGG, could have one segment with two legs: 776 // DFW to HNL (leg 1), HNL to OGG (leg 2). Value: the fixed string 777 // qpxexpress#segmentInfo. 778 Kind string `json:"kind,omitempty"` 779 780 // Leg: The legs composing this segment. 781 Leg []*LegInfo `json:"leg,omitempty"` 782 783 // MarriedSegmentGroup: The solution-based index of a segment in a 784 // married segment group. Married segments can only be booked together. 785 // For example, an airline might report a certain booking code as sold 786 // out from Boston to Pittsburgh, but as available as part of two 787 // married segments Boston to Chicago connecting through Pittsburgh. For 788 // example content of this field, consider the round-trip flight ZZ1 789 // PHX-PHL ZZ2 PHL-CLT ZZ3 CLT-PHX. This has three segments, with the 790 // two outbound ones (ZZ1 ZZ2) married. In this case, the two outbound 791 // segments belong to married segment group 0, and the return segment 792 // belongs to married segment group 1. 793 MarriedSegmentGroup string `json:"marriedSegmentGroup,omitempty"` 794 795 // SubjectToGovernmentApproval: Whether the operation of this segment 796 // remains subject to government approval. 797 SubjectToGovernmentApproval bool `json:"subjectToGovernmentApproval,omitempty"` 798 799 // ForceSendFields is a list of field names (e.g. "BookingCode") to 800 // unconditionally include in API requests. By default, fields with 801 // empty values are omitted from API requests. However, any non-pointer, 802 // non-interface field appearing in ForceSendFields will be sent to the 803 // server regardless of whether the field is empty or not. This may be 804 // used to include empty fields in Patch requests. 805 ForceSendFields []string `json:"-"` 806 807 // NullFields is a list of field names (e.g. "BookingCode") to include 808 // in API requests with the JSON null value. By default, fields with 809 // empty values are omitted from API requests. However, any field with 810 // an empty value appearing in NullFields will be sent to the server as 811 // null. It is an error if a field in this list has a non-empty value. 812 // This may be used to include null fields in Patch requests. 813 NullFields []string `json:"-"` 814 } 815 816 func (s *SegmentInfo) MarshalJSON() ([]byte, error) { 817 type NoMethod SegmentInfo 818 raw := NoMethod(*s) 819 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 820 } 821 822 // SegmentPricing: The price of this segment. 823 type SegmentPricing struct { 824 // FareId: A segment identifier unique within a single solution. It is 825 // used to refer to different parts of the same solution. 826 FareId string `json:"fareId,omitempty"` 827 828 // FreeBaggageOption: Details of the free baggage allowance on this 829 // segment. 830 FreeBaggageOption []*FreeBaggageAllowance `json:"freeBaggageOption,omitempty"` 831 832 // Kind: Identifies this as a segment pricing object, representing the 833 // price of this segment. Value: the fixed string 834 // qpxexpress#segmentPricing. 835 Kind string `json:"kind,omitempty"` 836 837 // SegmentId: Unique identifier in the response of this segment. 838 SegmentId string `json:"segmentId,omitempty"` 839 840 // ForceSendFields is a list of field names (e.g. "FareId") to 841 // unconditionally include in API requests. By default, fields with 842 // empty values are omitted from API requests. However, any non-pointer, 843 // non-interface field appearing in ForceSendFields will be sent to the 844 // server regardless of whether the field is empty or not. This may be 845 // used to include empty fields in Patch requests. 846 ForceSendFields []string `json:"-"` 847 848 // NullFields is a list of field names (e.g. "FareId") to include in API 849 // requests with the JSON null value. By default, fields with empty 850 // values are omitted from API requests. However, any field with an 851 // empty value appearing in NullFields will be sent to the server as 852 // null. It is an error if a field in this list has a non-empty value. 853 // This may be used to include null fields in Patch requests. 854 NullFields []string `json:"-"` 855 } 856 857 func (s *SegmentPricing) MarshalJSON() ([]byte, error) { 858 type NoMethod SegmentPricing 859 raw := NoMethod(*s) 860 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 861 } 862 863 // SliceInfo: Information about a slice. A slice represents a 864 // traveller's intent, the portion of a low-fare search corresponding to 865 // a traveler's request to get between two points. One-way journeys are 866 // generally expressed using 1 slice, round-trips using 2. For example, 867 // if a traveler specifies the following trip in a user interface: 868 // | Origin | Destination | Departure Date | | BOS | LAX | March 10, 869 // 2007 | | LAX | SYD | March 17, 2007 | | SYD | BOS | March 22, 2007 870 // | 871 // then this is a three slice trip. 872 type SliceInfo struct { 873 // Duration: The duration of the slice in minutes. 874 Duration int64 `json:"duration,omitempty"` 875 876 // Kind: Identifies this as a slice object. A slice represents a 877 // traveller's intent, the portion of a low-fare search corresponding to 878 // a traveler's request to get between two points. One-way journeys are 879 // generally expressed using 1 slice, round-trips using 2. Value: the 880 // fixed string qpxexpress#sliceInfo. 881 Kind string `json:"kind,omitempty"` 882 883 // Segment: The segment(s) constituting the slice. 884 Segment []*SegmentInfo `json:"segment,omitempty"` 885 886 // ForceSendFields is a list of field names (e.g. "Duration") to 887 // unconditionally include in API requests. By default, fields with 888 // empty values are omitted from API requests. However, any non-pointer, 889 // non-interface field appearing in ForceSendFields will be sent to the 890 // server regardless of whether the field is empty or not. This may be 891 // used to include empty fields in Patch requests. 892 ForceSendFields []string `json:"-"` 893 894 // NullFields is a list of field names (e.g. "Duration") to include in 895 // API requests with the JSON null value. By default, fields with empty 896 // values are omitted from API requests. However, any field with an 897 // empty value appearing in NullFields will be sent to the server as 898 // null. It is an error if a field in this list has a non-empty value. 899 // This may be used to include null fields in Patch requests. 900 NullFields []string `json:"-"` 901 } 902 903 func (s *SliceInfo) MarshalJSON() ([]byte, error) { 904 type NoMethod SliceInfo 905 raw := NoMethod(*s) 906 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 907 } 908 909 // SliceInput: Criteria a desired slice must satisfy. 910 type SliceInput struct { 911 // Alliance: Slices with only the carriers in this alliance should be 912 // returned; do not use this field with permittedCarrier. Allowed values 913 // are ONEWORLD, SKYTEAM, and STAR. 914 Alliance string `json:"alliance,omitempty"` 915 916 // Date: Departure date in YYYY-MM-DD format. 917 Date string `json:"date,omitempty"` 918 919 // Destination: Airport or city IATA designator of the destination. 920 Destination string `json:"destination,omitempty"` 921 922 // Kind: Identifies this as a slice input object, representing the 923 // criteria a desired slice must satisfy. Value: the fixed string 924 // qpxexpress#sliceInput. 925 Kind string `json:"kind,omitempty"` 926 927 // MaxConnectionDuration: The longest connection between two legs, in 928 // minutes, you are willing to accept. 929 MaxConnectionDuration int64 `json:"maxConnectionDuration,omitempty"` 930 931 // MaxStops: The maximum number of stops you are willing to accept in 932 // this slice. 933 MaxStops int64 `json:"maxStops,omitempty"` 934 935 // Origin: Airport or city IATA designator of the origin. 936 Origin string `json:"origin,omitempty"` 937 938 // PermittedCarrier: A list of 2-letter IATA airline designators. Slices 939 // with only these carriers should be returned. 940 PermittedCarrier []string `json:"permittedCarrier,omitempty"` 941 942 // PermittedDepartureTime: Slices must depart in this time of day range, 943 // local to the point of departure. 944 PermittedDepartureTime *TimeOfDayRange `json:"permittedDepartureTime,omitempty"` 945 946 // PreferredCabin: Prefer solutions that book in this cabin for this 947 // slice. Allowed values are COACH, PREMIUM_COACH, BUSINESS, and FIRST. 948 PreferredCabin string `json:"preferredCabin,omitempty"` 949 950 // ProhibitedCarrier: A list of 2-letter IATA airline designators. 951 // Exclude slices that use these carriers. 952 ProhibitedCarrier []string `json:"prohibitedCarrier,omitempty"` 953 954 // ForceSendFields is a list of field names (e.g. "Alliance") to 955 // unconditionally include in API requests. By default, fields with 956 // empty values are omitted from API requests. However, any non-pointer, 957 // non-interface field appearing in ForceSendFields will be sent to the 958 // server regardless of whether the field is empty or not. This may be 959 // used to include empty fields in Patch requests. 960 ForceSendFields []string `json:"-"` 961 962 // NullFields is a list of field names (e.g. "Alliance") to include in 963 // API requests with the JSON null value. By default, fields with empty 964 // values are omitted from API requests. However, any field with an 965 // empty value appearing in NullFields will be sent to the server as 966 // null. It is an error if a field in this list has a non-empty value. 967 // This may be used to include null fields in Patch requests. 968 NullFields []string `json:"-"` 969 } 970 971 func (s *SliceInput) MarshalJSON() ([]byte, error) { 972 type NoMethod SliceInput 973 raw := NoMethod(*s) 974 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 975 } 976 977 // TaxData: Tax data. 978 type TaxData struct { 979 // Id: An identifier uniquely identifying a tax in a response. 980 Id string `json:"id,omitempty"` 981 982 // Kind: Identifies this as a tax data object, representing some tax. 983 // Value: the fixed string qpxexpress#taxData. 984 Kind string `json:"kind,omitempty"` 985 986 // Name: The name of a tax. 987 Name string `json:"name,omitempty"` 988 989 // ForceSendFields is a list of field names (e.g. "Id") to 990 // unconditionally include in API requests. By default, fields with 991 // empty values are omitted from API requests. However, any non-pointer, 992 // non-interface field appearing in ForceSendFields will be sent to the 993 // server regardless of whether the field is empty or not. This may be 994 // used to include empty fields in Patch requests. 995 ForceSendFields []string `json:"-"` 996 997 // NullFields is a list of field names (e.g. "Id") to include in API 998 // requests with the JSON null value. By default, fields with empty 999 // values are omitted from API requests. However, any field with an 1000 // empty value appearing in NullFields will be sent to the server as 1001 // null. It is an error if a field in this list has a non-empty value. 1002 // This may be used to include null fields in Patch requests. 1003 NullFields []string `json:"-"` 1004 } 1005 1006 func (s *TaxData) MarshalJSON() ([]byte, error) { 1007 type NoMethod TaxData 1008 raw := NoMethod(*s) 1009 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1010 } 1011 1012 // TaxInfo: Tax information. 1013 type TaxInfo struct { 1014 // ChargeType: Whether this is a government charge or a carrier 1015 // surcharge. 1016 ChargeType string `json:"chargeType,omitempty"` 1017 1018 // Code: The code to enter in the ticket's tax box. 1019 Code string `json:"code,omitempty"` 1020 1021 // Country: For government charges, the country levying the charge. 1022 Country string `json:"country,omitempty"` 1023 1024 // Id: Identifier uniquely identifying this tax in a response. Not 1025 // present for unnamed carrier surcharges. 1026 Id string `json:"id,omitempty"` 1027 1028 // Kind: Identifies this as a tax information object. Value: the fixed 1029 // string qpxexpress#taxInfo. 1030 Kind string `json:"kind,omitempty"` 1031 1032 // SalePrice: The price of the tax in the sales or equivalent currency. 1033 SalePrice string `json:"salePrice,omitempty"` 1034 1035 // ForceSendFields is a list of field names (e.g. "ChargeType") to 1036 // unconditionally include in API requests. By default, fields with 1037 // empty values are omitted from API requests. However, any non-pointer, 1038 // non-interface field appearing in ForceSendFields will be sent to the 1039 // server regardless of whether the field is empty or not. This may be 1040 // used to include empty fields in Patch requests. 1041 ForceSendFields []string `json:"-"` 1042 1043 // NullFields is a list of field names (e.g. "ChargeType") to include in 1044 // API requests with the JSON null value. By default, fields with empty 1045 // values are omitted from API requests. However, any field with an 1046 // empty value appearing in NullFields will be sent to the server as 1047 // null. It is an error if a field in this list has a non-empty value. 1048 // This may be used to include null fields in Patch requests. 1049 NullFields []string `json:"-"` 1050 } 1051 1052 func (s *TaxInfo) MarshalJSON() ([]byte, error) { 1053 type NoMethod TaxInfo 1054 raw := NoMethod(*s) 1055 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1056 } 1057 1058 // TimeOfDayRange: Two times in a single day defining a time range. 1059 type TimeOfDayRange struct { 1060 // EarliestTime: The earliest time of day in HH:MM format. 1061 EarliestTime string `json:"earliestTime,omitempty"` 1062 1063 // Kind: Identifies this as a time of day range object, representing two 1064 // times in a single day defining a time range. Value: the fixed string 1065 // qpxexpress#timeOfDayRange. 1066 Kind string `json:"kind,omitempty"` 1067 1068 // LatestTime: The latest time of day in HH:MM format. 1069 LatestTime string `json:"latestTime,omitempty"` 1070 1071 // ForceSendFields is a list of field names (e.g. "EarliestTime") to 1072 // unconditionally include in API requests. By default, fields with 1073 // empty values are omitted from API requests. However, any non-pointer, 1074 // non-interface field appearing in ForceSendFields will be sent to the 1075 // server regardless of whether the field is empty or not. This may be 1076 // used to include empty fields in Patch requests. 1077 ForceSendFields []string `json:"-"` 1078 1079 // NullFields is a list of field names (e.g. "EarliestTime") to include 1080 // in API requests with the JSON null value. By default, fields with 1081 // empty values are omitted from API requests. However, any field with 1082 // an empty value appearing in NullFields will be sent to the server as 1083 // null. It is an error if a field in this list has a non-empty value. 1084 // This may be used to include null fields in Patch requests. 1085 NullFields []string `json:"-"` 1086 } 1087 1088 func (s *TimeOfDayRange) MarshalJSON() ([]byte, error) { 1089 type NoMethod TimeOfDayRange 1090 raw := NoMethod(*s) 1091 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1092 } 1093 1094 // TripOption: Trip information. 1095 type TripOption struct { 1096 // Id: Identifier uniquely identifying this trip in a response. 1097 Id string `json:"id,omitempty"` 1098 1099 // Kind: Identifies this as a trip information object. Value: the fixed 1100 // string qpxexpress#tripOption. 1101 Kind string `json:"kind,omitempty"` 1102 1103 // Pricing: Per passenger pricing information. 1104 Pricing []*PricingInfo `json:"pricing,omitempty"` 1105 1106 // SaleTotal: The total price for all passengers on the trip, in the 1107 // form of a currency followed by an amount, e.g. USD253.35. 1108 SaleTotal string `json:"saleTotal,omitempty"` 1109 1110 // Slice: The slices that make up this trip's itinerary. 1111 Slice []*SliceInfo `json:"slice,omitempty"` 1112 1113 // ForceSendFields is a list of field names (e.g. "Id") to 1114 // unconditionally include in API requests. By default, fields with 1115 // empty values are omitted from API requests. However, any non-pointer, 1116 // non-interface field appearing in ForceSendFields will be sent to the 1117 // server regardless of whether the field is empty or not. This may be 1118 // used to include empty fields in Patch requests. 1119 ForceSendFields []string `json:"-"` 1120 1121 // NullFields is a list of field names (e.g. "Id") to include in API 1122 // requests with the JSON null value. By default, fields with empty 1123 // values are omitted from API requests. However, any field with an 1124 // empty value appearing in NullFields will be sent to the server as 1125 // null. It is an error if a field in this list has a non-empty value. 1126 // This may be used to include null fields in Patch requests. 1127 NullFields []string `json:"-"` 1128 } 1129 1130 func (s *TripOption) MarshalJSON() ([]byte, error) { 1131 type NoMethod TripOption 1132 raw := NoMethod(*s) 1133 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1134 } 1135 1136 // TripOptionsRequest: A QPX Express search request, which will yield 1137 // one or more solutions. 1138 type TripOptionsRequest struct { 1139 // MaxPrice: Do not return solutions that cost more than this price. The 1140 // alphabetical part of the price is in ISO 4217. The format, in regex, 1141 // is [A-Z]{3}\d+(\.\d+)? Example: $102.07 1142 MaxPrice string `json:"maxPrice,omitempty"` 1143 1144 // Passengers: Counts for each passenger type in the request. 1145 Passengers *PassengerCounts `json:"passengers,omitempty"` 1146 1147 // Refundable: Return only solutions with refundable fares. 1148 Refundable bool `json:"refundable,omitempty"` 1149 1150 // SaleCountry: IATA country code representing the point of sale. This 1151 // determines the "equivalent amount paid" currency for the ticket. 1152 SaleCountry string `json:"saleCountry,omitempty"` 1153 1154 // Slice: The slices that make up the itinerary of this trip. A slice 1155 // represents a traveler's intent, the portion of a low-fare search 1156 // corresponding to a traveler's request to get between two points. 1157 // One-way journeys are generally expressed using one slice, round-trips 1158 // using two. An example of a one slice trip with three segments might 1159 // be BOS-SYD, SYD-LAX, LAX-BOS if the traveler only stopped in SYD and 1160 // LAX just long enough to change planes. 1161 Slice []*SliceInput `json:"slice,omitempty"` 1162 1163 // Solutions: The number of solutions to return, maximum 500. 1164 Solutions int64 `json:"solutions,omitempty"` 1165 1166 // TicketingCountry: IATA country code representing the point of 1167 // ticketing. 1168 TicketingCountry string `json:"ticketingCountry,omitempty"` 1169 1170 // ForceSendFields is a list of field names (e.g. "MaxPrice") to 1171 // unconditionally include in API requests. By default, fields with 1172 // empty values are omitted from API requests. However, any non-pointer, 1173 // non-interface field appearing in ForceSendFields will be sent to the 1174 // server regardless of whether the field is empty or not. This may be 1175 // used to include empty fields in Patch requests. 1176 ForceSendFields []string `json:"-"` 1177 1178 // NullFields is a list of field names (e.g. "MaxPrice") to include in 1179 // API requests with the JSON null value. By default, fields with empty 1180 // values are omitted from API requests. However, any field with an 1181 // empty value appearing in NullFields will be sent to the server as 1182 // null. It is an error if a field in this list has a non-empty value. 1183 // This may be used to include null fields in Patch requests. 1184 NullFields []string `json:"-"` 1185 } 1186 1187 func (s *TripOptionsRequest) MarshalJSON() ([]byte, error) { 1188 type NoMethod TripOptionsRequest 1189 raw := NoMethod(*s) 1190 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1191 } 1192 1193 // TripOptionsResponse: A QPX Express search response. 1194 type TripOptionsResponse struct { 1195 // Data: Informational data global to list of solutions. 1196 Data *Data `json:"data,omitempty"` 1197 1198 // Kind: Identifies this as a QPX Express trip response object, which 1199 // consists of zero or more solutions. Value: the fixed string 1200 // qpxexpress#tripOptions. 1201 Kind string `json:"kind,omitempty"` 1202 1203 // RequestId: An identifier uniquely identifying this response. 1204 RequestId string `json:"requestId,omitempty"` 1205 1206 // TripOption: A list of priced itinerary solutions to the QPX Express 1207 // query. 1208 TripOption []*TripOption `json:"tripOption,omitempty"` 1209 1210 // ForceSendFields is a list of field names (e.g. "Data") to 1211 // unconditionally include in API requests. By default, fields with 1212 // empty values are omitted from API requests. However, any non-pointer, 1213 // non-interface field appearing in ForceSendFields will be sent to the 1214 // server regardless of whether the field is empty or not. This may be 1215 // used to include empty fields in Patch requests. 1216 ForceSendFields []string `json:"-"` 1217 1218 // NullFields is a list of field names (e.g. "Data") to include in API 1219 // requests with the JSON null value. By default, fields with empty 1220 // values are omitted from API requests. However, any field with an 1221 // empty value appearing in NullFields will be sent to the server as 1222 // null. It is an error if a field in this list has a non-empty value. 1223 // This may be used to include null fields in Patch requests. 1224 NullFields []string `json:"-"` 1225 } 1226 1227 func (s *TripOptionsResponse) MarshalJSON() ([]byte, error) { 1228 type NoMethod TripOptionsResponse 1229 raw := NoMethod(*s) 1230 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1231 } 1232 1233 // TripsSearchRequest: A QPX Express search request. 1234 type TripsSearchRequest struct { 1235 // Request: A QPX Express search request. Required values are at least 1236 // one adult or senior passenger, an origin, a destination, and a date. 1237 Request *TripOptionsRequest `json:"request,omitempty"` 1238 1239 // ForceSendFields is a list of field names (e.g. "Request") to 1240 // unconditionally include in API requests. By default, fields with 1241 // empty values are omitted from API requests. However, any non-pointer, 1242 // non-interface field appearing in ForceSendFields will be sent to the 1243 // server regardless of whether the field is empty or not. This may be 1244 // used to include empty fields in Patch requests. 1245 ForceSendFields []string `json:"-"` 1246 1247 // NullFields is a list of field names (e.g. "Request") to include in 1248 // API requests with the JSON null value. By default, fields with empty 1249 // values are omitted from API requests. However, any field with an 1250 // empty value appearing in NullFields will be sent to the server as 1251 // null. It is an error if a field in this list has a non-empty value. 1252 // This may be used to include null fields in Patch requests. 1253 NullFields []string `json:"-"` 1254 } 1255 1256 func (s *TripsSearchRequest) MarshalJSON() ([]byte, error) { 1257 type NoMethod TripsSearchRequest 1258 raw := NoMethod(*s) 1259 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1260 } 1261 1262 // TripsSearchResponse: A QPX Express search response. 1263 type TripsSearchResponse struct { 1264 // Kind: Identifies this as a QPX Express API search response resource. 1265 // Value: the fixed string qpxExpress#tripsSearch. 1266 Kind string `json:"kind,omitempty"` 1267 1268 // Trips: All possible solutions to the QPX Express search request. 1269 Trips *TripOptionsResponse `json:"trips,omitempty"` 1270 1271 // ServerResponse contains the HTTP response code and headers from the 1272 // server. 1273 googleapi.ServerResponse `json:"-"` 1274 1275 // ForceSendFields is a list of field names (e.g. "Kind") to 1276 // unconditionally include in API requests. By default, fields with 1277 // empty values are omitted from API requests. However, any non-pointer, 1278 // non-interface field appearing in ForceSendFields will be sent to the 1279 // server regardless of whether the field is empty or not. This may be 1280 // used to include empty fields in Patch requests. 1281 ForceSendFields []string `json:"-"` 1282 1283 // NullFields is a list of field names (e.g. "Kind") to include in API 1284 // requests with the JSON null value. By default, fields with empty 1285 // values are omitted from API requests. However, any field with an 1286 // empty value appearing in NullFields will be sent to the server as 1287 // null. It is an error if a field in this list has a non-empty value. 1288 // This may be used to include null fields in Patch requests. 1289 NullFields []string `json:"-"` 1290 } 1291 1292 func (s *TripsSearchResponse) MarshalJSON() ([]byte, error) { 1293 type NoMethod TripsSearchResponse 1294 raw := NoMethod(*s) 1295 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1296 } 1297 1298 // method id "qpxExpress.trips.search": 1299 1300 type TripsSearchCall struct { 1301 s *Service 1302 tripssearchrequest *TripsSearchRequest 1303 urlParams_ gensupport.URLParams 1304 ctx_ context.Context 1305 header_ http.Header 1306 } 1307 1308 // Search: Returns a list of flights. 1309 func (r *TripsService) Search(tripssearchrequest *TripsSearchRequest) *TripsSearchCall { 1310 c := &TripsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} 1311 c.tripssearchrequest = tripssearchrequest 1312 return c 1313 } 1314 1315 // Fields allows partial responses to be retrieved. See 1316 // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 1317 // for more information. 1318 func (c *TripsSearchCall) Fields(s ...googleapi.Field) *TripsSearchCall { 1319 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 1320 return c 1321 } 1322 1323 // Context sets the context to be used in this call's Do method. Any 1324 // pending HTTP request will be aborted if the provided context is 1325 // canceled. 1326 func (c *TripsSearchCall) Context(ctx context.Context) *TripsSearchCall { 1327 c.ctx_ = ctx 1328 return c 1329 } 1330 1331 // Header returns an http.Header that can be modified by the caller to 1332 // add HTTP headers to the request. 1333 func (c *TripsSearchCall) Header() http.Header { 1334 if c.header_ == nil { 1335 c.header_ = make(http.Header) 1336 } 1337 return c.header_ 1338 } 1339 1340 func (c *TripsSearchCall) doRequest(alt string) (*http.Response, error) { 1341 reqHeaders := make(http.Header) 1342 reqHeaders.Set("x-goog-api-client", "gl-go/1.13.7 gdcl/20200203") 1343 for k, v := range c.header_ { 1344 reqHeaders[k] = v 1345 } 1346 reqHeaders.Set("User-Agent", c.s.userAgent()) 1347 var body io.Reader = nil 1348 body, err := googleapi.WithoutDataWrapper.JSONReader(c.tripssearchrequest) 1349 if err != nil { 1350 return nil, err 1351 } 1352 reqHeaders.Set("Content-Type", "application/json") 1353 c.urlParams_.Set("alt", alt) 1354 c.urlParams_.Set("prettyPrint", "false") 1355 urls := googleapi.ResolveRelative(c.s.BasePath, "search") 1356 urls += "?" + c.urlParams_.Encode() 1357 req, err := http.NewRequest("POST", urls, body) 1358 if err != nil { 1359 return nil, err 1360 } 1361 req.Header = reqHeaders 1362 return gensupport.SendRequest(c.ctx_, c.s.client, req) 1363 } 1364 1365 // Do executes the "qpxExpress.trips.search" call. 1366 // Exactly one of *TripsSearchResponse or error will be non-nil. Any 1367 // non-2xx status code is an error. Response headers are in either 1368 // *TripsSearchResponse.ServerResponse.Header or (if a response was 1369 // returned at all) in error.(*googleapi.Error).Header. Use 1370 // googleapi.IsNotModified to check whether the returned error was 1371 // because http.StatusNotModified was returned. 1372 func (c *TripsSearchCall) Do(opts ...googleapi.CallOption) (*TripsSearchResponse, error) { 1373 gensupport.SetOptions(c.urlParams_, opts...) 1374 res, err := c.doRequest("json") 1375 if res != nil && res.StatusCode == http.StatusNotModified { 1376 if res.Body != nil { 1377 res.Body.Close() 1378 } 1379 return nil, &googleapi.Error{ 1380 Code: res.StatusCode, 1381 Header: res.Header, 1382 } 1383 } 1384 if err != nil { 1385 return nil, err 1386 } 1387 defer googleapi.CloseBody(res) 1388 if err := googleapi.CheckResponse(res); err != nil { 1389 return nil, err 1390 } 1391 ret := &TripsSearchResponse{ 1392 ServerResponse: googleapi.ServerResponse{ 1393 Header: res.Header, 1394 HTTPStatusCode: res.StatusCode, 1395 }, 1396 } 1397 target := &ret 1398 if err := gensupport.DecodeResponse(target, res); err != nil { 1399 return nil, err 1400 } 1401 return ret, nil 1402 // { 1403 // "description": "Returns a list of flights.", 1404 // "httpMethod": "POST", 1405 // "id": "qpxExpress.trips.search", 1406 // "path": "search", 1407 // "request": { 1408 // "$ref": "TripsSearchRequest" 1409 // }, 1410 // "response": { 1411 // "$ref": "TripsSearchResponse" 1412 // } 1413 // } 1414 1415 } 1416