Completed
Push — master ( af8390...b20918 )
by Dieter
06:47
created

Client::fareMasterPricerExpertSearch()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 8
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 1
1
<?php
2
/**
3
 * amadeus-ws-client
4
 *
5
 * Copyright 2015 Amadeus Benelux NV
6
 *
7
 * Licensed under the Apache License, Version 2.0 (the "License");
8
 * you may not use this file except in compliance with the License.
9
 * You may obtain a copy of the License at
10
 *
11
 * http://www.apache.org/licenses/LICENSE-2.0
12
 *
13
 * Unless required by applicable law or agreed to in writing, software
14
 * distributed under the License is distributed on an "AS IS" BASIS,
15
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
 * See the License for the specific language governing permissions and
17
 * limitations under the License.
18
 *
19
 * @package Amadeus
20
 * @license https://opensource.org/licenses/Apache-2.0 Apache 2.0
21
 */
22
23
namespace Amadeus;
24
25
use Amadeus\Client\Base;
26
use Amadeus\Client\Exception;
27
use Amadeus\Client\Params;
28
use Amadeus\Client\RequestOptions;
29
use Amadeus\Client\Result;
30
use Amadeus\Client\Session\Handler\UnsupportedOperationException;
31
32
/**
33
 * Amadeus Web Service Client.
34
 *
35
 * TODO:
36
 * - support older versions of SoapHeader (1)
37
 *
38
 * @package Amadeus
39
 * @author Dieter Devlieghere <[email protected]>
40
 */
