<?php
namespace Aws\Exception;

use Aws\HasMonitoringEventsTrait;
use Aws\MonitoringEventsInterface;
use Aws\Multipart\UploadState;

class MultipartUploadException extends \RuntimeException implements
    MonitoringEventsInterface
{
    use HasMonitoringEventsTrait;

    /** @var UploadState State of the erroneous transfer */
    private $state;

    /**
     * @param UploadState      $state Upload state at time of the exception.
     * @param \Exception|array $prev  Exception being thrown.
     */
    public function __construct(UploadState $state, $prev = null) {
        $msg = 'An exception occurred while performing a multipart upload';

        if (is_array($prev)) {
            $msg = strtr($msg, ['performing' => 'uploading parts to']);
            $msg .= ". The following parts had errors:\n";
            /** @var $error AwsException */
            foreach ($prev as $part => $error) {
                $msg .= "- Part {$part}: " . $error->getMessage(). "\n";
            }
        } elseif ($prev instanceof AwsException) {
            switch ($prev->getCommand()->getName()) {
                case 'CreateMultipartUpload':
                case 'InitiateMultipartUpload':
                    $action = 'initiating';
                    break;
                case 'CompleteMultipartUpload':
                    $action = 'completing';
                    break;
            }
            if (isset($action)) {
                $msg = strtr($msg, ['performing' => $action]);
            }
            $msg .= ": {$prev->getMessage()}";
        }

        if (!$prev instanceof \Exception) {
            $prev = null;
        }

        parent::__construct($msg, 0, $prev);
        $this->state = $state;
    }

    /**
     * Get the state of the transfer
     *
     * @return UploadState
     */
    public function getState()
    {
        return $this->state;
    }
}


<?php
namespace Aws\Exception;

use Aws\HasMonitoringEventsTrait;
use Aws\MonitoringEventsInterface;

class TokenException extends \RuntimeException implements
    MonitoringEventsInterface
{
    use HasMonitoringEventsTrait;
}


<?php
namespace Aws\Exception;

use Aws\HasMonitoringEventsTrait;
use Aws\MonitoringEventsInterface;

class UnresolvedApiException extends \RuntimeException implements
    MonitoringEventsInterface
{
    use HasMonitoringEventsTrait;
}


<?php
namespace Aws\Exception;

use Aws\HasMonitoringEventsTrait;
use Aws\MonitoringEventsInterface;

class UnresolvedEndpointException extends \RuntimeException implements
    MonitoringEventsInterface
{
    use HasMonitoringEventsTrait;
}


<?php
namespace Aws\Exception;

use Aws\HasMonitoringEventsTrait;
use Aws\MonitoringEventsInterface;

class UnresolvedSignatureException extends \RuntimeException implements
    MonitoringEventsInterface
{
    use HasMonitoringEventsTrait;
}


<?php
namespace Aws\FinSpaceData;

use Aws\AwsClient;
use Aws\CommandInterface;
use Psr\Http\Message\RequestInterface;

/**
 * This client is used to interact with the **FinSpace Public API** service.
 * @method \Aws\Result associateUserToPermissionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateUserToPermissionGroupAsync(array $args = [])
 * @method \Aws\Result createChangeset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createChangesetAsync(array $args = [])
 * @method \Aws\Result createDataView(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDataViewAsync(array $args = [])
 * @method \Aws\Result createDataset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDatasetAsync(array $args = [])
 * @method \Aws\Result createPermissionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createPermissionGroupAsync(array $args = [])
 * @method \Aws\Result createUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = [])
 * @method \Aws\Result deleteDataset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDatasetAsync(array $args = [])
 * @method \Aws\Result deletePermissionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deletePermissionGroupAsync(array $args = [])
 * @method \Aws\Result disableUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disableUserAsync(array $args = [])
 * @method \Aws\Result disassociateUserFromPermissionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateUserFromPermissionGroupAsync(array $args = [])
 * @method \Aws\Result enableUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise enableUserAsync(array $args = [])
 * @method \Aws\Result getChangeset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getChangesetAsync(array $args = [])
 * @method \Aws\Result getDataView(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDataViewAsync(array $args = [])
 * @method \Aws\Result getDataset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDatasetAsync(array $args = [])
 * @method \Aws\Result getExternalDataViewAccessDetails(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getExternalDataViewAccessDetailsAsync(array $args = [])
 * @method \Aws\Result getPermissionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getPermissionGroupAsync(array $args = [])
 * @method \Aws\Result getProgrammaticAccessCredentials(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getProgrammaticAccessCredentialsAsync(array $args = [])
 * @method \Aws\Result getUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getUserAsync(array $args = [])
 * @method \Aws\Result getWorkingLocation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getWorkingLocationAsync(array $args = [])
 * @method \Aws\Result listChangesets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listChangesetsAsync(array $args = [])
 * @method \Aws\Result listDataViews(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDataViewsAsync(array $args = [])
 * @method \Aws\Result listDatasets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDatasetsAsync(array $args = [])
 * @method \Aws\Result listPermissionGroups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPermissionGroupsAsync(array $args = [])
 * @method \Aws\Result listPermissionGroupsByUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPermissionGroupsByUserAsync(array $args = [])
 * @method \Aws\Result listUsers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = [])
 * @method \Aws\Result listUsersByPermissionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listUsersByPermissionGroupAsync(array $args = [])
 * @method \Aws\Result resetUserPassword(array $args = [])
 * @method \GuzzleHttp\Promise\Promise resetUserPasswordAsync(array $args = [])
 * @method \Aws\Result updateChangeset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateChangesetAsync(array $args = [])
 * @method \Aws\Result updateDataset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDatasetAsync(array $args = [])
 * @method \Aws\Result updatePermissionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updatePermissionGroupAsync(array $args = [])
 * @method \Aws\Result updateUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateUserAsync(array $args = [])
 */
class FinSpaceDataClient extends AwsClient {}


<?php
namespace Aws\FinSpaceData\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **FinSpace Public API** service.
 */
class FinSpaceDataException extends AwsException {}