41
class Client extends Base
42
{
43
    /**
44
     * Amadeus SOAP header version 1
45
     */
46
    const HEADER_V1 = "1";
47
    /**
48
     * Amadeus SOAP header version 2
49
     */
50
    const HEADER_V2 = "2";
51
    /**
52
     * Amadeus SOAP header version 4
53
     */
54
    const HEADER_V4 = "4";
55
56
    /**
57
     * Version string
58
     *
59
     * @var string
60
     */
61
    const VERSION = "1.8.0-dev";
62
63
    /**
64
     * An identifier string for the library (to be used in Received From entries)
65
     *
66
     * @var string
67
     */
68
    const RECEIVED_FROM_IDENTIFIER = "amabnl-amadeus-ws-client";
69
70
    /**
71
     * @var string
72
     */
73
    protected $lastMessage;
74
75
    /**
76
     * Set the session as stateful (true) or stateless (false)
77
     *
78
     * @param bool $newStateful
79
     */
80 4
    public function setStateful($newStateful)
81
    {
82 4
        $this->sessionHandler->setStateful($newStateful);
83 4
    }
84
85
    /**
86
     * @return bool
87
     */
88 12
    public function isStateful()
89
    {
90 12
        return $this->sessionHandler->isStateful();
91
    }
92
93
    /**
94
     * Get TransactionFlowLink Consumer Id
95
     *
96
     * @return string|null
97
     */
98 4
    public function getConsumerId()
99
    {
100 4
        return $this->sessionHandler->getConsumerId();
101
    }
102
103
    /**
104
     * Set TransactionFlowLink Consumer Id
105
     *
106
     * @throws UnsupportedOperationException when used on unsupported WSAP versions
107
     * @param string $id
108
     * @return void
109
     */
110 4
    public function setConsumerId($id)
111
    {
112 4
        $this->sessionHandler->setTransactionFlowLink(true);
113 4
        $this->sessionHandler->setConsumerId($id);
114 4
    }
115
116
    /**
117
     * Get the last raw XML message that was sent out
118
     *
119
     * @return string|null
120
     */
121 4
    public function getLastRequest()
122
    {
123 4
        return $this->sessionHandler->getLastRequest($this->lastMessage);
124
    }
125
126
    /**
127
     * Get the last raw XML message that was received
128
     *
129
     * @return string|null
130
     */
131 4
    public function getLastResponse()
132
    {
133 4
        return $this->sessionHandler->getLastResponse($this->lastMessage);
134
    }
135
136
    /**
137
     * Get the request headers for the last SOAP message that was sent out
138
     *
139
     * @return string|null
140
     */
141 4
    public function getLastRequestHeaders()
142
    {
143 4
        return $this->sessionHandler->getLastRequestHeaders($this->lastMessage);
144
    }
145
146
    /**
147
     * Get the response headers for the last SOAP message that was received
148
     *
149
     * @return string|null
150
     */
151 4
    public function getLastResponseHeaders()
152
    {
153 4
        return $this->sessionHandler->getLastResponseHeaders($this->lastMessage);
154
    }
155
156
    /**
157
     * Get session information for authenticated session
158
     *
159
     * - sessionId
160
     * - sequenceNr
161
     * - securityToken
162
     *
163
     * @return array|null
164
     */
165 4
    public function getSessionData()
166
    {
167 4
        return $this->sessionHandler->getSessionData();
168
    }
169
170
    /**
171
     * Restore a previously used session
172
     *
173
     * To be used when implementing your own session pooling system on legacy Soap Header 2 applications.
174
     *
175
     * @param array $sessionData
176
     * @return bool
177
     */
178 4
    public function setSessionData(array $sessionData)
179
    {
180 4
        return $this->sessionHandler->setSessionData($sessionData);
181
    }
182
183
    /**
184
     * Construct Amadeus Web Services client
185
     *
186
     * @param Params $params
187
     */
188 400
    public function __construct(Params $params)
189
    {
190 400
        $this->loadClientParams(
191 400
            $params,
192 400
            self::RECEIVED_FROM_IDENTIFIER,
193 200
            self::VERSION
194 200
        );
195 396
    }
196
197
    /**
198
     * Authenticate.
199
     *
200
     * Authentication Parameters were provided at construction time (authParams)
201
     *
202
     * @return Result
203
     * @throws Exception
204
     */
205 8
    public function securityAuthenticate()
206
    {
207 8
        $msgName = 'Security_Authenticate';
208
209 8
        return $this->callMessage(
210 8
            $msgName,
211 8
            new RequestOptions\SecurityAuthenticateOptions(
212 8
                $this->authParams
213 4
            ),
214 8
            [],
215 4
            false
216 4
        );
217
    }
218
219
    /**
220
     * Terminate a session - only applicable to non-stateless mode.
221
     *
222
     * @return Result
223
     * @throws Exception
224
     */
225 4
    public function securitySignOut()
226
    {
227 4
        $msgName = 'Security_SignOut';
228
229 4
        return $this->callMessage(
230 4
            $msgName,
231 4
            new RequestOptions\SecuritySignOutOptions(),
232 4
            [],
233 2
            true
234 2
        );
235
    }
236
237
    /**
238
     * PNR_Retrieve - Retrieve an Amadeus PNR by record locator
239
     *
240
     * @param RequestOptions\PnrRetrieveOptions $options
241
     * @param array $messageOptions (OPTIONAL)
242
     * @return Result
243
     * @throws Client\InvalidMessageException
244
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
245
     * @throws Exception
246
     */
247 4
    public function pnrRetrieve(RequestOptions\PnrRetrieveOptions $options, $messageOptions = [])
248
    {
249 4
        $msgName = 'PNR_Retrieve';
250
251 4
        return $this->callMessage($msgName, $options, $messageOptions);
252
    }
253
254
    /**
255
     * PNR_Split
256
     *
257
     * @param RequestOptions\PnrSplitOptions $options
258
     * @param array $messageOptions (OPTIONAL)
259
     * @return Result
260
     * @throws Client\InvalidMessageException
261
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
262
     * @throws Exception
263
     */
264 4
    public function pnrSplit(
265
        RequestOptions\PnrSplitOptions $options,
266
        $messageOptions = []
267
    ) {
268 4
        $msgName = 'PNR_Split';
269
270 4
        return $this->callMessage($msgName, $options, $messageOptions);
271
    }
272
273
    /**
274
     * Create a PNR using PNR_AddMultiElements
275
     *
276
     * @param RequestOptions\PnrCreatePnrOptions $options
277
     * @param array $messageOptions (OPTIONAL)
278
     * @return Result
279
     * @throws Client\InvalidMessageException
280
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
281
     * @throws Exception
282
     */
283 4
    public function pnrCreatePnr(RequestOptions\PnrCreatePnrOptions $options, $messageOptions = [])
284
    {
285 4
        $msgName = 'PNR_AddMultiElements';
286
287 4
        return $this->callMessage($msgName, $options, $messageOptions);
288
    }
289
290
    /**
291
     * PNR_AddMultiElements - Create a new PNR or update an existing PNR.
292
     *
293
     * https://webservices.amadeus.com/extranet/viewService.do?id=25&flavourId=1&menuId=functional
294
     *
295
     * @param RequestOptions\PnrAddMultiElementsOptions $options
296
     * @param array $messageOptions (OPTIONAL)
297
     * @return Result
298
     * @throws Client\InvalidMessageException
299
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
300
     * @throws Exception
301
     */
302 8
    public function pnrAddMultiElements(RequestOptions\PnrAddMultiElementsOptions $options, $messageOptions = [])
303
    {
304 8
        $msgName = 'PNR_AddMultiElements';
305
306 8
        return $this->callMessage($msgName, $options, $messageOptions);
307
    }
308
309
    /**
310
     * PNR_RetrieveAndDisplay - Retrieve an Amadeus PNR by record locator including extra info
311
     *
312
     * This extra info is info you cannot see in the regular PNR, like Offers.
313
     *
314
     * https://webservices.amadeus.com/extranet/viewService.do?id=1922&flavourId=1&menuId=functional
315
     *
316
     * @param RequestOptions\PnrRetrieveAndDisplayOptions $options Amadeus Record Locator for PNR
317
     * @param array $messageOptions (OPTIONAL)
318
     * @return Result
319
     * @throws Client\InvalidMessageException
320
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
321
     * @throws Exception
322
     **/
323 4
    public function pnrRetrieveAndDisplay(RequestOptions\PnrRetrieveAndDisplayOptions $options, $messageOptions = [])
324
    {
325 4
        $msgName = 'PNR_RetrieveAndDisplay';
326
327 4
        return $this->callMessage($msgName, $options, $messageOptions);
328
    }
329
330
    /**
331
     * PNR_Cancel
332
     *
333
     * @param RequestOptions\PnrCancelOptions $options
334
     * @param array $messageOptions (OPTIONAL)
335
     * @return Result
336
     * @throws Client\InvalidMessageException
337
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
338
     * @throws Exception
339
     */
340 4
    public function pnrCancel(RequestOptions\PnrCancelOptions $options, $messageOptions = [])
341
    {
342 4
        $msgName = 'PNR_Cancel';
343
344 4
        return $this->callMessage($msgName, $options, $messageOptions);
345
    }
346
347
    /**
348
     * PNR_DisplayHistory
349
     *
350
     * @param RequestOptions\PnrDisplayHistoryOptions $options
351
     * @param array $messageOptions (OPTIONAL)
352
     * @return Result
353
     * @throws Client\InvalidMessageException
354
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
355
     * @throws Exception
356
     */
357 4
    public function pnrDisplayHistory(RequestOptions\PnrDisplayHistoryOptions $options, $messageOptions = [])
358
    {
359 4
        $msgName = 'PNR_DisplayHistory';
360
361 4
        return $this->callMessage($msgName, $options, $messageOptions);
362
    }
363
364
    /**
365
     * PNR_TransferOwnership
366
     *
367
     * @param RequestOptions\PnrTransferOwnershipOptions $options
368
     * @param array $messageOptions (OPTIONAL)
369
     * @return Result
370
     * @throws Client\InvalidMessageException
371
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
372
     * @throws Exception
373
     */
374 4
    public function pnrTransferOwnership(RequestOptions\PnrTransferOwnershipOptions $options, $messageOptions = [])
375
    {
376 4
        $msgName = 'PNR_TransferOwnership';
377
378 4
        return $this->callMessage($msgName, $options, $messageOptions);
379
    }
380
381
    /**
382
     * PNR_NameChange
383
     *
384
     * @param RequestOptions\PnrNameChangeOptions $options
385
     * @param array $messageOptions (OPTIONAL)
386
     * @return Result
387
     * @throws Client\InvalidMessageException
388
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
389
     * @throws Exception
390
     */
391 4
    public function pnrNameChange(RequestOptions\PnrNameChangeOptions $options, $messageOptions = [])
392
    {
393 4
        $msgName = 'PNR_NameChange';
394
395 4
        return $this->callMessage($msgName, $options, $messageOptions);
396
    }
397
398
    /**
399
     * Queue_List - get a list of all PNR's on a given queue
400
     *
401
     * https://webservices.amadeus.com/extranet/viewService.do?id=52&flavourId=1&menuId=functional
402
     *
403
     * @param RequestOptions\QueueListOptions $options
404
     * @param array $messageOptions (OPTIONAL)
405
     * @return Result
406
     * @throws Client\InvalidMessageException
407
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
408
     * @throws Exception
409
     */
410 4
    public function queueList(RequestOptions\QueueListOptions $options, $messageOptions = [])
411
    {
412 4
        $msgName = 'Queue_List';
413
414 4
        return $this->callMessage($msgName, $options, $messageOptions);
415
    }
416
417
    /**
418
     * Queue_PlacePNR - Place a PNR on a given queue
419
     *
420
     * @param RequestOptions\QueuePlacePnrOptions $options
421
     * @param array $messageOptions (OPTIONAL)
422
     * @return Result
423
     * @throws Client\InvalidMessageException
424
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
425
     * @throws Exception
426
     */
427 4
    public function queuePlacePnr(RequestOptions\QueuePlacePnrOptions $options, $messageOptions = [])
428
    {
429 4
        $msgName = 'Queue_PlacePNR';
430
431 4
        return $this->callMessage($msgName, $options, $messageOptions);
432
    }
433
434
    /**
435
     * PNR_Ignore - Ignore an Amadeus PNR by record locator
436
     *
437
     * @param RequestOptions\PnrIgnoreOptions $options
438
     * @param array $messageOptions (OPTIONAL)
439
     * @return Result
440
     * @throws Client\InvalidMessageException
441
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
442
     * @throws Exception
443
     */
444 4
    public function pnrIgnore(RequestOptions\PnrIgnoreOptions $options, $messageOptions = [])
445
    {
446 4
        $msgName = 'PNR_Ignore';
447
448 4
        return $this->callMessage($msgName, $options, $messageOptions);
449
    }
450
451
452
    /**
453
     * Queue_RemoveItem - remove an item (a PNR) from a given queue
454
     *
455
     * @param RequestOptions\QueueRemoveItemOptions $options
456
     * @param array $messageOptions (OPTIONAL)
457
     * @return Result
458
     * @throws Client\InvalidMessageException
459
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
460
     * @throws Exception
461
     */
462 4
    public function queueRemoveItem(RequestOptions\QueueRemoveItemOptions $options, $messageOptions = [])
463
    {
464 4
        $msgName = 'Queue_RemoveItem';
465
466 4
        return $this->callMessage($msgName, $options, $messageOptions);
467
    }
468
469
    /**
470
     * Queue_MoveItem - move an item (a PNR) from one queue to another.
471
     *
472
     * @param RequestOptions\QueueMoveItemOptions $options
473
     * @param array $messageOptions (OPTIONAL)
474
     * @return Result
475
     * @throws Client\InvalidMessageException
476
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
477
     * @throws Exception
478
     */
479 4
    public function queueMoveItem(RequestOptions\QueueMoveItemOptions $options, $messageOptions = [])
480
    {
481 4
        $msgName = 'Queue_MoveItem';
482
483 4
        return $this->callMessage($msgName, $options, $messageOptions);
484
    }
485
486
    /**
487
     * Offer_CreateOffer
488
     *
489
     * @param RequestOptions\OfferCreateOptions $options
490
     * @param array $messageOptions (OPTIONAL)
491
     * @return Result
492
     * @throws Client\InvalidMessageException
493
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
494
     * @throws Exception
495
     */
496 4
    public function offerCreate(RequestOptions\OfferCreateOptions $options, $messageOptions = [])
497
    {
498 4
        $msgName = 'Offer_CreateOffer';
499
500 4
        return $this->callMessage($msgName, $options, $messageOptions);
501
    }
502
503
    /**
504
     * Offer_VerifyOffer
505
     *
506
     * To be called in the context of an open PNR
507
     *
508
     * @param RequestOptions\OfferVerifyOptions $options
509
     * @param array $messageOptions (OPTIONAL)
510
     * @return Result
511
     * @throws Client\InvalidMessageException
512
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
513
     * @throws Exception
514
     */
515 4
    public function offerVerify(RequestOptions\OfferVerifyOptions $options, $messageOptions = [])
516
    {
517 4
        $msgName = 'Offer_VerifyOffer';
518
519 4
        return $this->callMessage($msgName, $options, $messageOptions);
520
    }
521
522
    /**
523
     * Offer_ConfirmAirOffer
524
     *
525
     * @param RequestOptions\OfferConfirmAirOptions $options
526
     * @param array $messageOptions (OPTIONAL)
527
     * @return Result
528
     * @throws Client\InvalidMessageException
529
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
530
     * @throws Exception
531
     */
532 4
    public function offerConfirmAir(RequestOptions\OfferConfirmAirOptions $options, $messageOptions = [])
533
    {
534 4
        $msgName = 'Offer_ConfirmAirOffer';
535
536 4
        return $this->callMessage($msgName, $options, $messageOptions);
537
    }
538
539
    /**
540
     * Offer_ConfirmHotelOffer
541
     *
542
     * @param RequestOptions\OfferConfirmHotelOptions $options
543
     * @param array $messageOptions (OPTIONAL)
544
     * @return Result
545
     * @throws Client\InvalidMessageException
546
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
547
     * @throws Exception
548
     */
549 4
    public function offerConfirmHotel(RequestOptions\OfferConfirmHotelOptions $options, $messageOptions = [])
550
    {
551 4
        $msgName = 'Offer_ConfirmHotelOffer';
552
553 4
        return $this->callMessage($msgName, $options, $messageOptions);
554
    }
555
556
    /**
557
     * Offer_ConfirmCarOffer
558
     *
559
     * @param RequestOptions\OfferConfirmCarOptions $options
560
     * @param array $messageOptions (OPTIONAL)
561
     * @return Result
562
     * @throws Client\InvalidMessageException
563
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
564
     * @throws Exception
565
     */
566 4
    public function offerConfirmCar(RequestOptions\OfferConfirmCarOptions $options, $messageOptions = [])
567
    {
568 4
        $msgName = 'Offer_ConfirmCarOffer';
569
570 4
        return $this->callMessage($msgName, $options, $messageOptions);
571
    }
572
573
    /**
574
     * Fare_MasterPricerExpertSearch
575
     *
576
     * @param RequestOptions\FareMasterPricerExSearchOptions $options
577
     * @param array $messageOptions (OPTIONAL)
578
     * @return Result
579
     * @throws Client\InvalidMessageException
580
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
581
     * @throws Exception
582
     */
583 4
    public function fareMasterPricerExpertSearch(
584
        RequestOptions\FareMasterPricerExSearchOptions $options,
585
        $messageOptions = []
586
    ) {
587 4
        $msgName = 'Fare_MasterPricerExpertSearch';
588
589 4
        return $this->callMessage($msgName, $options, $messageOptions);
590
    }
591
592
593
    /**
594
     * Fare_MasterPricerTravelBoardSearch
595
     *
596
     * @param RequestOptions\FareMasterPricerTbSearch $options
597
     * @param array $messageOptions (OPTIONAL)
598
     * @return Result
599
     * @throws Client\InvalidMessageException
600
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
601
     * @throws Exception
602
     */
603 4
    public function fareMasterPricerTravelBoardSearch(
604
        RequestOptions\FareMasterPricerTbSearch $options,
605
        $messageOptions = []
606
    ) {
607 4
        $msgName = 'Fare_MasterPricerTravelBoardSearch';
608
609 4
        return $this->callMessage($msgName, $options, $messageOptions);
610
    }
611
612
    /**
613
     * Fare_MasterPricerCalendar
614
     *
615
     * @param RequestOptions\FareMasterPricerCalendarOptions $options
616
     * @param array $messageOptions (OPTIONAL)
617
     * @return Result
618
     * @throws Client\InvalidMessageException
619
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
620
     * @throws Exception
621
     */
622 4
    public function fareMasterPricerCalendar(
623
        RequestOptions\FareMasterPricerCalendarOptions $options,
624
        $messageOptions = []
625
    ) {
626 4
        $msgName = 'Fare_MasterPricerCalendar';
627
628 4
        return $this->callMessage($msgName, $options, $messageOptions);
629
    }
630
631
    /**
632
     * Fare_PricePnrWithBookingClass
633
     *
634
     * @param RequestOptions\FarePricePnrWithBookingClassOptions $options
635
     * @param array $messageOptions (OPTIONAL)
636
     * @return Result
637
     * @throws Client\InvalidMessageException
638
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
639
     * @throws Exception
640
     */
641 8
    public function farePricePnrWithBookingClass(
642
        RequestOptions\FarePricePnrWithBookingClassOptions $options,
643
        $messageOptions = []
644
    ) {
645 8
        $msgName = 'Fare_PricePNRWithBookingClass';
646
647 8
        return $this->callMessage($msgName, $options, $messageOptions);
648
    }
649
650
    /**
651
     * Fare_PricePnrWithLowerFares
652
     *
653
     * @param RequestOptions\FarePricePnrWithLowerFaresOptions $options
654
     * @param array $messageOptions (OPTIONAL)
655
     * @return Result
656
     * @throws Client\InvalidMessageException
657
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
658
     * @throws Exception
659
     */
660 8
    public function farePricePnrWithLowerFares(
661
        RequestOptions\FarePricePnrWithLowerFaresOptions $options,
662
        $messageOptions = []
663
    ) {
664 8
        $msgName = 'Fare_PricePNRWithLowerFares';
665
666 8
        return $this->callMessage($msgName, $options, $messageOptions);
667
    }
668
669
    /**
670
     * Fare_PricePnrWithLowestFare
671
     *
672
     * @param RequestOptions\FarePricePnrWithLowestFareOptions $options
673
     * @param array $messageOptions (OPTIONAL)
674
     * @return Result
675
     * @throws Client\InvalidMessageException
676
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
677
     * @throws Exception
678
     */
679 8
    public function farePricePnrWithLowestFare(
680
        RequestOptions\FarePricePnrWithLowestFareOptions $options,
681
        $messageOptions = []
682
    ) {
683 8
        $msgName = 'Fare_PricePNRWithLowestFare';
684
685 8
        return $this->callMessage($msgName, $options, $messageOptions);
686
    }
687
688
    /**
689
     * Fare_InformativePricingWithoutPNR
690
     *
691
     * @param RequestOptions\FareInformativePricingWithoutPnrOptions $options
692
     * @param array $messageOptions (OPTIONAL)
693
     * @return Result
694
     * @throws Client\InvalidMessageException
695
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
696
     * @throws Exception
697
     */
698 4
    public function fareInformativePricingWithoutPnr(
699
        RequestOptions\FareInformativePricingWithoutPnrOptions $options,
700
        $messageOptions = []
701
    ) {
702 4
        $msgName = 'Fare_InformativePricingWithoutPNR';
703
704 4
        return $this->callMessage($msgName, $options, $messageOptions);
705
    }
706
707
    /**
708
     * Fare_InformativeBestPricingWithoutPNR
709
     *
710
     * @param RequestOptions\FareInformativeBestPricingWithoutPnrOptions $options
711
     * @param array $messageOptions (OPTIONAL)
712
     * @return Result
713
     * @throws Client\InvalidMessageException
714
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
715
     * @throws Exception
716
     */
717 4
    public function fareInformativeBestPricingWithoutPnr(
718
        RequestOptions\FareInformativeBestPricingWithoutPnrOptions $options,
719
        $messageOptions = []
720
    ) {
721 4
        $msgName = 'Fare_InformativeBestPricingWithoutPNR';
722
723 4
        return $this->callMessage($msgName, $options, $messageOptions);
724
    }
725
726
    /**
727
     * Fare_CheckRules
728
     *
729
     * @param RequestOptions\FareCheckRulesOptions $options
730
     * @param array $messageOptions (OPTIONAL)
731
     * @return Result
732
     * @throws Client\InvalidMessageException
733
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
734
     * @throws Exception
735
     */
736 4
    public function fareCheckRules(RequestOptions\FareCheckRulesOptions $options, $messageOptions = [])
737
    {
738 4
        $msgName = 'Fare_CheckRules';
739
740 4
        return $this->callMessage($msgName, $options, $messageOptions);
741
    }
742
743
    /**
744
     * Fare_GetFareRules
745
     *
746
     * @param RequestOptions\FareGetFareRulesOptions $options
747
     * @param array $messageOptions (OPTIONAL)
748
     * @return Result
749
     * @throws Client\InvalidMessageException
750
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
751
     * @throws Exception
752
     */
753 4
    public function fareGetFareRules(RequestOptions\FareGetFareRulesOptions $options, $messageOptions = [])
754
    {
755 4
        $msgName = 'Fare_GetFareRules';
756
757 4
        return $this->callMessage($msgName, $options, $messageOptions);
758
    }
759
760
    /**
761
     * Fare_ConvertCurrency
762
     *
763
     * @param RequestOptions\FareConvertCurrencyOptions $options
764
     * @param array $messageOptions (OPTIONAL)
765
     * @return Result
766
     * @throws Client\InvalidMessageException
767
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
768
     * @throws Exception
769
     */
770 4
    public function fareConvertCurrency(RequestOptions\FareConvertCurrencyOptions $options, $messageOptions = [])
771
    {
772 4
        $msgName = 'Fare_ConvertCurrency';
773
774 4
        return $this->callMessage($msgName, $options, $messageOptions);
775
    }
776
777
    /**
778
     * Air_MultiAvailability
779
     *
780
     * @param RequestOptions\AirMultiAvailabilityOptions $options
781
     * @param array $messageOptions (OPTIONAL)
782
     * @return Result
783
     * @throws Client\InvalidMessageException
784
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
785
     * @throws Exception
786
     */
787 4
    public function airMultiAvailability(
788
        RequestOptions\AirMultiAvailabilityOptions $options,
789
        $messageOptions = []
790
    ) {
791 4
        $msgName = 'Air_MultiAvailability';
792
793 4
        return $this->callMessage($msgName, $options, $messageOptions);
794
    }
795
796
    /**
797
     * Air_SellFromRecommendation
798
     *
799
     * @param RequestOptions\AirSellFromRecommendationOptions $options
800
     * @param array $messageOptions (OPTIONAL)
801
     * @return Result
802
     * @throws Client\InvalidMessageException
803
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
804
     * @throws Exception
805
     */
806 4
    public function airSellFromRecommendation(
807
        RequestOptions\AirSellFromRecommendationOptions $options,
808
        $messageOptions = []
809
    ) {
810 4
        $msgName = 'Air_SellFromRecommendation';
811
812 4
        return $this->callMessage($msgName, $options, $messageOptions);
813
    }
814
815
    /**
816
     * Air_FlightInfo
817
     *
818
     * @param RequestOptions\AirFlightInfoOptions $options
819
     * @param array $messageOptions (OPTIONAL)
820
     * @return Result
821
     * @throws Client\InvalidMessageException
822
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
823
     * @throws Exception
824
     */
825 4
    public function airFlightInfo(RequestOptions\AirFlightInfoOptions $options, $messageOptions = [])
826
    {
827 4
        $msgName = 'Air_FlightInfo';
828
829 4
        return $this->callMessage($msgName, $options, $messageOptions);
830
    }
831
832
    /**
833
     * Air_RetrieveSeatMap
834
     *
835
     * @param RequestOptions\AirRetrieveSeatMapOptions $options
836
     * @param array $messageOptions (OPTIONAL)
837
     * @return Result
838
     * @throws Client\InvalidMessageException
839
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
840
     * @throws Exception
841
     */
842 4
    public function airRetrieveSeatMap(RequestOptions\AirRetrieveSeatMapOptions $options, $messageOptions = [])
843
    {
844 4
        $msgName = 'Air_RetrieveSeatMap';
845
846 4
        return $this->callMessage($msgName, $options, $messageOptions);
847
    }
848
849
    /**
850
     * Air_RebookAirSegment
851
     *
852
     * @param RequestOptions\AirRebookAirSegmentOptions $options
853
     * @param array $messageOptions (OPTIONAL)
854
     * @return Result
855
     * @throws Client\InvalidMessageException
856
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
857
     * @throws Exception
858
     */
859 4
    public function airRebookAirSegment(RequestOptions\AirRebookAirSegmentOptions $options, $messageOptions = [])
860
    {
861 4
        $msgName = 'Air_RebookAirSegment';
862
863 4
        return $this->callMessage($msgName, $options, $messageOptions);
864
    }
865
866
    /**
867
     * Command_Cryptic
868
     *
869
     * @param RequestOptions\CommandCrypticOptions $options
870
     * @param array $messageOptions (OPTIONAL)
871
     * @return Result
872
     * @throws Client\InvalidMessageException
873
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
874
     * @throws Exception
875
     */
876 4
    public function commandCryptic(RequestOptions\CommandCrypticOptions $options, $messageOptions = [])
877
    {
878 4
        $msgName = 'Command_Cryptic';
879
880 4
        return $this->callMessage($msgName, $options, $messageOptions);
881
    }
882
883
    /**
884
     * MiniRule_GetFromPricingRec
885
     *
886
     * @param RequestOptions\MiniRuleGetFromPricingRecOptions $options
887
     * @param array $messageOptions (OPTIONAL)
888
     * @return Result
889
     * @throws Client\InvalidMessageException
890
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
891
     * @throws Exception
892
     */
893 4
    public function miniRuleGetFromPricingRec(
894
        RequestOptions\MiniRuleGetFromPricingRecOptions $options,
895
        $messageOptions = []
896
    ) {
897 4
        $msgName = 'MiniRule_GetFromPricingRec';
898
899 4
        return $this->callMessage($msgName, $options, $messageOptions);
900
    }
901
902
    /**
903
     * MiniRule_GetFromPricing
904
     *
905
     * @param RequestOptions\MiniRuleGetFromPricingOptions $options
906
     * @param array $messageOptions (OPTIONAL)
907
     * @return Result
908
     * @throws Client\InvalidMessageException
909
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
910
     * @throws Exception
911
     */
912 4
    public function miniRuleGetFromPricing(
913
        RequestOptions\MiniRuleGetFromPricingOptions $options,
914
        $messageOptions = []
915
    ) {
916 4
        $msgName = 'MiniRule_GetFromPricing';
917
918 4
        return $this->callMessage($msgName, $options, $messageOptions);
919
    }
920
921
    /**
922
     * MiniRule_GetFromETicket
923
     *
924
     * @param RequestOptions\MiniRuleGetFromETicketOptions $options
925
     * @param array $messageOptions (OPTIONAL)
926
     * @return Result
927
     * @throws Client\InvalidMessageException
928
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
929
     * @throws Exception
930
     */
931 4
    public function miniRuleGetFromETicket(
932
        RequestOptions\MiniRuleGetFromETicketOptions $options,
933
        $messageOptions = []
934
    ) {
935 4
        $msgName = 'MiniRule_GetFromETicket';
936
937 4
        return $this->callMessage($msgName, $options, $messageOptions);
938
    }
939
940
    /**
941
     * Info_EncodeDecodeCity
942
     *
943
     * @param RequestOptions\InfoEncodeDecodeCityOptions $options
944
     * @param array $messageOptions (OPTIONAL)
945
     * @return Result
946
     * @throws Client\InvalidMessageException
947
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
948
     * @throws Exception
949
     */
950 4
    public function infoEncodeDecodeCity(RequestOptions\InfoEncodeDecodeCityOptions $options, $messageOptions = [])
951
    {
952 4
        $msgName = 'Info_EncodeDecodeCity';
953
954 4
        return $this->callMessage($msgName, $options, $messageOptions);
955
    }
956
957
    /**
958
     * PointOfRef_Search
959
     *
960
     * @param RequestOptions\PointOfRefSearchOptions $options
961
     * @param array $messageOptions (OPTIONAL)
962
     * @return Result
963
     * @throws Client\InvalidMessageException
964
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
965
     * @throws Exception
966
     */
967 4
    public function pointOfRefSearch(RequestOptions\PointOfRefSearchOptions $options, $messageOptions = [])
968
    {
969 4
        $msgName = 'PointOfRef_Search';
970
971 4
        return $this->callMessage($msgName, $options, $messageOptions);
972
    }
973
974
975
    /**
976
     * Ticket_CreateTSTFromPricing
977
     *
978
     * @param RequestOptions\TicketCreateTstFromPricingOptions $options
979
     * @param array $messageOptions (OPTIONAL)
980
     * @return Result
981
     * @throws Client\InvalidMessageException
982
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
983
     * @throws Exception
984
     */
985 4
    public function ticketCreateTSTFromPricing(
986
        RequestOptions\TicketCreateTstFromPricingOptions $options,
987
        $messageOptions = []
988
    ) {
989 4
        $msgName = 'Ticket_CreateTSTFromPricing';
990
991 4
        return $this->callMessage($msgName, $options, $messageOptions);
992
    }
993
994
    /**
995
     * Ticket_CreateTSMFromPricing
996
     *
997
     * @param RequestOptions\TicketCreateTsmFromPricingOptions $options
998
     * @param array $messageOptions (OPTIONAL)
999
     * @return Result
1000
     * @throws Client\InvalidMessageException
1001
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1002
     * @throws Exception
1003
     */
1004 4
    public function ticketCreateTSMFromPricing(
1005
        RequestOptions\TicketCreateTsmFromPricingOptions $options,
1006
        $messageOptions = []
1007
    ) {
1008 4
        $msgName = 'Ticket_CreateTSMFromPricing';
1009
1010 4
        return $this->callMessage($msgName, $options, $messageOptions);
1011
    }
1012
1013
    /**
1014
     * Ticket_CreateTSMFareElement
1015
     *
1016
     * @param RequestOptions\TicketCreateTsmFareElOptions $options
1017
     * @param array $messageOptions (OPTIONAL)
1018
     * @return Result
1019
     * @throws Client\InvalidMessageException
1020
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1021
     * @throws Exception
1022
     */
1023 4
    public function ticketCreateTSMFareElement(
1024
        RequestOptions\TicketCreateTsmFareElOptions $options,
1025
        $messageOptions = []
1026
    ) {
1027 4
        $msgName = 'Ticket_CreateTSMFareElement';
1028
1029 4
        return $this->callMessage($msgName, $options, $messageOptions);
1030
    }
1031
1032
    /**
1033
     * Ticket_CreateTASF
1034
     *
1035
     * @param RequestOptions\TicketCreateTasfOptions $options
1036
     * @param array $messageOptions (OPTIONAL)
1037
     * @return Result
1038
     * @throws Client\InvalidMessageException
1039
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1040
     * @throws Exception
1041
     */
1042 4
    public function ticketCreateTASF(
1043
        RequestOptions\TicketCreateTasfOptions $options,
1044
        $messageOptions = []
1045
    ) {
1046 4
        $msgName = 'Ticket_CreateTASF';
1047
1048 4
        return $this->callMessage($msgName, $options, $messageOptions);
1049
    }
1050
1051
    /**
1052
     * Ticket_DeleteTST
1053
     *
1054
     * @param RequestOptions\TicketDeleteTstOptions $options
1055
     * @param array $messageOptions (OPTIONAL)
1056
     * @return Result
1057
     * @throws Client\InvalidMessageException
1058
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1059
     * @throws Exception
1060
     */
1061 4
    public function ticketDeleteTST(RequestOptions\TicketDeleteTstOptions $options, $messageOptions = [])
1062
    {
1063 4
        $msgName = 'Ticket_DeleteTST';
1064
1065 4
        return $this->callMessage($msgName, $options, $messageOptions);
1066
    }
1067
1068
    /**
1069
     * Ticket_DeleteTSMP
1070
     *
1071
     * @param RequestOptions\TicketDeleteTsmpOptions $options
1072
     * @param array $messageOptions (OPTIONAL)
1073
     * @return Result
1074
     * @throws Client\InvalidMessageException
1075
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1076
     * @throws Exception
1077
     */
1078 4
    public function ticketDeleteTSMP(RequestOptions\TicketDeleteTsmpOptions $options, $messageOptions = [])
1079
    {
1080 4
        $msgName = 'Ticket_DeleteTSMP';
1081
1082 4
        return $this->callMessage($msgName, $options, $messageOptions);
1083
    }
1084
1085
    /**
1086
     * Ticket_DisplayTST
1087
     *
1088
     * @param RequestOptions\TicketDisplayTstOptions $options
1089
     * @param array $messageOptions (OPTIONAL)
1090
     * @return Result
1091
     * @throws Client\InvalidMessageException
1092
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1093
     * @throws Exception
1094
     */
1095 4
    public function ticketDisplayTST(RequestOptions\TicketDisplayTstOptions $options, $messageOptions = [])
1096
    {
1097 4
        $msgName = 'Ticket_DisplayTST';
1098
1099 4
        return $this->callMessage($msgName, $options, $messageOptions);
1100
    }
1101
1102
    /**
1103
     * Ticket_DisplayTSMP
1104
     *
1105
     * @param RequestOptions\TicketDisplayTsmpOptions $options
1106
     * @param array $messageOptions (OPTIONAL)
1107
     * @return Result
1108
     * @throws Client\InvalidMessageException
1109
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1110
     * @throws Exception
1111
     */
1112 4
    public function ticketDisplayTSMP(RequestOptions\TicketDisplayTsmpOptions $options, $messageOptions = [])
1113
    {
1114 4
        $msgName = 'Ticket_DisplayTSMP';
1115
1116 4
        return $this->callMessage($msgName, $options, $messageOptions);
1117
    }
1118
1119
    /**
1120
     * Ticket_RetrieveListOfTSM
1121
     *
1122
     * @param RequestOptions\TicketRetrieveListOfTSMOptions $options
1123
     * @param array $messageOptions (OPTIONAL)
1124
     * @return Result
1125
     * @throws Client\InvalidMessageException
1126
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1127
     * @throws Exception
1128
     */
1129 4
    public function ticketRetrieveListOfTSM(
1130
        RequestOptions\TicketRetrieveListOfTSMOptions $options,
1131
        $messageOptions = []
1132
    ) {
1133 4
        $msgName = 'Ticket_RetrieveListOfTSM';
1134
1135 4
        return $this->callMessage($msgName, $options, $messageOptions);
1136
    }
1137
1138
    /**
1139
     * Ticket_DisplayTSMFareElement
1140
     *
1141
     * @param RequestOptions\TicketDisplayTsmFareElOptions $options
1142
     * @param array $messageOptions (OPTIONAL)
1143
     * @return Result
1144
     * @throws Client\InvalidMessageException
1145
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1146
     * @throws Exception
1147
     */
1148 4
    public function ticketDisplayTSMFareElement(
1149
        RequestOptions\TicketDisplayTsmFareElOptions $options,
1150
        $messageOptions = []
1151
    ) {
1152 4
        $msgName = 'Ticket_DisplayTSMFareElement';
1153
1154 4
        return $this->callMessage($msgName, $options, $messageOptions);
1155
    }
1156
1157
    /**
1158
     * Ticket_CheckEligibility
1159
     *
1160
     * @param RequestOptions\TicketCheckEligibilityOptions $options
1161
     * @param array $messageOptions (OPTIONAL)
1162
     * @return Result
1163
     * @throws Client\InvalidMessageException
1164
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1165
     * @throws Exception
1166
     */
1167 4
    public function ticketCheckEligibility(
1168
        RequestOptions\TicketCheckEligibilityOptions $options,
1169
        $messageOptions = []
1170
    ) {
1171 4
        $msgName = 'Ticket_CheckEligibility';
1172
1173 4
        return $this->callMessage($msgName, $options, $messageOptions);
1174
    }
1175
1176
    /**
1177
     * Ticket_ATCShopperMasterPricerTravelBoardSearch
1178
     *
1179
     * @param RequestOptions\TicketAtcShopperMpTbSearchOptions $options
1180
     * @param array $messageOptions (OPTIONAL)
1181
     * @return Result
1182
     * @throws Client\InvalidMessageException
1183
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1184
     * @throws Exception
1185
     */
1186 4
    public function ticketAtcShopperMasterPricerTravelBoardSearch(
1187
        RequestOptions\TicketAtcShopperMpTbSearchOptions $options,
1188
        $messageOptions = []
1189
    ) {
1190 4
        $msgName = 'Ticket_ATCShopperMasterPricerTravelBoardSearch';
1191
1192 4
        return $this->callMessage($msgName, $options, $messageOptions);
1193
    }
1194
1195
    /**
1196
     * Ticket_RepricePNRWithBookingClass
1197
     *
1198
     * @param RequestOptions\TicketRepricePnrWithBookingClassOptions $options
1199
     * @param array $messageOptions (OPTIONAL)
1200
     * @return Result
1201
     * @throws Client\InvalidMessageException
1202
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1203
     * @throws Exception
1204
     */
1205 4
    public function ticketRepricePnrWithBookingClass(
1206
        RequestOptions\TicketRepricePnrWithBookingClassOptions $options,
1207
        $messageOptions = []
1208
    ) {
1209 4
        $msgName = 'Ticket_RepricePNRWithBookingClass';
1210
1211 4
        return $this->callMessage($msgName, $options, $messageOptions);
1212
    }
1213
1214
    /**
1215
     * Ticket_CancelDocument
1216
     *
1217
     * @param RequestOptions\TicketCancelDocumentOptions $options
1218
     * @param array $messageOptions (OPTIONAL)
1219
     * @return Result
1220
     * @throws Client\InvalidMessageException
1221
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1222
     * @throws Exception
1223
     */
1224 4
    public function ticketCancelDocument(
1225
        RequestOptions\TicketCancelDocumentOptions $options,
1226
        $messageOptions = []
1227
    ) {
1228 4
        $msgName = 'Ticket_CancelDocument';
1229
1230 4
        return $this->callMessage($msgName, $options, $messageOptions);
1231
    }
1232
1233
    /**
1234
     * Ticket_ReissueConfirmedPricing
1235
     *
1236
     * @param RequestOptions\TicketReissueConfirmedPricingOptions $options
1237
     * @param array $messageOptions (OPTIONAL)
1238
     * @return Result
1239
     * @throws Client\InvalidMessageException
1240
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1241
     * @throws Exception
1242
     */
1243 4
    public function ticketReissueConfirmedPricing(
1244
        RequestOptions\TicketReissueConfirmedPricingOptions $options,
1245
        $messageOptions = []
1246
    ) {
1247 4
        $msgName = 'Ticket_ReissueConfirmedPricing';
1248
1249 4
        return $this->callMessage($msgName, $options, $messageOptions);
1250
    }
1251
1252
    /**
1253
     * Ticket_ProcessEDoc
1254
     *
1255
     * @param RequestOptions\TicketProcessEDocOptions $options
1256
     * @param array $messageOptions (OPTIONAL)
1257
     * @return Result
1258
     * @throws Client\InvalidMessageException
1259
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1260
     * @throws Exception
1261
     */
1262 4
    public function ticketProcessEDoc(RequestOptions\TicketProcessEDocOptions $options, $messageOptions = [])
1263
    {
1264 4
        $msgName = 'Ticket_ProcessEDoc';
1265
1266 4
        return $this->callMessage($msgName, $options, $messageOptions);
1267
    }
1268
1269
    /**
1270
     * Ticket_ProcessETicket
1271
     *
1272
     * @param RequestOptions\TicketProcessETicketOptions $options
1273
     * @param array $messageOptions (OPTIONAL)
1274
     * @return Result
1275
     * @throws Client\InvalidMessageException
1276
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1277
     * @throws Exception
1278
     */
1279 4
    public function ticketProcessETicket(RequestOptions\TicketProcessETicketOptions $options, $messageOptions = [])
1280
    {
1281 4
        $msgName = 'Ticket_ProcessETicket';
1282
1283 4
        return $this->callMessage($msgName, $options, $messageOptions);
1284
    }
1285
1286
    /**
1287
     * DocIssuance_IssueTicket
1288
     *
1289
     * @param RequestOptions\DocIssuanceIssueTicketOptions $options
1290
     * @param array $messageOptions (OPTIONAL)
1291
     * @return Result
1292
     * @throws Client\InvalidMessageException
1293
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1294
     * @throws Exception
1295
     */
1296 4
    public function docIssuanceIssueTicket(
1297
        RequestOptions\DocIssuanceIssueTicketOptions $options,
1298
        $messageOptions = []
1299
    ) {
1300 4
        $msgName = 'DocIssuance_IssueTicket';
1301
1302 4
        return $this->callMessage($msgName, $options, $messageOptions);
1303
    }
1304
1305
    /**
1306
     * DocIssuance_IssueMiscellaneousDocuments
1307
     *
1308
     * @param RequestOptions\DocIssuanceIssueMiscDocOptions $options
1309
     * @param array $messageOptions (OPTIONAL)
1310
     * @return Result
1311
     * @throws Client\InvalidMessageException
1312
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1313
     * @throws Exception
1314
     */
1315 4
    public function docIssuanceIssueMiscellaneousDocuments(
1316
        RequestOptions\DocIssuanceIssueMiscDocOptions $options,
1317
        $messageOptions = []
1318
    ) {
1319 4
        $msgName = 'DocIssuance_IssueMiscellaneousDocuments';
1320
1321 4
        return $this->callMessage($msgName, $options, $messageOptions);
1322
    }
1323
1324
    /**
1325
     * DocIssuance_IssueCombined
1326
     *
1327
     * @param RequestOptions\DocIssuanceIssueCombinedOptions $options
1328
     * @param array $messageOptions (OPTIONAL)
1329
     * @return Result
1330
     * @throws Client\InvalidMessageException
1331
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1332
     * @throws Exception
1333
     */
1334 8
    public function docIssuanceIssueCombined(
1335
        RequestOptions\DocIssuanceIssueCombinedOptions $options,
1336
        $messageOptions = []
1337
    ) {
1338 8
        $msgName = 'DocIssuance_IssueCombined';
1339
1340 8
        return $this->callMessage($msgName, $options, $messageOptions);
1341
    }
1342
1343
    /**
1344
     * DocRefund_InitRefund
1345
     *
1346
     * @param RequestOptions\DocRefundInitRefundOptions $options
1347
     * @param array $messageOptions (OPTIONAL)
1348
     * @return Result
1349
     * @throws Client\InvalidMessageException
1350
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1351
     * @throws Exception
1352
     */
1353 4
    public function docRefundInitRefund(
1354
        RequestOptions\DocRefundInitRefundOptions $options,
1355
        $messageOptions = []
1356
    ) {
1357 4
        $msgName = 'DocRefund_InitRefund';
1358
1359 4
        return $this->callMessage($msgName, $options, $messageOptions);
1360
    }
1361
1362
    /**
1363
     * DocRefund_IgnoreRefund
1364
     *
1365
     * @param RequestOptions\DocRefundIgnoreRefundOptions $options
1366
     * @param array $messageOptions (OPTIONAL)
1367
     * @return Result
1368
     * @throws Client\InvalidMessageException
1369
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1370
     * @throws Exception
1371
     */
1372 4
    public function docRefundIgnoreRefund(
1373
        RequestOptions\DocRefundIgnoreRefundOptions $options,
1374
        $messageOptions = []
1375
    ) {
1376 4
        $msgName = 'DocRefund_IgnoreRefund';
1377
1378 4
        return $this->callMessage($msgName, $options, $messageOptions);
1379
    }
1380
1381
    /**
1382
     * DocRefund_UpdateRefund
1383
     *
1384
     * @param RequestOptions\DocRefundUpdateRefundOptions $options
1385
     * @param array $messageOptions (OPTIONAL)
1386
     * @return Result
1387
     * @throws Client\InvalidMessageException
1388
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1389
     * @throws Exception
1390
     */
1391 4
    public function docRefundUpdateRefund(
1392
        RequestOptions\DocRefundUpdateRefundOptions $options,
1393
        $messageOptions = []
1394
    ) {
1395 4
        $msgName = 'DocRefund_UpdateRefund';
1396
1397 4
        return $this->callMessage($msgName, $options, $messageOptions);
1398
    }
1399
1400
    /**
1401
     * DocRefund_ProcessRefund
1402
     *
1403
     * @param RequestOptions\DocRefundProcessRefundOptions $options
1404
     * @param array $messageOptions (OPTIONAL)
1405
     * @return Result
1406
     * @throws Client\InvalidMessageException
1407
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1408
     * @throws Exception
1409
     */
1410 4
    public function docRefundProcessRefund(
1411
        RequestOptions\DocRefundProcessRefundOptions $options,
1412
        $messageOptions = []
1413
    ) {
1414 4
        $msgName = 'DocRefund_ProcessRefund';
1415
1416 4
        return $this->callMessage($msgName, $options, $messageOptions);
1417
    }
1418
1419
    /**
1420
     * Ticket_InitRefund
1421
     *
1422
     * @param RequestOptions\TicketInitRefundOptions $options
1423
     * @param array $messageOptions (OPTIONAL)
1424
     * @return Result
1425
     * @throws Client\InvalidMessageException
1426
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1427
     * @throws Exception
1428
     */
1429 4
    public function ticketInitRefund(
1430
        RequestOptions\TicketInitRefundOptions $options,
1431
        $messageOptions = []
1432
    ) {
1433 4
        $msgName = 'Ticket_InitRefund';
1434
1435 4
        return $this->callMessage($msgName, $options, $messageOptions);
1436
    }
1437
1438
    /**
1439
     * Ticket_IgnoreRefund
1440
     *
1441
     * @param RequestOptions\TicketIgnoreRefundOptions $options
1442
     * @param array $messageOptions (OPTIONAL)
1443
     * @return Result
1444
     * @throws Client\InvalidMessageException
1445
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1446
     * @throws Exception
1447
     */
1448 4
    public function ticketIgnoreRefund(
1449
        RequestOptions\TicketIgnoreRefundOptions $options,
1450
        $messageOptions = []
1451
    ) {
1452 4
        $msgName = 'Ticket_IgnoreRefund';
1453
1454 4
        return $this->callMessage($msgName, $options, $messageOptions);
1455
    }
1456
1457
    /**
1458
     * Ticket_ProcessRefund
1459
     *
1460
     * @param RequestOptions\TicketProcessRefundOptions $options
1461
     * @param array $messageOptions (OPTIONAL)
1462
     * @return Result
1463
     * @throws Client\InvalidMessageException
1464
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1465
     * @throws Exception
1466
     */
1467 4
    public function ticketProcessRefund(
1468
        RequestOptions\TicketProcessRefundOptions $options,
1469
        $messageOptions = []
1470
    ) {
1471 4
        $msgName = 'Ticket_ProcessRefund';
1472
1473 4
        return $this->callMessage($msgName, $options, $messageOptions);
1474
    }
1475
1476
    /**
1477
     * FOP_CreateFormOfPayment
1478
     *
1479
     * @param RequestOptions\FopCreateFopOptions $options
1480
     * @param array $messageOptions (OPTIONAL)
1481
     * @return Result
1482
     * @throws Client\InvalidMessageException
1483
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1484
     * @throws Exception
1485
     */
1486 4
    public function fopCreateFormOfPayment(RequestOptions\FopCreateFopOptions $options, $messageOptions = [])
1487
    {
1488 4
        $msgName = 'FOP_CreateFormOfPayment';
1489
1490 4
        return $this->callMessage($msgName, $options, $messageOptions);
1491
    }
1492
1493
1494
    /**
1495
     * FOP_CreateFormOfPayment
1496
     *
1497
     * @param RequestOptions\FopValidateFopOptions $options
1498
     * @param array $messageOptions (OPTIONAL)
1499
     * @return Result
1500
     * @throws Client\InvalidMessageException
1501
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1502
     * @throws Exception
1503
     */
1504 4
    public function fopValidateFOP(RequestOptions\FopValidateFopOptions $options, $messageOptions = [])
1505
    {
1506 4
        $msgName = 'FOP_ValidateFOP';
1507
1508 4
        return $this->callMessage($msgName, $options, $messageOptions);
1509
    }
1510
1511
    /**
1512
     * PriceXplorer_ExtremeSearch
1513
     *
1514
     * @param RequestOptions\PriceXplorerExtremeSearchOptions $options
1515
     * @param array $messageOptions (OPTIONAL)
1516
     * @return Result
1517
     * @throws Client\InvalidMessageException
1518
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1519
     * @throws Exception
1520
     */
1521 4
    public function priceXplorerExtremeSearch(
1522
        RequestOptions\PriceXplorerExtremeSearchOptions $options,
1523
        $messageOptions = []
1524
    ) {
1525 4
        $msgName = 'PriceXplorer_ExtremeSearch';
1526
1527 4
        return $this->callMessage($msgName, $options, $messageOptions);
1528
    }
1529
1530
    /**
1531
     * SalesReports_DisplayQueryReport
1532
     *
1533
     * @param RequestOptions\SalesReportsDisplayQueryReportOptions $options
1534
     * @param array $messageOptions (OPTIONAL)
1535
     * @return Result
1536
     * @throws Client\InvalidMessageException
1537
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1538
     * @throws Exception
1539
     */
1540 4
    public function salesReportsDisplayQueryReport(
1541
        RequestOptions\SalesReportsDisplayQueryReportOptions $options,
1542
        $messageOptions = []
1543
    ) {
1544 4
        $msgName = 'SalesReports_DisplayQueryReport';
1545
1546 4
        return $this->callMessage($msgName, $options, $messageOptions);
1547
    }
1548
1549
    /**
1550
     * Service_IntegratedPricing
1551
     *
1552
     * @param RequestOptions\ServiceIntegratedPricingOptions $options
1553
     * @param array $messageOptions (OPTIONAL)
1554
     * @return Result
1555
     * @throws Client\InvalidMessageException
1556
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1557
     * @throws Exception
1558
     */
1559 4
    public function serviceIntegratedPricing(
1560
        RequestOptions\ServiceIntegratedPricingOptions $options,
1561
        $messageOptions = []
1562
    ) {
1563 4
        $msgName = 'Service_IntegratedPricing';
1564
1565 4
        return $this->callMessage($msgName, $options, $messageOptions);
1566
    }
1567
1568
    /**
1569
     * Service_IntegratedCatalogue
1570
     *
1571
     * @param RequestOptions\ServiceIntegratedCatalogueOptions $options
1572
     * @param array $messageOptions (OPTIONAL)
1573
     * @return Result
1574
     * @throws Client\InvalidMessageException
1575
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1576
     * @throws Exception
1577
     */
1578 4
    public function serviceIntegratedCatalogue(
1579
        RequestOptions\ServiceIntegratedCatalogueOptions $options,
1580
        $messageOptions = []
1581
    ) {
1582 4
        $msgName = 'Service_IntegratedCatalogue';
1583
1584 4
        return $this->callMessage($msgName, $options, $messageOptions);
1585
    }
1586
1587
    /**
1588
     * SalesReports_DisplayorSummarizedReport
1589
     *
1590
     * @param RequestOptions\SalesReportsDisplayDailyOrSummarizedReportOptions $options
1591
     * @param array $messageOptions (OPTIONAL)
1592
     * @return Result
1593
     * @throws Client\InvalidMessageException
1594
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1595
     * @throws Exception
1596
     */
1597 4
    public function salesReportsDisplayDailyOrSummarizedReport(
1598
        RequestOptions\SalesReportsDisplayDailyOrSummarizedReportOptions $options,
1599
        $messageOptions = []
1600
    ) {
1601 4
        $msgName = 'SalesReports_DisplayDailyOrSummarizedReport';
1602
1603 4
        return $this->callMessage($msgName, $options, $messageOptions);
1604
    }
1605
1606
    /**
1607
     * SalesReports_DisplayNetRemitReport
1608
     *
1609
     * @param RequestOptions\SalesReportsDisplayNetRemitReportOptions $options
1610
     * @param array $messageOptions (OPTIONAL)
1611
     * @return Result
1612
     * @throws Client\InvalidMessageException
1613
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1614
     * @throws Exception
1615
     */
1616 4
    public function salesReportsDisplayNetRemitReport(
1617
        RequestOptions\SalesReportsDisplayNetRemitReportOptions $options,
1618
        $messageOptions = []
1619
    ) {
1620 4
        $msgName = 'SalesReports_DisplayNetRemitReport';
1621
1622 4
        return $this->callMessage($msgName, $options, $messageOptions);
1623
    }
1624
1625
    /**
1626
     * Call a message with the given parameters
1627
     *
1628
     * @param string $messageName
1629
     * @param RequestOptions\RequestOptionsInterface $options
1630
     * @param array $messageOptions
1631
     * @param bool $endSession
1632
     * @return Result
1633
     * @throws Client\Exception
1634
     * @throws Client\Struct\InvalidArgumentException
1635
     * @throws Client\InvalidMessageException
1636
     * @throws Client\RequestCreator\MessageVersionUnsupportedException
1637
     * @throws \RuntimeException
1638
     * @throws \InvalidArgumentException
1639
     */
1640 336
    protected function callMessage($messageName, $options, $messageOptions, $endSession = false)
1641
    {
1642 336
        $messageOptions = $this->makeMessageOptions($messageOptions, $endSession);
1643
1644 336
        $this->lastMessage = $messageName;
1645
1646 336
        $sendResult = $this->sessionHandler->sendMessage(
1647 336
            $messageName,
1648 336
            $this->requestCreator->createRequest(
1649 336
                $messageName,
1650 168
                $options
1651 168
            ),
1652 168
            $messageOptions
1653 168
        );
1654
1655 336
        $response = $this->responseHandler->analyzeResponse(
1656 336
            $sendResult,
1657 168
            $messageName
1658 168
        );
1659
1660 336
        if ($messageOptions['returnXml'] === false) {
1661 4
            $response->responseXml = null;
1662 2
        }
1663
1664 336
        return $response;
1665
    }
1666
1667
    /**
1668
     * Make message options
1669
     *
1670
     * Message options are meta options when sending a message to the amadeus web services
1671
     * - 'endSession' (if stateful) : should we end the current session after sending this call?
1672
     * - 'returnXml' : Should we return the XML string in the Result::responseXml property?
1673
     *   (this overrides the default setting returnXml in the Amadeus\Client\Params for a single message)
1674
     *
1675
     * @param array $incoming The Message options chosen by the caller - if any.
1676
     * @param bool $endSession Switch if you want to terminate the current session after making the call.
1677
     * @return array
1678
     */
1679 360
    protected function makeMessageOptions(array $incoming, $endSession = false)
1680
    {
1681
        $options = [
1682 360
            'endSession' => $endSession,
1683 360
            'returnXml' => $this->returnResultXml
1684 180
        ];
1685
1686 360
        if (array_key_exists('endSession', $incoming)) {
1687 4
            $options['endSession'] = $incoming['endSession'];
1688 2
        }
1689
1690 360
        if (array_key_exists('returnXml', $incoming)) {
1691 12
            $options['returnXml'] = $incoming['returnXml'];
1692 6
        }
1693
1694 360
        return $options;
1695
    }
1696
}
1697