<?php
namespace Aws\Firehose;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Kinesis Firehose** service.
 *
 * @method \Aws\Result createDeliveryStream(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDeliveryStreamAsync(array $args = [])
 * @method \Aws\Result deleteDeliveryStream(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDeliveryStreamAsync(array $args = [])
 * @method \Aws\Result describeDeliveryStream(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDeliveryStreamAsync(array $args = [])
 * @method \Aws\Result listDeliveryStreams(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDeliveryStreamsAsync(array $args = [])
 * @method \Aws\Result listTagsForDeliveryStream(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForDeliveryStreamAsync(array $args = [])
 * @method \Aws\Result putRecord(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putRecordAsync(array $args = [])
 * @method \Aws\Result putRecordBatch(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putRecordBatchAsync(array $args = [])
 * @method \Aws\Result startDeliveryStreamEncryption(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startDeliveryStreamEncryptionAsync(array $args = [])
 * @method \Aws\Result stopDeliveryStreamEncryption(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopDeliveryStreamEncryptionAsync(array $args = [])
 * @method \Aws\Result tagDeliveryStream(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagDeliveryStreamAsync(array $args = [])
 * @method \Aws\Result untagDeliveryStream(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagDeliveryStreamAsync(array $args = [])
 * @method \Aws\Result updateDestination(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDestinationAsync(array $args = [])
 */
class FirehoseClient extends AwsClient {}


<?php
namespace Aws\Firehose\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon Kinesis Firehose** service.
 */
class FirehoseException extends AwsException {}


<?php
namespace Aws\FIS;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Fault Injection Simulator** service.
 * @method \Aws\Result createExperimentTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createExperimentTemplateAsync(array $args = [])
 * @method \Aws\Result deleteExperimentTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteExperimentTemplateAsync(array $args = [])
 * @method \Aws\Result getAction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getActionAsync(array $args = [])
 * @method \Aws\Result getExperiment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getExperimentAsync(array $args = [])
 * @method \Aws\Result getExperimentTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getExperimentTemplateAsync(array $args = [])
 * @method \Aws\Result getTargetResourceType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getTargetResourceTypeAsync(array $args = [])
 * @method \Aws\Result listActions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listActionsAsync(array $args = [])
 * @method \Aws\Result listExperimentTemplates(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listExperimentTemplatesAsync(array $args = [])
 * @method \Aws\Result listExperiments(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listExperimentsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result listTargetResourceTypes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTargetResourceTypesAsync(array $args = [])
 * @method \Aws\Result startExperiment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startExperimentAsync(array $args = [])
 * @method \Aws\Result stopExperiment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopExperimentAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 * @method \Aws\Result updateExperimentTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateExperimentTemplateAsync(array $args = [])
 */
class FISClient extends AwsClient {}


<?php
namespace Aws\FIS\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Fault Injection Simulator** service.
 */
class FISException extends AwsException {}


<?php
namespace Aws\FMS;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Firewall Management Service** service.
 * @method \Aws\Result associateAdminAccount(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateAdminAccountAsync(array $args = [])
 * @method \Aws\Result associateThirdPartyFirewall(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateThirdPartyFirewallAsync(array $args = [])
 * @method \Aws\Result batchAssociateResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchAssociateResourceAsync(array $args = [])
 * @method \Aws\Result batchDisassociateResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchDisassociateResourceAsync(array $args = [])
 * @method \Aws\Result deleteAppsList(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAppsListAsync(array $args = [])
 * @method \Aws\Result deleteNotificationChannel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteNotificationChannelAsync(array $args = [])
 * @method \Aws\Result deletePolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deletePolicyAsync(array $args = [])
 * @method \Aws\Result deleteProtocolsList(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteProtocolsListAsync(array $args = [])
 * @method \Aws\Result deleteResourceSet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteResourceSetAsync(array $args = [])
 * @method \Aws\Result disassociateAdminAccount(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateAdminAccountAsync(array $args = [])
 * @method \Aws\Result disassociateThirdPartyFirewall(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateThirdPartyFirewallAsync(array $args = [])
 * @method \Aws\Result getAdminAccount(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAdminAccountAsync(array $args = [])
 * @method \Aws\Result getAdminScope(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAdminScopeAsync(array $args = [])
 * @method \Aws\Result getAppsList(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAppsListAsync(array $args = [])
 * @method \Aws\Result getComplianceDetail(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getComplianceDetailAsync(array $args = [])
 * @method \Aws\Result getNotificationChannel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getNotificationChannelAsync(array $args = [])
 * @method \Aws\Result getPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getPolicyAsync(array $args = [])
 * @method \Aws\Result getProtectionStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getProtectionStatusAsync(array $args = [])
 * @method \Aws\Result getProtocolsList(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getProtocolsListAsync(array $args = [])
 * @method \Aws\Result getResourceSet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getResourceSetAsync(array $args = [])
 * @method \Aws\Result getThirdPartyFirewallAssociationStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getThirdPartyFirewallAssociationStatusAsync(array $args = [])
 * @method \Aws\Result getViolationDetails(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getViolationDetailsAsync(array $args = [])
 * @method \Aws\Result listAdminAccountsForOrganization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAdminAccountsForOrganizationAsync(array $args = [])
 * @method \Aws\Result listAdminsManagingAccount(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAdminsManagingAccountAsync(array $args = [])
 * @method \Aws\Result listAppsLists(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAppsListsAsync(array $args = [])
 * @method \Aws\Result listComplianceStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listComplianceStatusAsync(array $args = [])
 * @method \Aws\Result listDiscoveredResources(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDiscoveredResourcesAsync(array $args = [])
 * @method \Aws\Result listMemberAccounts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listMemberAccountsAsync(array $args = [])
 * @method \Aws\Result listPolicies(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPoliciesAsync(array $args = [])
 * @method \Aws\Result listProtocolsLists(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listProtocolsListsAsync(array $args = [])
 * @method \Aws\Result listResourceSetResources(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listResourceSetResourcesAsync(array $args = [])
 * @method \Aws\Result listResourceSets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listResourceSetsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result listThirdPartyFirewallFirewallPolicies(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listThirdPartyFirewallFirewallPoliciesAsync(array $args = [])
 * @method \Aws\Result putAdminAccount(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putAdminAccountAsync(array $args = [])
 * @method \Aws\Result putAppsList(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putAppsListAsync(array $args = [])
 * @method \Aws\Result putNotificationChannel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putNotificationChannelAsync(array $args = [])
 * @method \Aws\Result putPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putPolicyAsync(array $args = [])
 * @method \Aws\Result putProtocolsList(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putProtocolsListAsync(array $args = [])
 * @method \Aws\Result putResourceSet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putResourceSetAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 */
class FMSClient extends AwsClient {}


<?php
namespace Aws\FMS\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Firewall Management Service** service.
 */
class FMSException extends AwsException {}


<?php
namespace Aws\ForecastQueryService;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Forecast Query Service** service.
 * @method \Aws\Result queryForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise queryForecastAsync(array $args = [])
 * @method \Aws\Result queryWhatIfForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise queryWhatIfForecastAsync(array $args = [])
 */
class ForecastQueryServiceClient extends AwsClient {}


<?php
namespace Aws\ForecastQueryService\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon Forecast Query Service** service.
 */
class ForecastQueryServiceException extends AwsException {}


<?php
namespace Aws\ForecastService;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Forecast Service** service.
 * @method \Aws\Result createAutoPredictor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAutoPredictorAsync(array $args = [])
 * @method \Aws\Result createDataset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDatasetAsync(array $args = [])
 * @method \Aws\Result createDatasetGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDatasetGroupAsync(array $args = [])
 * @method \Aws\Result createDatasetImportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDatasetImportJobAsync(array $args = [])
 * @method \Aws\Result createExplainability(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createExplainabilityAsync(array $args = [])
 * @method \Aws\Result createExplainabilityExport(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createExplainabilityExportAsync(array $args = [])
 * @method \Aws\Result createForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createForecastAsync(array $args = [])
 * @method \Aws\Result createForecastExportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createForecastExportJobAsync(array $args = [])
 * @method \Aws\Result createMonitor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createMonitorAsync(array $args = [])
 * @method \Aws\Result createPredictor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createPredictorAsync(array $args = [])
 * @method \Aws\Result createPredictorBacktestExportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createPredictorBacktestExportJobAsync(array $args = [])
 * @method \Aws\Result createWhatIfAnalysis(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createWhatIfAnalysisAsync(array $args = [])
 * @method \Aws\Result createWhatIfForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createWhatIfForecastAsync(array $args = [])
 * @method \Aws\Result createWhatIfForecastExport(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createWhatIfForecastExportAsync(array $args = [])
 * @method \Aws\Result deleteDataset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDatasetAsync(array $args = [])
 * @method \Aws\Result deleteDatasetGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDatasetGroupAsync(array $args = [])
 * @method \Aws\Result deleteDatasetImportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDatasetImportJobAsync(array $args = [])
 * @method \Aws\Result deleteExplainability(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteExplainabilityAsync(array $args = [])
 * @method \Aws\Result deleteExplainabilityExport(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteExplainabilityExportAsync(array $args = [])
 * @method \Aws\Result deleteForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteForecastAsync(array $args = [])
 * @method \Aws\Result deleteForecastExportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteForecastExportJobAsync(array $args = [])
 * @method \Aws\Result deleteMonitor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteMonitorAsync(array $args = [])
 * @method \Aws\Result deletePredictor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deletePredictorAsync(array $args = [])
 * @method \Aws\Result deletePredictorBacktestExportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deletePredictorBacktestExportJobAsync(array $args = [])
 * @method \Aws\Result deleteResourceTree(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteResourceTreeAsync(array $args = [])
 * @method \Aws\Result deleteWhatIfAnalysis(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteWhatIfAnalysisAsync(array $args = [])
 * @method \Aws\Result deleteWhatIfForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteWhatIfForecastAsync(array $args = [])
 * @method \Aws\Result deleteWhatIfForecastExport(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteWhatIfForecastExportAsync(array $args = [])
 * @method \Aws\Result describeAutoPredictor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAutoPredictorAsync(array $args = [])
 * @method \Aws\Result describeDataset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDatasetAsync(array $args = [])
 * @method \Aws\Result describeDatasetGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDatasetGroupAsync(array $args = [])
 * @method \Aws\Result describeDatasetImportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDatasetImportJobAsync(array $args = [])
 * @method \Aws\Result describeExplainability(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeExplainabilityAsync(array $args = [])
 * @method \Aws\Result describeExplainabilityExport(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeExplainabilityExportAsync(array $args = [])
 * @method \Aws\Result describeForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeForecastAsync(array $args = [])
 * @method \Aws\Result describeForecastExportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeForecastExportJobAsync(array $args = [])
 * @method \Aws\Result describeMonitor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeMonitorAsync(array $args = [])
 * @method \Aws\Result describePredictor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describePredictorAsync(array $args = [])
 * @method \Aws\Result describePredictorBacktestExportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describePredictorBacktestExportJobAsync(array $args = [])
 * @method \Aws\Result describeWhatIfAnalysis(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeWhatIfAnalysisAsync(array $args = [])
 * @method \Aws\Result describeWhatIfForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeWhatIfForecastAsync(array $args = [])
 * @method \Aws\Result describeWhatIfForecastExport(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeWhatIfForecastExportAsync(array $args = [])
 * @method \Aws\Result getAccuracyMetrics(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAccuracyMetricsAsync(array $args = [])
 * @method \Aws\Result listDatasetGroups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDatasetGroupsAsync(array $args = [])
 * @method \Aws\Result listDatasetImportJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDatasetImportJobsAsync(array $args = [])
 * @method \Aws\Result listDatasets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDatasetsAsync(array $args = [])
 * @method \Aws\Result listExplainabilities(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listExplainabilitiesAsync(array $args = [])
 * @method \Aws\Result listExplainabilityExports(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listExplainabilityExportsAsync(array $args = [])
 * @method \Aws\Result listForecastExportJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listForecastExportJobsAsync(array $args = [])
 * @method \Aws\Result listForecasts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listForecastsAsync(array $args = [])
 * @method \Aws\Result listMonitorEvaluations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listMonitorEvaluationsAsync(array $args = [])
 * @method \Aws\Result listMonitors(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listMonitorsAsync(array $args = [])
 * @method \Aws\Result listPredictorBacktestExportJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPredictorBacktestExportJobsAsync(array $args = [])
 * @method \Aws\Result listPredictors(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPredictorsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result listWhatIfAnalyses(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listWhatIfAnalysesAsync(array $args = [])
 * @method \Aws\Result listWhatIfForecastExports(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listWhatIfForecastExportsAsync(array $args = [])
 * @method \Aws\Result listWhatIfForecasts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listWhatIfForecastsAsync(array $args = [])
 * @method \Aws\Result resumeResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise resumeResourceAsync(array $args = [])
 * @method \Aws\Result stopResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopResourceAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 * @method \Aws\Result updateDatasetGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDatasetGroupAsync(array $args = [])
 */
class ForecastServiceClient extends AwsClient {}


<?php
namespace Aws\ForecastService\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon Forecast Service** service.
 */
class ForecastServiceException extends AwsException {}


<?php
namespace Aws\FraudDetector;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Fraud Detector** service.
 * @method \Aws\Result batchCreateVariable(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchCreateVariableAsync(array $args = [])
 * @method \Aws\Result batchGetVariable(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchGetVariableAsync(array $args = [])
 * @method \Aws\Result cancelBatchImportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise cancelBatchImportJobAsync(array $args = [])
 * @method \Aws\Result cancelBatchPredictionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise cancelBatchPredictionJobAsync(array $args = [])
 * @method \Aws\Result createBatchImportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createBatchImportJobAsync(array $args = [])
 * @method \Aws\Result createBatchPredictionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createBatchPredictionJobAsync(array $args = [])
 * @method \Aws\Result createDetectorVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDetectorVersionAsync(array $args = [])
 * @method \Aws\Result createList(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createListAsync(array $args = [])
 * @method \Aws\Result createModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createModelAsync(array $args = [])
 * @method \Aws\Result createModelVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createModelVersionAsync(array $args = [])
 * @method \Aws\Result createRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createRuleAsync(array $args = [])
 * @method \Aws\Result createVariable(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVariableAsync(array $args = [])
 * @method \Aws\Result deleteBatchImportJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteBatchImportJobAsync(array $args = [])
 * @method \Aws\Result deleteBatchPredictionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteBatchPredictionJobAsync(array $args = [])
 * @method \Aws\Result deleteDetector(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDetectorAsync(array $args = [])
 * @method \Aws\Result deleteDetectorVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDetectorVersionAsync(array $args = [])
 * @method \Aws\Result deleteEntityType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEntityTypeAsync(array $args = [])
 * @method \Aws\Result deleteEvent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEventAsync(array $args = [])
 * @method \Aws\Result deleteEventType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEventTypeAsync(array $args = [])
 * @method \Aws\Result deleteEventsByEventType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEventsByEventTypeAsync(array $args = [])
 * @method \Aws\Result deleteExternalModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteExternalModelAsync(array $args = [])
 * @method \Aws\Result deleteLabel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteLabelAsync(array $args = [])
 * @method \Aws\Result deleteList(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteListAsync(array $args = [])
 * @method \Aws\Result deleteModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteModelAsync(array $args = [])
 * @method \Aws\Result deleteModelVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteModelVersionAsync(array $args = [])
 * @method \Aws\Result deleteOutcome(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteOutcomeAsync(array $args = [])
 * @method \Aws\Result deleteRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRuleAsync(array $args = [])
 * @method \Aws\Result deleteVariable(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVariableAsync(array $args = [])
 * @method \Aws\Result describeDetector(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDetectorAsync(array $args = [])
 * @method \Aws\Result describeModelVersions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeModelVersionsAsync(array $args = [])
 * @method \Aws\Result getBatchImportJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getBatchImportJobsAsync(array $args = [])
 * @method \Aws\Result getBatchPredictionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getBatchPredictionJobsAsync(array $args = [])
 * @method \Aws\Result getDeleteEventsByEventTypeStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDeleteEventsByEventTypeStatusAsync(array $args = [])
 * @method \Aws\Result getDetectorVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDetectorVersionAsync(array $args = [])
 * @method \Aws\Result getDetectors(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDetectorsAsync(array $args = [])
 * @method \Aws\Result getEntityTypes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEntityTypesAsync(array $args = [])
 * @method \Aws\Result getEvent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEventAsync(array $args = [])
 * @method \Aws\Result getEventPrediction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEventPredictionAsync(array $args = [])
 * @method \Aws\Result getEventPredictionMetadata(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEventPredictionMetadataAsync(array $args = [])
 * @method \Aws\Result getEventTypes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEventTypesAsync(array $args = [])
 * @method \Aws\Result getExternalModels(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getExternalModelsAsync(array $args = [])
 * @method \Aws\Result getKMSEncryptionKey(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getKMSEncryptionKeyAsync(array $args = [])
 * @method \Aws\Result getLabels(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getLabelsAsync(array $args = [])
 * @method \Aws\Result getListElements(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getListElementsAsync(array $args = [])
 * @method \Aws\Result getListsMetadata(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getListsMetadataAsync(array $args = [])
 * @method \Aws\Result getModelVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getModelVersionAsync(array $args = [])
 * @method \Aws\Result getModels(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getModelsAsync(array $args = [])
 * @method \Aws\Result getOutcomes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getOutcomesAsync(array $args = [])
 * @method \Aws\Result getRules(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getRulesAsync(array $args = [])
 * @method \Aws\Result getVariables(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getVariablesAsync(array $args = [])
 * @method \Aws\Result listEventPredictions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEventPredictionsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result putDetector(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putDetectorAsync(array $args = [])
 * @method \Aws\Result putEntityType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putEntityTypeAsync(array $args = [])
 * @method \Aws\Result putEventType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putEventTypeAsync(array $args = [])
 * @method \Aws\Result putExternalModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putExternalModelAsync(array $args = [])
 * @method \Aws\Result putKMSEncryptionKey(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putKMSEncryptionKeyAsync(array $args = [])
 * @method \Aws\Result putLabel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putLabelAsync(array $args = [])
 * @method \Aws\Result putOutcome(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putOutcomeAsync(array $args = [])
 * @method \Aws\Result sendEvent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise sendEventAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 * @method \Aws\Result updateDetectorVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDetectorVersionAsync(array $args = [])
 * @method \Aws\Result updateDetectorVersionMetadata(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDetectorVersionMetadataAsync(array $args = [])
 * @method \Aws\Result updateDetectorVersionStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDetectorVersionStatusAsync(array $args = [])
 * @method \Aws\Result updateEventLabel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateEventLabelAsync(array $args = [])
 * @method \Aws\Result updateList(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateListAsync(array $args = [])
 * @method \Aws\Result updateModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateModelAsync(array $args = [])
 * @method \Aws\Result updateModelVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateModelVersionAsync(array $args = [])
 * @method \Aws\Result updateModelVersionStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateModelVersionStatusAsync(array $args = [])
 * @method \Aws\Result updateRuleMetadata(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRuleMetadataAsync(array $args = [])
 * @method \Aws\Result updateRuleVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRuleVersionAsync(array $args = [])
 * @method \Aws\Result updateVariable(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateVariableAsync(array $args = [])
 */
class FraudDetectorClient extends AwsClient {}


<?php
namespace Aws\FraudDetector\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon Fraud Detector** service.
 */
class FraudDetectorException extends AwsException {}


<?php
namespace Aws\FSx;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon FSx** service.
 * @method \Aws\Result associateFileSystemAliases(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateFileSystemAliasesAsync(array $args = [])
 * @method \Aws\Result cancelDataRepositoryTask(array $args = [])
 * @method \GuzzleHttp\Promise\Promise cancelDataRepositoryTaskAsync(array $args = [])
 * @method \Aws\Result copyBackup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise copyBackupAsync(array $args = [])
 * @method \Aws\Result createBackup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createBackupAsync(array $args = [])
 * @method \Aws\Result createDataRepositoryAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDataRepositoryAssociationAsync(array $args = [])
 * @method \Aws\Result createDataRepositoryTask(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDataRepositoryTaskAsync(array $args = [])
 * @method \Aws\Result createFileCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFileCacheAsync(array $args = [])
 * @method \Aws\Result createFileSystem(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFileSystemAsync(array $args = [])
 * @method \Aws\Result createFileSystemFromBackup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFileSystemFromBackupAsync(array $args = [])
 * @method \Aws\Result createSnapshot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createSnapshotAsync(array $args = [])
 * @method \Aws\Result createStorageVirtualMachine(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createStorageVirtualMachineAsync(array $args = [])
 * @method \Aws\Result createVolume(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVolumeAsync(array $args = [])
 * @method \Aws\Result createVolumeFromBackup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVolumeFromBackupAsync(array $args = [])
 * @method \Aws\Result deleteBackup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteBackupAsync(array $args = [])
 * @method \Aws\Result deleteDataRepositoryAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDataRepositoryAssociationAsync(array $args = [])
 * @method \Aws\Result deleteFileCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteFileCacheAsync(array $args = [])
 * @method \Aws\Result deleteFileSystem(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteFileSystemAsync(array $args = [])
 * @method \Aws\Result deleteSnapshot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteSnapshotAsync(array $args = [])
 * @method \Aws\Result deleteStorageVirtualMachine(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteStorageVirtualMachineAsync(array $args = [])
 * @method \Aws\Result deleteVolume(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVolumeAsync(array $args = [])
 * @method \Aws\Result describeBackups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeBackupsAsync(array $args = [])
 * @method \Aws\Result describeDataRepositoryAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDataRepositoryAssociationsAsync(array $args = [])
 * @method \Aws\Result describeDataRepositoryTasks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDataRepositoryTasksAsync(array $args = [])
 * @method \Aws\Result describeFileCaches(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFileCachesAsync(array $args = [])
 * @method \Aws\Result describeFileSystemAliases(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFileSystemAliasesAsync(array $args = [])
 * @method \Aws\Result describeFileSystems(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFileSystemsAsync(array $args = [])
 * @method \Aws\Result describeSnapshots(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeSnapshotsAsync(array $args = [])
 * @method \Aws\Result describeStorageVirtualMachines(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeStorageVirtualMachinesAsync(array $args = [])
 * @method \Aws\Result describeVolumes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeVolumesAsync(array $args = [])
 * @method \Aws\Result disassociateFileSystemAliases(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateFileSystemAliasesAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result releaseFileSystemNfsV3Locks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise releaseFileSystemNfsV3LocksAsync(array $args = [])
 * @method \Aws\Result restoreVolumeFromSnapshot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise restoreVolumeFromSnapshotAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 * @method \Aws\Result updateDataRepositoryAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDataRepositoryAssociationAsync(array $args = [])
 * @method \Aws\Result updateFileCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFileCacheAsync(array $args = [])
 * @method \Aws\Result updateFileSystem(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFileSystemAsync(array $args = [])
 * @method \Aws\Result updateSnapshot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateSnapshotAsync(array $args = [])
 * @method \Aws\Result updateStorageVirtualMachine(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateStorageVirtualMachineAsync(array $args = [])
 * @method \Aws\Result updateVolume(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateVolumeAsync(array $args = [])
 */
class FSxClient extends AwsClient {}


<?php
namespace Aws\FSx\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon FSx** service.
 */
class FSxException extends AwsException {}


<?php
namespace Aws\GameLift;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon GameLift** service.
 *
 * @method \Aws\Result acceptMatch(array $args = [])
 * @method \GuzzleHttp\Promise\Promise acceptMatchAsync(array $args = [])
 * @method \Aws\Result claimGameServer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise claimGameServerAsync(array $args = [])
 * @method \Aws\Result createAlias(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAliasAsync(array $args = [])
 * @method \Aws\Result createBuild(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createBuildAsync(array $args = [])
 * @method \Aws\Result createFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFleetAsync(array $args = [])
 * @method \Aws\Result createFleetLocations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFleetLocationsAsync(array $args = [])
 * @method \Aws\Result createGameServerGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createGameServerGroupAsync(array $args = [])
 * @method \Aws\Result createGameSession(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createGameSessionAsync(array $args = [])
 * @method \Aws\Result createGameSessionQueue(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createGameSessionQueueAsync(array $args = [])
 * @method \Aws\Result createLocation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createLocationAsync(array $args = [])
 * @method \Aws\Result createMatchmakingConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createMatchmakingConfigurationAsync(array $args = [])
 * @method \Aws\Result createMatchmakingRuleSet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createMatchmakingRuleSetAsync(array $args = [])
 * @method \Aws\Result createPlayerSession(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createPlayerSessionAsync(array $args = [])
 * @method \Aws\Result createPlayerSessions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createPlayerSessionsAsync(array $args = [])
 * @method \Aws\Result createScript(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createScriptAsync(array $args = [])
 * @method \Aws\Result createVpcPeeringAuthorization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVpcPeeringAuthorizationAsync(array $args = [])
 * @method \Aws\Result createVpcPeeringConnection(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVpcPeeringConnectionAsync(array $args = [])
 * @method \Aws\Result deleteAlias(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAliasAsync(array $args = [])
 * @method \Aws\Result deleteBuild(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteBuildAsync(array $args = [])
 * @method \Aws\Result deleteFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteFleetAsync(array $args = [])
 * @method \Aws\Result deleteFleetLocations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteFleetLocationsAsync(array $args = [])
 * @method \Aws\Result deleteGameServerGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteGameServerGroupAsync(array $args = [])
 * @method \Aws\Result deleteGameSessionQueue(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteGameSessionQueueAsync(array $args = [])
 * @method \Aws\Result deleteLocation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteLocationAsync(array $args = [])
 * @method \Aws\Result deleteMatchmakingConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteMatchmakingConfigurationAsync(array $args = [])
 * @method \Aws\Result deleteMatchmakingRuleSet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteMatchmakingRuleSetAsync(array $args = [])
 * @method \Aws\Result deleteScalingPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteScalingPolicyAsync(array $args = [])
 * @method \Aws\Result deleteScript(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteScriptAsync(array $args = [])
 * @method \Aws\Result deleteVpcPeeringAuthorization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVpcPeeringAuthorizationAsync(array $args = [])
 * @method \Aws\Result deleteVpcPeeringConnection(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVpcPeeringConnectionAsync(array $args = [])
 * @method \Aws\Result deregisterCompute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deregisterComputeAsync(array $args = [])
 * @method \Aws\Result deregisterGameServer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deregisterGameServerAsync(array $args = [])
 * @method \Aws\Result describeAlias(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAliasAsync(array $args = [])
 * @method \Aws\Result describeBuild(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeBuildAsync(array $args = [])
 * @method \Aws\Result describeCompute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeComputeAsync(array $args = [])
 * @method \Aws\Result describeEC2InstanceLimits(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeEC2InstanceLimitsAsync(array $args = [])
 * @method \Aws\Result describeFleetAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFleetAttributesAsync(array $args = [])
 * @method \Aws\Result describeFleetCapacity(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFleetCapacityAsync(array $args = [])
 * @method \Aws\Result describeFleetEvents(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFleetEventsAsync(array $args = [])
 * @method \Aws\Result describeFleetLocationAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFleetLocationAttributesAsync(array $args = [])
 * @method \Aws\Result describeFleetLocationCapacity(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFleetLocationCapacityAsync(array $args = [])
 * @method \Aws\Result describeFleetLocationUtilization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFleetLocationUtilizationAsync(array $args = [])
 * @method \Aws\Result describeFleetPortSettings(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFleetPortSettingsAsync(array $args = [])
 * @method \Aws\Result describeFleetUtilization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFleetUtilizationAsync(array $args = [])
 * @method \Aws\Result describeGameServer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeGameServerAsync(array $args = [])
 * @method \Aws\Result describeGameServerGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeGameServerGroupAsync(array $args = [])
 * @method \Aws\Result describeGameServerInstances(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeGameServerInstancesAsync(array $args = [])
 * @method \Aws\Result describeGameSessionDetails(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeGameSessionDetailsAsync(array $args = [])
 * @method \Aws\Result describeGameSessionPlacement(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeGameSessionPlacementAsync(array $args = [])
 * @method \Aws\Result describeGameSessionQueues(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeGameSessionQueuesAsync(array $args = [])
 * @method \Aws\Result describeGameSessions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeGameSessionsAsync(array $args = [])
 * @method \Aws\Result describeInstances(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeInstancesAsync(array $args = [])
 * @method \Aws\Result describeMatchmaking(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeMatchmakingAsync(array $args = [])
 * @method \Aws\Result describeMatchmakingConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeMatchmakingConfigurationsAsync(array $args = [])
 * @method \Aws\Result describeMatchmakingRuleSets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeMatchmakingRuleSetsAsync(array $args = [])
 * @method \Aws\Result describePlayerSessions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describePlayerSessionsAsync(array $args = [])
 * @method \Aws\Result describeRuntimeConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRuntimeConfigurationAsync(array $args = [])
 * @method \Aws\Result describeScalingPolicies(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeScalingPoliciesAsync(array $args = [])
 * @method \Aws\Result describeScript(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeScriptAsync(array $args = [])
 * @method \Aws\Result describeVpcPeeringAuthorizations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeVpcPeeringAuthorizationsAsync(array $args = [])
 * @method \Aws\Result describeVpcPeeringConnections(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeVpcPeeringConnectionsAsync(array $args = [])
 * @method \Aws\Result getComputeAccess(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getComputeAccessAsync(array $args = [])
 * @method \Aws\Result getComputeAuthToken(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getComputeAuthTokenAsync(array $args = [])
 * @method \Aws\Result getGameSessionLogUrl(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getGameSessionLogUrlAsync(array $args = [])
 * @method \Aws\Result getInstanceAccess(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getInstanceAccessAsync(array $args = [])
 * @method \Aws\Result listAliases(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAliasesAsync(array $args = [])
 * @method \Aws\Result listBuilds(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listBuildsAsync(array $args = [])
 * @method \Aws\Result listCompute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listComputeAsync(array $args = [])
 * @method \Aws\Result listFleets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listFleetsAsync(array $args = [])
 * @method \Aws\Result listGameServerGroups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listGameServerGroupsAsync(array $args = [])
 * @method \Aws\Result listGameServers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listGameServersAsync(array $args = [])
 * @method \Aws\Result listLocations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listLocationsAsync(array $args = [])
 * @method \Aws\Result listScripts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listScriptsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result putScalingPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putScalingPolicyAsync(array $args = [])
 * @method \Aws\Result registerCompute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise registerComputeAsync(array $args = [])
 * @method \Aws\Result registerGameServer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise registerGameServerAsync(array $args = [])
 * @method \Aws\Result requestUploadCredentials(array $args = [])
 * @method \GuzzleHttp\Promise\Promise requestUploadCredentialsAsync(array $args = [])
 * @method \Aws\Result resolveAlias(array $args = [])
 * @method \GuzzleHttp\Promise\Promise resolveAliasAsync(array $args = [])
 * @method \Aws\Result resumeGameServerGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise resumeGameServerGroupAsync(array $args = [])
 * @method \Aws\Result searchGameSessions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchGameSessionsAsync(array $args = [])
 * @method \Aws\Result startFleetActions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startFleetActionsAsync(array $args = [])
 * @method \Aws\Result startGameSessionPlacement(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startGameSessionPlacementAsync(array $args = [])
 * @method \Aws\Result startMatchBackfill(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startMatchBackfillAsync(array $args = [])
 * @method \Aws\Result startMatchmaking(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startMatchmakingAsync(array $args = [])
 * @method \Aws\Result stopFleetActions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopFleetActionsAsync(array $args = [])
 * @method \Aws\Result stopGameSessionPlacement(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopGameSessionPlacementAsync(array $args = [])
 * @method \Aws\Result stopMatchmaking(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopMatchmakingAsync(array $args = [])
 * @method \Aws\Result suspendGameServerGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise suspendGameServerGroupAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 * @method \Aws\Result updateAlias(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAliasAsync(array $args = [])
 * @method \Aws\Result updateBuild(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateBuildAsync(array $args = [])
 * @method \Aws\Result updateFleetAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFleetAttributesAsync(array $args = [])
 * @method \Aws\Result updateFleetCapacity(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFleetCapacityAsync(array $args = [])
 * @method \Aws\Result updateFleetPortSettings(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFleetPortSettingsAsync(array $args = [])
 * @method \Aws\Result updateGameServer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateGameServerAsync(array $args = [])
 * @method \Aws\Result updateGameServerGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateGameServerGroupAsync(array $args = [])
 * @method \Aws\Result updateGameSession(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateGameSessionAsync(array $args = [])
 * @method \Aws\Result updateGameSessionQueue(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateGameSessionQueueAsync(array $args = [])
 * @method \Aws\Result updateMatchmakingConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateMatchmakingConfigurationAsync(array $args = [])
 * @method \Aws\Result updateRuntimeConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRuntimeConfigurationAsync(array $args = [])
 * @method \Aws\Result updateScript(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateScriptAsync(array $args = [])
 * @method \Aws\Result validateMatchmakingRuleSet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise validateMatchmakingRuleSetAsync(array $args = [])
 */
class GameLiftClient extends AwsClient {}


<?php
namespace Aws\GameLift\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon GameLift** service.
 */
class GameLiftException extends AwsException {}


<?php
namespace Aws\GameSparks;

use Aws\AwsClient;

/**
 * This client is used to interact with the **GameSparks** service.
 * @method \Aws\Result createGame(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createGameAsync(array $args = [])
 * @method \Aws\Result createSnapshot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createSnapshotAsync(array $args = [])
 * @method \Aws\Result createStage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createStageAsync(array $args = [])
 * @method \Aws\Result deleteGame(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteGameAsync(array $args = [])
 * @method \Aws\Result deleteStage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteStageAsync(array $args = [])
 * @method \Aws\Result disconnectPlayer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disconnectPlayerAsync(array $args = [])
 * @method \Aws\Result exportSnapshot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise exportSnapshotAsync(array $args = [])
 * @method \Aws\Result getExtension(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getExtensionAsync(array $args = [])
 * @method \Aws\Result getExtensionVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getExtensionVersionAsync(array $args = [])
 * @method \Aws\Result getGame(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getGameAsync(array $args = [])
 * @method \Aws\Result getGameConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getGameConfigurationAsync(array $args = [])
 * @method \Aws\Result getGeneratedCodeJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getGeneratedCodeJobAsync(array $args = [])
 * @method \Aws\Result getPlayerConnectionStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getPlayerConnectionStatusAsync(array $args = [])
 * @method \Aws\Result getSnapshot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getSnapshotAsync(array $args = [])
 * @method \Aws\Result getStage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getStageAsync(array $args = [])
 * @method \Aws\Result getStageDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getStageDeploymentAsync(array $args = [])
 * @method \Aws\Result importGameConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise importGameConfigurationAsync(array $args = [])
 * @method \Aws\Result listExtensionVersions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listExtensionVersionsAsync(array $args = [])
 * @method \Aws\Result listExtensions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listExtensionsAsync(array $args = [])
 * @method \Aws\Result listGames(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listGamesAsync(array $args = [])
 * @method \Aws\Result listGeneratedCodeJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listGeneratedCodeJobsAsync(array $args = [])
 * @method \Aws\Result listSnapshots(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listSnapshotsAsync(array $args = [])
 * @method \Aws\Result listStageDeployments(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listStageDeploymentsAsync(array $args = [])
 * @method \Aws\Result listStages(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listStagesAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result startGeneratedCodeJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startGeneratedCodeJobAsync(array $args = [])
 * @method \Aws\Result startStageDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startStageDeploymentAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 * @method \Aws\Result updateGame(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateGameAsync(array $args = [])
 * @method \Aws\Result updateGameConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateGameConfigurationAsync(array $args = [])
 * @method \Aws\Result updateSnapshot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateSnapshotAsync(array $args = [])
 * @method \Aws\Result updateStage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateStageAsync(array $args = [])
 */
class GameSparksClient extends AwsClient {}


<?php
namespace Aws\GameSparks\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **GameSparks** service.
 */
class GameSparksException extends AwsException {}


<?php
namespace Aws\Glacier;

use Aws\Api\ApiProvider;
use Aws\Api\DocModel;
use Aws\Api\Service;
use Aws\AwsClient;
use Aws\CommandInterface;
use Aws\Exception\CouldNotCreateChecksumException;
use Aws\HashingStream;
use Aws\Middleware;
use Aws\PhpHash;
use Psr\Http\Message\RequestInterface;

/**
 * This client is used to interact with the **Amazon Glacier** service.
 *
 * @method \Aws\Result abortMultipartUpload(array $args = [])
 * @method \GuzzleHttp\Promise\Promise abortMultipartUploadAsync(array $args = [])
 * @method \Aws\Result abortVaultLock(array $args = [])
 * @method \GuzzleHttp\Promise\Promise abortVaultLockAsync(array $args = [])
 * @method \Aws\Result addTagsToVault(array $args = [])
 * @method \GuzzleHttp\Promise\Promise addTagsToVaultAsync(array $args = [])
 * @method \Aws\Result completeMultipartUpload(array $args = [])
 * @method \GuzzleHttp\Promise\Promise completeMultipartUploadAsync(array $args = [])
 * @method \Aws\Result completeVaultLock(array $args = [])
 * @method \GuzzleHttp\Promise\Promise completeVaultLockAsync(array $args = [])
 * @method \Aws\Result createVault(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVaultAsync(array $args = [])
 * @method \Aws\Result deleteArchive(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteArchiveAsync(array $args = [])
 * @method \Aws\Result deleteVault(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVaultAsync(array $args = [])
 * @method \Aws\Result deleteVaultAccessPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVaultAccessPolicyAsync(array $args = [])
 * @method \Aws\Result deleteVaultNotifications(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVaultNotificationsAsync(array $args = [])
 * @method \Aws\Result describeJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeJobAsync(array $args = [])
 * @method \Aws\Result describeVault(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeVaultAsync(array $args = [])
 * @method \Aws\Result getDataRetrievalPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDataRetrievalPolicyAsync(array $args = [])
 * @method \Aws\Result getJobOutput(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getJobOutputAsync(array $args = [])
 * @method \Aws\Result getVaultAccessPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getVaultAccessPolicyAsync(array $args = [])
 * @method \Aws\Result getVaultLock(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getVaultLockAsync(array $args = [])
 * @method \Aws\Result getVaultNotifications(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getVaultNotificationsAsync(array $args = [])
 * @method \Aws\Result initiateJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise initiateJobAsync(array $args = [])
 * @method \Aws\Result initiateMultipartUpload(array $args = [])
 * @method \GuzzleHttp\Promise\Promise initiateMultipartUploadAsync(array $args = [])
 * @method \Aws\Result initiateVaultLock(array $args = [])
 * @method \GuzzleHttp\Promise\Promise initiateVaultLockAsync(array $args = [])
 * @method \Aws\Result listJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listJobsAsync(array $args = [])
 * @method \Aws\Result listMultipartUploads(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listMultipartUploadsAsync(array $args = [])
 * @method \Aws\Result listParts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPartsAsync(array $args = [])
 * @method \Aws\Result listProvisionedCapacity(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listProvisionedCapacityAsync(array $args = [])
 * @method \Aws\Result listTagsForVault(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForVaultAsync(array $args = [])
 * @method \Aws\Result listVaults(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listVaultsAsync(array $args = [])
 * @method \Aws\Result purchaseProvisionedCapacity(array $args = [])
 * @method \GuzzleHttp\Promise\Promise purchaseProvisionedCapacityAsync(array $args = [])
 * @method \Aws\Result removeTagsFromVault(array $args = [])
 * @method \GuzzleHttp\Promise\Promise removeTagsFromVaultAsync(array $args = [])
 * @method \Aws\Result setDataRetrievalPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise setDataRetrievalPolicyAsync(array $args = [])
 * @method \Aws\Result setVaultAccessPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise setVaultAccessPolicyAsync(array $args = [])
 * @method \Aws\Result setVaultNotifications(array $args = [])
 * @method \GuzzleHttp\Promise\Promise setVaultNotificationsAsync(array $args = [])
 * @method \Aws\Result uploadArchive(array $args = [])
 * @method \GuzzleHttp\Promise\Promise uploadArchiveAsync(array $args = [])
 * @method \Aws\Result uploadMultipartPart(array $args = [])
 * @method \GuzzleHttp\Promise\Promise uploadMultipartPartAsync(array $args = [])
 */
class GlacierClient extends AwsClient
{
    public function __construct(array $args)
    {
        parent::__construct($args);

        // Setup middleware.
        $stack = $this->getHandlerList();
        $stack->appendBuild($this->getApiVersionMiddleware(), 'glacier.api_version');
        $stack->appendBuild($this->getChecksumsMiddleware(), 'glacier.checksum');
        $stack->appendBuild(
            Middleware::contentType(['UploadArchive', 'UploadPart']),
            'glacier.content_type'
        );
        $stack->appendInit(
            Middleware::sourceFile($this->getApi(), 'body', 'sourceFile'),
            'glacier.source_file'
        );
    }

    /**
     * {@inheritdoc}
     *
     * Sets the default accountId to "-" for all operations.
     */
    public function getCommand($name, array $args = [])
    {
        return parent::getCommand($name, $args + ['accountId' => '-']);
    }

    /**
     * Creates a middleware that updates a command with the content and tree
     * hash headers for upload operations.
     *
     * @return callable
     * @throws CouldNotCreateChecksumException if the body is not seekable.
     */
    private function getChecksumsMiddleware()
    {
        return function (callable $handler) {
            return function (
                CommandInterface $command,
                RequestInterface $request = null
            ) use ($handler) {
                // Accept "ContentSHA256" with a lowercase "c" to match other Glacier params.
                if (!$command['ContentSHA256'] && $command['contentSHA256']) {
                    $command['ContentSHA256'] = $command['contentSHA256'];
                    unset($command['contentSHA256']);
                }

                // If uploading, then make sure checksums are added.
                $name = $command->getName();
                if (($name === 'UploadArchive' || $name === 'UploadMultipartPart')
                    && (!$command['checksum'] || !$command['ContentSHA256'])
                ) {
                    $body = $request->getBody();
                    if (!$body->isSeekable()) {
                        throw new CouldNotCreateChecksumException('sha256');
                    }

                    // Add a tree hash if not provided.
                    if (!$command['checksum']) {
                        $body = new HashingStream(
                            $body, new TreeHash(),
                            function ($result) use (&$request) {
                                $request = $request->withHeader(
                                    'x-amz-sha256-tree-hash',
                                    bin2hex($result)
                                );
                            }
                        );
                    }

                    // Add a linear content hash if not provided.
                    if (!$command['ContentSHA256']) {
                        $body = new HashingStream(
                            $body, new PhpHash('sha256'),
                            function ($result) use ($command) {
                                $command['ContentSHA256'] = bin2hex($result);
                            }
                        );
                    }

                    // Read the stream in order to calculate the hashes.
                    while (!$body->eof()) {
                        $body->read(1048576);
                    }
                    $body->seek(0);
                }

                // Set the content hash header if a value is in the command.
                if ($command['ContentSHA256']) {
                    $request = $request->withHeader(
                        'x-amz-content-sha256',
                        $command['ContentSHA256']
                    );
                }

                return $handler($command, $request);
            };
        };
    }

    /**
     * Creates a middleware that adds the API version header for all requests.
     *
     * @return callable
     */
    private function getApiVersionMiddleware()
    {
        return function (callable $handler) {
            return function (
                CommandInterface $command,
                RequestInterface $request = null
            ) use ($handler) {
                return $handler($command, $request->withHeader(
                    'x-amz-glacier-version',
                    $this->getApi()->getMetadata('apiVersion')
                ));
            };
        };
    }

    /**
     * @internal
     * @codeCoverageIgnore
     */
    public static function applyDocFilters(array $api, array $docs)
    {
        // Add the SourceFile parameter.
        $docs['shapes']['SourceFile']['base'] = 'The path to a file on disk to use instead of the body parameter.';
        $api['shapes']['SourceFile'] = ['type' => 'string'];
        $api['shapes']['UploadArchiveInput']['members']['sourceFile'] = ['shape' => 'SourceFile'];
        $api['shapes']['UploadMultipartPartInput']['members']['sourceFile'] = ['shape' => 'SourceFile'];

        // Add the ContentSHA256 parameter.
        $docs['shapes']['ContentSHA256']['base'] = 'A SHA256 hash of the content of the request body';
        $api['shapes']['ContentSHA256'] = ['type' => 'string'];
        $api['shapes']['UploadArchiveInput']['members']['contentSHA256'] = ['shape' => 'ContentSHA256'];
        $api['shapes']['UploadMultipartPartInput']['members']['contentSHA256'] = ['shape' => 'ContentSHA256'];

        // Add information about "checksum" and "ContentSHA256" being optional.
        $optional = '
The SDK will compute this value '
            . 'for you on your behalf if it is not supplied.
';
        $docs['shapes']['checksum']['append'] = $optional;
        $docs['shapes']['ContentSHA256']['append'] = $optional;

        // Make "accountId" optional for all operations.
        foreach ($api['operations'] as $operation) {
            $inputShape =& $api['shapes'][$operation['input']['shape']];
            $accountIdIndex = array_search('accountId', $inputShape['required']);
            unset($inputShape['required'][$accountIdIndex]);
        }
        // Add information about the default value for "accountId".
        $optional = '
The SDK will set this value to "-" by default.
';
        foreach ($docs['shapes']['string']['refs'] as $name => &$ref) {
            if (strpos($name, 'accountId')) {
                $ref .= $optional;
            }
        }

        return [
            new Service($api, ApiProvider::defaultProvider()),
            new DocModel($docs)
        ];
    }
}


<?php
namespace Aws\Glacier;

use Aws\CommandInterface;
use Aws\HashingStream;
use Aws\Multipart\AbstractUploader;
use Aws\Multipart\UploadState;
use Aws\PhpHash;
use Aws\ResultInterface;
use GuzzleHttp\Psr7;
use Psr\Http\Message\StreamInterface as Stream;

/**
 * Encapsulates the execution of a multipart upload to Glacier.
 */
class MultipartUploader extends AbstractUploader
{
    const PART_MIN_SIZE = 1048576;

    private static $validPartSizes = [
        1048576,    //   1 MB
        2097152,    //   2 MB
        4194304,    //   4 MB
        8388608,    //   8 MB
        16777216,   //  16 MB
        33554432,   //  32 MB
        67108864,   //  64 MB
        134217728,  // 128 MB
        268435456,  // 256 MB
        536870912,  // 512 MB
        1073741824, //   1 GB
        2147483648, //   2 GB
        4294967296, //   4 GB
    ];

    /**
     * Creates an UploadState object for a multipart upload by querying the
     * service for the specified upload's information.
     *
     * @param GlacierClient $client    GlacierClient object to use.
     * @param string        $vaultName Vault name for the multipart upload.
     * @param string        $uploadId  Upload ID for the multipart upload.
     * @param string        $accountId Account ID for the multipart upload.
     *
     * @return UploadState
     */
    public static function getStateFromService(
        GlacierClient $client,
        $vaultName,
        $uploadId,
        $accountId = '-'
    ) {
        $state = new UploadState([
            'accountId' => $accountId,
            'vaultName' => $vaultName,
            'uploadId'  => $uploadId,
        ]);

        foreach ($client->getPaginator('ListParts', $state->getId()) as $result) {
            // Get the part size from the first part in the first result.
            if (!$state->getPartSize()) {
                $state->setPartSize($result['PartSizeInBytes']);
            }
            // Mark all the parts returned by ListParts as uploaded.
            foreach ($result['Parts'] as $part) {
                list($rangeIndex, $rangeSize) = self::parseRange(
                    $part['RangeInBytes'],
                    $state->getPartSize()
                );
                $state->markPartAsUploaded($rangeIndex, [
                    'size'     => $rangeSize,
                    'checksum' => $part['SHA256TreeHash'],
                ]);
            }
        }

        $state->setStatus(UploadState::INITIATED);

        return $state;
    }

    /**
     * Creates a multipart upload for a Glacier archive.
     *
     * The valid configuration options are as follows:
     *
     * - account_id: (string, default=string('-')) Account ID for the archive
     *   being uploaded, if different from the account making the request.
     * - archive_description: (string) Description of the archive.
     * - before_complete: (callable) Callback to invoke before the
     *   `CompleteMultipartUpload` operation. The callback should have a
     *   function signature like `function (Aws\Command $command) {...}`.
     * - before_initiate: (callable) Callback to invoke before the
     *   `InitiateMultipartUpload` operation. The callback should have a
     *   function signature like `function (Aws\Command $command) {...}`.
     * - before_upload: (callable) Callback to invoke before any
     *   `UploadMultipartPart` operations. The callback should have a function
     *   signature like `function (Aws\Command $command) {...}`.
     * - concurrency: (int, default=int(3)) Maximum number of concurrent
     *   `UploadMultipartPart` operations allowed during the multipart upload.
     * - part_size: (int, default=int(1048576)) Part size, in bytes, to use when
     *   doing a multipart upload. This must between 1 MB and 4 GB, and must be
     *   a power of 2 (in megabytes).
     * - prepare_data_source: (callable) Callback to invoke before starting the
     *   multipart upload workflow. The callback should have a function
     *   signature like `function () {...}`.
     * - state: (Aws\Multipart\UploadState) An object that represents the state
     *   of the multipart upload and that is used to resume a previous upload.
     *   When this options is provided, the `account_id`, `key`, and `part_size`
     *   options are ignored.
     * - vault_name: (string, required) Vault name to use for the archive being
     *   uploaded.
     *
     * @param GlacierClient $client Client used for the upload.
     * @param mixed         $source Source of the data to upload.
     * @param array         $config Configuration used to perform the upload.
     */
    public function __construct(GlacierClient $client, $source, array $config = [])
    {
        parent::__construct($client, $source, $config + [
            'account_id' => '-',
            'vault_name' => null,
        ]);
    }

    protected function loadUploadWorkflowInfo()
    {
        return [
            'command' => [
                'initiate' => 'InitiateMultipartUpload',
                'upload'   => 'UploadMultipartPart',
                'complete' => 'CompleteMultipartUpload',
            ],
            'id' => [
                'account_id' => 'accountId',
                'vault_name' => 'vaultName',
                'upload_id'  => 'uploadId',
            ],
            'part_num' => 'range',
        ];
    }

    protected function determinePartSize()
    {
        // Make sure the part size is set.
        $partSize = $this->config['part_size'] ?: self::PART_MIN_SIZE;

        // Ensure that the part size is valid.
        if (!in_array($partSize, self::$validPartSizes)) {
            throw new \InvalidArgumentException('The part_size must be a power '
                . 'of 2, in megabytes, such that 1 MB <= PART_SIZE <= 4 GB.');
        }

        return $partSize;
    }

    protected function createPart($seekable, $number)
    {
        $data = [];
        $firstByte = $this->source->tell();

        // Read from the source to create the body stream. This also
        // calculates the linear and tree hashes as the data is read.
        if ($seekable) {
            // Case 1: Stream is seekable, can make stream from new handle.
            $body = Psr7\Utils::tryFopen($this->source->getMetadata('uri'), 'r');
            $body = $this->limitPartStream(Psr7\Utils::streamFor($body));
            // Create another stream decorated with hashing streams and read
            // through it, so we can get the hash values for the part.
            $decoratedBody = $this->decorateWithHashes($body, $data);
            while (!$decoratedBody->eof()) $decoratedBody->read(1048576);
            // Seek the original source forward to the end of the range.
            $this->source->seek($this->source->tell() + $body->getSize());
        } else {
            // Case 2: Stream is not seekable, must store part in temp stream.
            $source = $this->limitPartStream($this->source);
            $source = $this->decorateWithHashes($source, $data);
            $body = Psr7\Utils::streamFor();
            Psr7\Utils::copyToStream($source, $body);
        }

        // Do not create a part if the body size is zero.
        if ($body->getSize() === 0) {
            return false;
        }

        $body->seek(0);
        $data['body'] = $body;
        $lastByte = $this->source->tell() - 1;
        $data['range'] = "bytes {$firstByte}-{$lastByte}/*";

        return $data;
    }

    protected function handleResult(CommandInterface $command, ResultInterface $result)
    {
        list($rangeIndex, $rangeSize) = $this->parseRange(
            $command['range'],
            $this->state->getPartSize()
        );

        $this->state->markPartAsUploaded($rangeIndex, [
            'size'     => $rangeSize,
            'checksum' => $command['checksum']
        ]);
    }

    protected function getInitiateParams()
    {
        $params = ['partSize' => $this->state->getPartSize()];
        if (isset($this->config['archive_description'])) {
            $params['archiveDescription'] = $this->config['archive_description'];
        }

        return $params;
    }

    protected function getCompleteParams()
    {
        $treeHash = new TreeHash();
        $archiveSize = 0;
        foreach ($this->state->getUploadedParts() as $part) {
            $archiveSize += $part['size'];
            $treeHash->addChecksum($part['checksum']);
        }

        return [
            'archiveSize' => $archiveSize,
            'checksum'    => bin2hex($treeHash->complete()),
        ];
    }

    /**
     * Decorates a stream with a tree AND linear sha256 hashing stream.
     *
     * @param Stream $stream Stream to decorate.
     * @param array  $data   Data bag that results are injected into.
     *
     * @return Stream
     */
    private function decorateWithHashes(Stream $stream, array &$data)
    {
        // Make sure that a tree hash is calculated.
        $stream = new HashingStream($stream, new TreeHash(),
            function ($result) use (&$data) {
                $data['checksum'] = bin2hex($result);
            }
        );

        // Make sure that a linear SHA256 hash is calculated.
        $stream = new HashingStream($stream, new PhpHash('sha256'),
            function ($result) use (&$data) {
                $data['ContentSHA256'] = bin2hex($result);
            }
        );

        return $stream;
    }

    /**
     * Parses a Glacier range string into a size and part number.
     *
     * @param string $range    Glacier range string (e.g., "bytes 5-5000/*")
     * @param int    $partSize The chosen part size
     *
     * @return array
     */
    private static function parseRange($range, $partSize)
    {
        // Strip away the prefix and suffix.
        if (strpos($range, 'bytes') !== false) {
            $range = substr($range, 6, -2);
        }

        // Split that range into it's parts.
        list($firstByte, $lastByte) = explode('-', $range);

        // Calculate and return range index and range size
        return [
            intval($firstByte / $partSize) + 1,
            $lastByte - $firstByte + 1,
        ];
    }
}


<?php
namespace Aws\Glacier;

use Aws\HashInterface;

/**
 * Encapsulates the creation of a tree hash from streamed data
 */
class TreeHash implements HashInterface
{
    const MB = 1048576;
    const EMPTY_HASH = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';

    /** @var string Algorithm used for hashing. */
    private $algorithm;

    /** @var string Buffered data that has not yet been hashed. */
    private $buffer;

    /** @var array Binary checksums from which the tree hash is derived. */
    private $checksums = [];

    /** @var string Resulting hash in binary form. */
    private $hash;

    public function __construct($algorithm = 'sha256')
    {
        $this->algorithm = $algorithm;
        $this->reset();
    }

    /**
     * {@inheritdoc}
     * @throws \LogicException if the root tree hash is already calculated
     */
    public function update($data)
    {
        // Error if hash is already calculated.
        if ($this->hash) {
            throw new \LogicException('You may not add more data to a '
                . 'complete tree hash.');
        }

        // Buffer incoming data.
        $this->buffer .= $data;

        // When there is more than a MB of data, create a checksum.
        while (strlen($this->buffer) >= self::MB) {
            $data = substr($this->buffer, 0, self::MB);
            $this->buffer = substr($this->buffer, self::MB) ?: '';
            $this->checksums[] = hash($this->algorithm, $data, true);
        }

        return $this;
    }

    /**
     * Add a checksum to the tree hash directly
     *
     * @param string $checksum   The checksum to add
     * @param bool $inBinaryForm TRUE if checksum is in binary form
     *
     * @return self
     * @throws \LogicException if the root tree hash is already calculated
     */
    public function addChecksum($checksum, $inBinaryForm = false)
    {
        // Error if hash is already calculated
        if ($this->hash) {
            throw new \LogicException('You may not add more checksums to a '
                . 'complete tree hash.');
        }

        // Convert the checksum to binary form if necessary
        $this->checksums[] = $inBinaryForm ? $checksum : hex2bin($checksum);

        return $this;
    }

    public function complete()
    {
        if (!$this->hash) {
            // Clear out the remaining buffer.
            if (strlen($this->buffer) > 0) {
                $this->checksums[] = hash($this->algorithm, $this->buffer, true);
                $this->buffer = '';
            }

            // If no hashes, add the EMPTY_HASH.
            if (!$this->checksums) {
                $this->checksums[] = hex2bin(self::EMPTY_HASH);
            }

            // Perform hashes up the tree to arrive at the root checksum.
            $hashes = $this->checksums;
            while (count($hashes) > 1) {
                $sets = array_chunk($hashes, 2);
                $hashes = array();
                foreach ($sets as $set) {
                    $hashes[] = (count($set) === 1)
                        ? $set[0]
                        : hash($this->algorithm, $set[0] . $set[1], true);
                }
            }

            $this->hash = $hashes[0];
        }

        return $this->hash;
    }

    public function reset()
    {
        $this->hash = null;
        $this->checksums = [];
        $this->buffer = '';
    }
}


<?php
namespace Aws\Glacier\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the Amazon Glacier service.
 */
class GlacierException extends AwsException {}


<?php
namespace Aws\GlobalAccelerator;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Global Accelerator** service.
 * @method \Aws\Result addCustomRoutingEndpoints(array $args = [])
 * @method \GuzzleHttp\Promise\Promise addCustomRoutingEndpointsAsync(array $args = [])
 * @method \Aws\Result addEndpoints(array $args = [])
 * @method \GuzzleHttp\Promise\Promise addEndpointsAsync(array $args = [])
 * @method \Aws\Result advertiseByoipCidr(array $args = [])
 * @method \GuzzleHttp\Promise\Promise advertiseByoipCidrAsync(array $args = [])
 * @method \Aws\Result allowCustomRoutingTraffic(array $args = [])
 * @method \GuzzleHttp\Promise\Promise allowCustomRoutingTrafficAsync(array $args = [])
 * @method \Aws\Result createAccelerator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAcceleratorAsync(array $args = [])
 * @method \Aws\Result createCustomRoutingAccelerator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createCustomRoutingAcceleratorAsync(array $args = [])
 * @method \Aws\Result createCustomRoutingEndpointGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createCustomRoutingEndpointGroupAsync(array $args = [])
 * @method \Aws\Result createCustomRoutingListener(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createCustomRoutingListenerAsync(array $args = [])
 * @method \Aws\Result createEndpointGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createEndpointGroupAsync(array $args = [])
 * @method \Aws\Result createListener(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createListenerAsync(array $args = [])
 * @method \Aws\Result deleteAccelerator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAcceleratorAsync(array $args = [])
 * @method \Aws\Result deleteCustomRoutingAccelerator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteCustomRoutingAcceleratorAsync(array $args = [])
 * @method \Aws\Result deleteCustomRoutingEndpointGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteCustomRoutingEndpointGroupAsync(array $args = [])
 * @method \Aws\Result deleteCustomRoutingListener(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteCustomRoutingListenerAsync(array $args = [])
 * @method \Aws\Result deleteEndpointGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEndpointGroupAsync(array $args = [])
 * @method \Aws\Result deleteListener(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteListenerAsync(array $args = [])
 * @method \Aws\Result denyCustomRoutingTraffic(array $args = [])
 * @method \GuzzleHttp\Promise\Promise denyCustomRoutingTrafficAsync(array $args = [])
 * @method \Aws\Result deprovisionByoipCidr(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deprovisionByoipCidrAsync(array $args = [])
 * @method \Aws\Result describeAccelerator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAcceleratorAsync(array $args = [])
 * @method \Aws\Result describeAcceleratorAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAcceleratorAttributesAsync(array $args = [])
 * @method \Aws\Result describeCustomRoutingAccelerator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeCustomRoutingAcceleratorAsync(array $args = [])
 * @method \Aws\Result describeCustomRoutingAcceleratorAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeCustomRoutingAcceleratorAttributesAsync(array $args = [])
 * @method \Aws\Result describeCustomRoutingEndpointGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeCustomRoutingEndpointGroupAsync(array $args = [])
 * @method \Aws\Result describeCustomRoutingListener(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeCustomRoutingListenerAsync(array $args = [])
 * @method \Aws\Result describeEndpointGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeEndpointGroupAsync(array $args = [])
 * @method \Aws\Result describeListener(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeListenerAsync(array $args = [])
 * @method \Aws\Result listAccelerators(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAcceleratorsAsync(array $args = [])
 * @method \Aws\Result listByoipCidrs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listByoipCidrsAsync(array $args = [])
 * @method \Aws\Result listCustomRoutingAccelerators(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listCustomRoutingAcceleratorsAsync(array $args = [])
 * @method \Aws\Result listCustomRoutingEndpointGroups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listCustomRoutingEndpointGroupsAsync(array $args = [])
 * @method \Aws\Result listCustomRoutingListeners(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listCustomRoutingListenersAsync(array $args = [])
 * @method \Aws\Result listCustomRoutingPortMappings(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listCustomRoutingPortMappingsAsync(array $args = [])
 * @method \Aws\Result listCustomRoutingPortMappingsByDestination(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listCustomRoutingPortMappingsByDestinationAsync(array $args = [])
 * @method \Aws\Result listEndpointGroups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEndpointGroupsAsync(array $args = [])
 * @method \Aws\Result listListeners(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listListenersAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result provisionByoipCidr(array $args = [])
 * @method \GuzzleHttp\Promise\Promise provisionByoipCidrAsync(array $args = [])
 * @method \Aws\Result removeCustomRoutingEndpoints(array $args = [])
 * @method \GuzzleHttp\Promise\Promise removeCustomRoutingEndpointsAsync(array $args = [])
 * @method \Aws\Result removeEndpoints(array $args = [])
 * @method \GuzzleHttp\Promise\Promise removeEndpointsAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 * @method \Aws\Result updateAccelerator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAcceleratorAsync(array $args = [])
 * @method \Aws\Result updateAcceleratorAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAcceleratorAttributesAsync(array $args = [])
 * @method \Aws\Result updateCustomRoutingAccelerator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateCustomRoutingAcceleratorAsync(array $args = [])
 * @method \Aws\Result updateCustomRoutingAcceleratorAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateCustomRoutingAcceleratorAttributesAsync(array $args = [])
 * @method \Aws\Result updateCustomRoutingListener(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateCustomRoutingListenerAsync(array $args = [])
 * @method \Aws\Result updateEndpointGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateEndpointGroupAsync(array $args = [])
 * @method \Aws\Result updateListener(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateListenerAsync(array $args = [])
 * @method \Aws\Result withdrawByoipCidr(array $args = [])
 * @method \GuzzleHttp\Promise\Promise withdrawByoipCidrAsync(array $args = [])
 */
class GlobalAcceleratorClient extends AwsClient {}


<?php
namespace Aws\GlobalAccelerator\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Global Accelerator** service.
 */
class GlobalAcceleratorException extends AwsException {}