<?php
namespace Aws\ApiGatewayV2;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AmazonApiGatewayV2** service.
 * @method \Aws\Result createApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createApiAsync(array $args = [])
 * @method \Aws\Result createApiMapping(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createApiMappingAsync(array $args = [])
 * @method \Aws\Result createAuthorizer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAuthorizerAsync(array $args = [])
 * @method \Aws\Result createDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDeploymentAsync(array $args = [])
 * @method \Aws\Result createDomainName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDomainNameAsync(array $args = [])
 * @method \Aws\Result createIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createIntegrationAsync(array $args = [])
 * @method \Aws\Result createIntegrationResponse(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createIntegrationResponseAsync(array $args = [])
 * @method \Aws\Result createModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createModelAsync(array $args = [])
 * @method \Aws\Result createRoute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createRouteAsync(array $args = [])
 * @method \Aws\Result createRouteResponse(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createRouteResponseAsync(array $args = [])
 * @method \Aws\Result createStage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createStageAsync(array $args = [])
 * @method \Aws\Result createVpcLink(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVpcLinkAsync(array $args = [])
 * @method \Aws\Result deleteAccessLogSettings(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAccessLogSettingsAsync(array $args = [])
 * @method \Aws\Result deleteApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteApiAsync(array $args = [])
 * @method \Aws\Result deleteApiMapping(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteApiMappingAsync(array $args = [])
 * @method \Aws\Result deleteAuthorizer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAuthorizerAsync(array $args = [])
 * @method \Aws\Result deleteCorsConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteCorsConfigurationAsync(array $args = [])
 * @method \Aws\Result deleteDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDeploymentAsync(array $args = [])
 * @method \Aws\Result deleteDomainName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDomainNameAsync(array $args = [])
 * @method \Aws\Result deleteIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteIntegrationAsync(array $args = [])
 * @method \Aws\Result deleteIntegrationResponse(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteIntegrationResponseAsync(array $args = [])
 * @method \Aws\Result deleteModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteModelAsync(array $args = [])
 * @method \Aws\Result deleteRoute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRouteAsync(array $args = [])
 * @method \Aws\Result deleteRouteRequestParameter(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRouteRequestParameterAsync(array $args = [])
 * @method \Aws\Result deleteRouteResponse(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRouteResponseAsync(array $args = [])
 * @method \Aws\Result deleteRouteSettings(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRouteSettingsAsync(array $args = [])
 * @method \Aws\Result deleteStage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteStageAsync(array $args = [])
 * @method \Aws\Result deleteVpcLink(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVpcLinkAsync(array $args = [])
 * @method \Aws\Result exportApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise exportApiAsync(array $args = [])
 * @method \Aws\Result resetAuthorizersCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise resetAuthorizersCacheAsync(array $args = [])
 * @method \Aws\Result getApiResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getApiResourceAsync(array $args = [])
 * @method \Aws\Result getApiMapping(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getApiMappingAsync(array $args = [])
 * @method \Aws\Result getApiMappings(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getApiMappingsAsync(array $args = [])
 * @method \Aws\Result getApis(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getApisAsync(array $args = [])
 * @method \Aws\Result getAuthorizer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAuthorizerAsync(array $args = [])
 * @method \Aws\Result getAuthorizers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAuthorizersAsync(array $args = [])
 * @method \Aws\Result getDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDeploymentAsync(array $args = [])
 * @method \Aws\Result getDeployments(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDeploymentsAsync(array $args = [])
 * @method \Aws\Result getDomainName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDomainNameAsync(array $args = [])
 * @method \Aws\Result getDomainNames(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDomainNamesAsync(array $args = [])
 * @method \Aws\Result getIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getIntegrationAsync(array $args = [])
 * @method \Aws\Result getIntegrationResponse(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getIntegrationResponseAsync(array $args = [])
 * @method \Aws\Result getIntegrationResponses(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getIntegrationResponsesAsync(array $args = [])
 * @method \Aws\Result getIntegrations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getIntegrationsAsync(array $args = [])
 * @method \Aws\Result getModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getModelAsync(array $args = [])
 * @method \Aws\Result getModelTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getModelTemplateAsync(array $args = [])
 * @method \Aws\Result getModels(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getModelsAsync(array $args = [])
 * @method \Aws\Result getRoute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getRouteAsync(array $args = [])
 * @method \Aws\Result getRouteResponse(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getRouteResponseAsync(array $args = [])
 * @method \Aws\Result getRouteResponses(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getRouteResponsesAsync(array $args = [])
 * @method \Aws\Result getRoutes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getRoutesAsync(array $args = [])
 * @method \Aws\Result getStage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getStageAsync(array $args = [])
 * @method \Aws\Result getStages(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getStagesAsync(array $args = [])
 * @method \Aws\Result getTags(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getTagsAsync(array $args = [])
 * @method \Aws\Result getVpcLink(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getVpcLinkAsync(array $args = [])
 * @method \Aws\Result getVpcLinks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getVpcLinksAsync(array $args = [])
 * @method \Aws\Result importApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise importApiAsync(array $args = [])
 * @method \Aws\Result reimportApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise reimportApiAsync(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 updateApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateApiAsync(array $args = [])
 * @method \Aws\Result updateApiMapping(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateApiMappingAsync(array $args = [])
 * @method \Aws\Result updateAuthorizer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAuthorizerAsync(array $args = [])
 * @method \Aws\Result updateDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDeploymentAsync(array $args = [])
 * @method \Aws\Result updateDomainName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDomainNameAsync(array $args = [])
 * @method \Aws\Result updateIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateIntegrationAsync(array $args = [])
 * @method \Aws\Result updateIntegrationResponse(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateIntegrationResponseAsync(array $args = [])
 * @method \Aws\Result updateModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateModelAsync(array $args = [])
 * @method \Aws\Result updateRoute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRouteAsync(array $args = [])
 * @method \Aws\Result updateRouteResponse(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRouteResponseAsync(array $args = [])
 * @method \Aws\Result updateStage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateStageAsync(array $args = [])
 * @method \Aws\Result updateVpcLink(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateVpcLinkAsync(array $args = [])
 */
class ApiGatewayV2Client extends AwsClient {}


<?php
namespace Aws\ApiGatewayV2\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AmazonApiGatewayV2** service.
 */
class ApiGatewayV2Exception extends AwsException {}


<?php
namespace Aws\AppConfig;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon AppConfig** service.
 * @method \Aws\Result createApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = [])
 * @method \Aws\Result createConfigurationProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createConfigurationProfileAsync(array $args = [])
 * @method \Aws\Result createDeploymentStrategy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDeploymentStrategyAsync(array $args = [])
 * @method \Aws\Result createEnvironment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createEnvironmentAsync(array $args = [])
 * @method \Aws\Result createExtension(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createExtensionAsync(array $args = [])
 * @method \Aws\Result createExtensionAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createExtensionAssociationAsync(array $args = [])
 * @method \Aws\Result createHostedConfigurationVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createHostedConfigurationVersionAsync(array $args = [])
 * @method \Aws\Result deleteApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteApplicationAsync(array $args = [])
 * @method \Aws\Result deleteConfigurationProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteConfigurationProfileAsync(array $args = [])
 * @method \Aws\Result deleteDeploymentStrategy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDeploymentStrategyAsync(array $args = [])
 * @method \Aws\Result deleteEnvironment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEnvironmentAsync(array $args = [])
 * @method \Aws\Result deleteExtension(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteExtensionAsync(array $args = [])
 * @method \Aws\Result deleteExtensionAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteExtensionAssociationAsync(array $args = [])
 * @method \Aws\Result deleteHostedConfigurationVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteHostedConfigurationVersionAsync(array $args = [])
 * @method \Aws\Result getApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getApplicationAsync(array $args = [])
 * @method \Aws\Result getConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getConfigurationAsync(array $args = [])
 * @method \Aws\Result getConfigurationProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getConfigurationProfileAsync(array $args = [])
 * @method \Aws\Result getDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDeploymentAsync(array $args = [])
 * @method \Aws\Result getDeploymentStrategy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDeploymentStrategyAsync(array $args = [])
 * @method \Aws\Result getEnvironment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEnvironmentAsync(array $args = [])
 * @method \Aws\Result getExtension(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getExtensionAsync(array $args = [])
 * @method \Aws\Result getExtensionAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getExtensionAssociationAsync(array $args = [])
 * @method \Aws\Result getHostedConfigurationVersion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getHostedConfigurationVersionAsync(array $args = [])
 * @method \Aws\Result listApplications(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listApplicationsAsync(array $args = [])
 * @method \Aws\Result listConfigurationProfiles(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listConfigurationProfilesAsync(array $args = [])
 * @method \Aws\Result listDeploymentStrategies(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDeploymentStrategiesAsync(array $args = [])
 * @method \Aws\Result listDeployments(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDeploymentsAsync(array $args = [])
 * @method \Aws\Result listEnvironments(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEnvironmentsAsync(array $args = [])
 * @method \Aws\Result listExtensionAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listExtensionAssociationsAsync(array $args = [])
 * @method \Aws\Result listExtensions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listExtensionsAsync(array $args = [])
 * @method \Aws\Result listHostedConfigurationVersions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listHostedConfigurationVersionsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result startDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startDeploymentAsync(array $args = [])
 * @method \Aws\Result stopDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopDeploymentAsync(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 updateApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = [])
 * @method \Aws\Result updateConfigurationProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateConfigurationProfileAsync(array $args = [])
 * @method \Aws\Result updateDeploymentStrategy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDeploymentStrategyAsync(array $args = [])
 * @method \Aws\Result updateEnvironment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateEnvironmentAsync(array $args = [])
 * @method \Aws\Result updateExtension(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateExtensionAsync(array $args = [])
 * @method \Aws\Result updateExtensionAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateExtensionAssociationAsync(array $args = [])
 * @method \Aws\Result validateConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise validateConfigurationAsync(array $args = [])
 */
class AppConfigClient extends AwsClient {}


<?php
namespace Aws\AppConfig\Exception;

use Aws\Exception\AwsException;

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


<?php
namespace Aws\AppConfigData;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS AppConfig Data** service.
 * @method \Aws\Result getLatestConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getLatestConfigurationAsync(array $args = [])
 * @method \Aws\Result startConfigurationSession(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startConfigurationSessionAsync(array $args = [])
 */
class AppConfigDataClient extends AwsClient {}


<?php
namespace Aws\AppConfigData\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS AppConfig Data** service.
 */
class AppConfigDataException extends AwsException {}


<?php
namespace Aws\AppFabric;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AppFabric** service.
 * @method \Aws\Result batchGetUserAccessTasks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchGetUserAccessTasksAsync(array $args = [])
 * @method \Aws\Result connectAppAuthorization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise connectAppAuthorizationAsync(array $args = [])
 * @method \Aws\Result createAppAuthorization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAppAuthorizationAsync(array $args = [])
 * @method \Aws\Result createAppBundle(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAppBundleAsync(array $args = [])
 * @method \Aws\Result createIngestion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createIngestionAsync(array $args = [])
 * @method \Aws\Result createIngestionDestination(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createIngestionDestinationAsync(array $args = [])
 * @method \Aws\Result deleteAppAuthorization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAppAuthorizationAsync(array $args = [])
 * @method \Aws\Result deleteAppBundle(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAppBundleAsync(array $args = [])
 * @method \Aws\Result deleteIngestion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteIngestionAsync(array $args = [])
 * @method \Aws\Result deleteIngestionDestination(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteIngestionDestinationAsync(array $args = [])
 * @method \Aws\Result getAppAuthorization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAppAuthorizationAsync(array $args = [])
 * @method \Aws\Result getAppBundle(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAppBundleAsync(array $args = [])
 * @method \Aws\Result getIngestion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getIngestionAsync(array $args = [])
 * @method \Aws\Result getIngestionDestination(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getIngestionDestinationAsync(array $args = [])
 * @method \Aws\Result listAppAuthorizations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAppAuthorizationsAsync(array $args = [])
 * @method \Aws\Result listAppBundles(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAppBundlesAsync(array $args = [])
 * @method \Aws\Result listIngestionDestinations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listIngestionDestinationsAsync(array $args = [])
 * @method \Aws\Result listIngestions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listIngestionsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result startIngestion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startIngestionAsync(array $args = [])
 * @method \Aws\Result startUserAccessTasks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startUserAccessTasksAsync(array $args = [])
 * @method \Aws\Result stopIngestion(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopIngestionAsync(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 updateAppAuthorization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAppAuthorizationAsync(array $args = [])
 * @method \Aws\Result updateIngestionDestination(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateIngestionDestinationAsync(array $args = [])
 */
class AppFabricClient extends AwsClient {}


<?php
namespace Aws\AppFabric\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AppFabric** service.
 */
class AppFabricException extends AwsException {}


<?php
namespace Aws\Appflow;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Appflow** service.
 * @method \Aws\Result cancelFlowExecutions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise cancelFlowExecutionsAsync(array $args = [])
 * @method \Aws\Result createConnectorProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createConnectorProfileAsync(array $args = [])
 * @method \Aws\Result createFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFlowAsync(array $args = [])
 * @method \Aws\Result deleteConnectorProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteConnectorProfileAsync(array $args = [])
 * @method \Aws\Result deleteFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteFlowAsync(array $args = [])
 * @method \Aws\Result describeConnector(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConnectorAsync(array $args = [])
 * @method \Aws\Result describeConnectorEntity(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConnectorEntityAsync(array $args = [])
 * @method \Aws\Result describeConnectorProfiles(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConnectorProfilesAsync(array $args = [])
 * @method \Aws\Result describeConnectors(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConnectorsAsync(array $args = [])
 * @method \Aws\Result describeFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFlowAsync(array $args = [])
 * @method \Aws\Result describeFlowExecutionRecords(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFlowExecutionRecordsAsync(array $args = [])
 * @method \Aws\Result listConnectorEntities(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listConnectorEntitiesAsync(array $args = [])
 * @method \Aws\Result listConnectors(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listConnectorsAsync(array $args = [])
 * @method \Aws\Result listFlows(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listFlowsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result registerConnector(array $args = [])
 * @method \GuzzleHttp\Promise\Promise registerConnectorAsync(array $args = [])
 * @method \Aws\Result resetConnectorMetadataCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise resetConnectorMetadataCacheAsync(array $args = [])
 * @method \Aws\Result startFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startFlowAsync(array $args = [])
 * @method \Aws\Result stopFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopFlowAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result unregisterConnector(array $args = [])
 * @method \GuzzleHttp\Promise\Promise unregisterConnectorAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 * @method \Aws\Result updateConnectorProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateConnectorProfileAsync(array $args = [])
 * @method \Aws\Result updateConnectorRegistration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateConnectorRegistrationAsync(array $args = [])
 * @method \Aws\Result updateFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFlowAsync(array $args = [])
 */
class AppflowClient extends AwsClient {}


<?php
namespace Aws\Appflow\Exception;

use Aws\Exception\AwsException;

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


<?php
namespace Aws\AppIntegrationsService;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon AppIntegrations Service** service.
 * @method \Aws\Result createDataIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDataIntegrationAsync(array $args = [])
 * @method \Aws\Result createEventIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createEventIntegrationAsync(array $args = [])
 * @method \Aws\Result deleteDataIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDataIntegrationAsync(array $args = [])
 * @method \Aws\Result deleteEventIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEventIntegrationAsync(array $args = [])
 * @method \Aws\Result getDataIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDataIntegrationAsync(array $args = [])
 * @method \Aws\Result getEventIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEventIntegrationAsync(array $args = [])
 * @method \Aws\Result listDataIntegrationAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDataIntegrationAssociationsAsync(array $args = [])
 * @method \Aws\Result listDataIntegrations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDataIntegrationsAsync(array $args = [])
 * @method \Aws\Result listEventIntegrationAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEventIntegrationAssociationsAsync(array $args = [])
 * @method \Aws\Result listEventIntegrations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEventIntegrationsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(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 updateDataIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDataIntegrationAsync(array $args = [])
 * @method \Aws\Result updateEventIntegration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateEventIntegrationAsync(array $args = [])
 */
class AppIntegrationsServiceClient extends AwsClient {}


<?php
namespace Aws\AppIntegrationsService\Exception;

use Aws\Exception\AwsException;

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


<?php
namespace Aws\ApplicationAutoScaling;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Application Auto Scaling** service.
 * @method \Aws\Result deleteScalingPolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteScalingPolicyAsync(array $args = [])
 * @method \Aws\Result deleteScheduledAction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteScheduledActionAsync(array $args = [])
 * @method \Aws\Result deregisterScalableTarget(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deregisterScalableTargetAsync(array $args = [])
 * @method \Aws\Result describeScalableTargets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeScalableTargetsAsync(array $args = [])
 * @method \Aws\Result describeScalingActivities(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeScalingActivitiesAsync(array $args = [])
 * @method \Aws\Result describeScalingPolicies(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeScalingPoliciesAsync(array $args = [])
 * @method \Aws\Result describeScheduledActions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeScheduledActionsAsync(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 putScheduledAction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putScheduledActionAsync(array $args = [])
 * @method \Aws\Result registerScalableTarget(array $args = [])
 * @method \GuzzleHttp\Promise\Promise registerScalableTargetAsync(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 ApplicationAutoScalingClient extends AwsClient {}


<?php
namespace Aws\ApplicationAutoScaling\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Application Auto Scaling** service.
 */
class ApplicationAutoScalingException extends AwsException {}


<?php
namespace Aws\ApplicationCostProfiler;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Application Cost Profiler** service.
 * @method \Aws\Result deleteReportDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteReportDefinitionAsync(array $args = [])
 * @method \Aws\Result getReportDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getReportDefinitionAsync(array $args = [])
 * @method \Aws\Result importApplicationUsage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise importApplicationUsageAsync(array $args = [])
 * @method \Aws\Result listReportDefinitions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listReportDefinitionsAsync(array $args = [])
 * @method \Aws\Result putReportDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putReportDefinitionAsync(array $args = [])
 * @method \Aws\Result updateReportDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateReportDefinitionAsync(array $args = [])
 */
class ApplicationCostProfilerClient extends AwsClient {}


<?php
namespace Aws\ApplicationCostProfiler\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Application Cost Profiler** service.
 */
class ApplicationCostProfilerException extends AwsException {}


<?php
namespace Aws\ApplicationDiscoveryService;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Application Discovery Service** service.
 * @method \Aws\Result associateConfigurationItemsToApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateConfigurationItemsToApplicationAsync(array $args = [])
 * @method \Aws\Result batchDeleteImportData(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchDeleteImportDataAsync(array $args = [])
 * @method \Aws\Result createApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = [])
 * @method \Aws\Result createTags(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createTagsAsync(array $args = [])
 * @method \Aws\Result deleteApplications(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteApplicationsAsync(array $args = [])
 * @method \Aws\Result deleteTags(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteTagsAsync(array $args = [])
 * @method \Aws\Result describeAgents(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAgentsAsync(array $args = [])
 * @method \Aws\Result describeConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConfigurationsAsync(array $args = [])
 * @method \Aws\Result describeContinuousExports(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeContinuousExportsAsync(array $args = [])
 * @method \Aws\Result describeExportConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeExportConfigurationsAsync(array $args = [])
 * @method \Aws\Result describeExportTasks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeExportTasksAsync(array $args = [])
 * @method \Aws\Result describeImportTasks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeImportTasksAsync(array $args = [])
 * @method \Aws\Result describeTags(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeTagsAsync(array $args = [])
 * @method \Aws\Result disassociateConfigurationItemsFromApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateConfigurationItemsFromApplicationAsync(array $args = [])
 * @method \Aws\Result exportConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise exportConfigurationsAsync(array $args = [])
 * @method \Aws\Result getDiscoverySummary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDiscoverySummaryAsync(array $args = [])
 * @method \Aws\Result listConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listConfigurationsAsync(array $args = [])
 * @method \Aws\Result listServerNeighbors(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listServerNeighborsAsync(array $args = [])
 * @method \Aws\Result startContinuousExport(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startContinuousExportAsync(array $args = [])
 * @method \Aws\Result startDataCollectionByAgentIds(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startDataCollectionByAgentIdsAsync(array $args = [])
 * @method \Aws\Result startExportTask(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startExportTaskAsync(array $args = [])
 * @method \Aws\Result startImportTask(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startImportTaskAsync(array $args = [])
 * @method \Aws\Result stopContinuousExport(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopContinuousExportAsync(array $args = [])
 * @method \Aws\Result stopDataCollectionByAgentIds(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopDataCollectionByAgentIdsAsync(array $args = [])
 * @method \Aws\Result updateApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = [])
 */
class ApplicationDiscoveryServiceClient extends AwsClient {}


<?php
namespace Aws\ApplicationDiscoveryService\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Application Discovery Service** service.
 */
class ApplicationDiscoveryServiceException extends AwsException {}


<?php
namespace Aws\ApplicationInsights;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon CloudWatch Application Insights** service.
 * @method \Aws\Result createApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = [])
 * @method \Aws\Result createComponent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createComponentAsync(array $args = [])
 * @method \Aws\Result createLogPattern(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createLogPatternAsync(array $args = [])
 * @method \Aws\Result deleteApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteApplicationAsync(array $args = [])
 * @method \Aws\Result deleteComponent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteComponentAsync(array $args = [])
 * @method \Aws\Result deleteLogPattern(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteLogPatternAsync(array $args = [])
 * @method \Aws\Result describeApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeApplicationAsync(array $args = [])
 * @method \Aws\Result describeComponent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeComponentAsync(array $args = [])
 * @method \Aws\Result describeComponentConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeComponentConfigurationAsync(array $args = [])
 * @method \Aws\Result describeComponentConfigurationRecommendation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeComponentConfigurationRecommendationAsync(array $args = [])
 * @method \Aws\Result describeLogPattern(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeLogPatternAsync(array $args = [])
 * @method \Aws\Result describeObservation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeObservationAsync(array $args = [])
 * @method \Aws\Result describeProblem(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeProblemAsync(array $args = [])
 * @method \Aws\Result describeProblemObservations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeProblemObservationsAsync(array $args = [])
 * @method \Aws\Result listApplications(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listApplicationsAsync(array $args = [])
 * @method \Aws\Result listComponents(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listComponentsAsync(array $args = [])
 * @method \Aws\Result listConfigurationHistory(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listConfigurationHistoryAsync(array $args = [])
 * @method \Aws\Result listLogPatternSets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listLogPatternSetsAsync(array $args = [])
 * @method \Aws\Result listLogPatterns(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listLogPatternsAsync(array $args = [])
 * @method \Aws\Result listProblems(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listProblemsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(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 updateApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = [])
 * @method \Aws\Result updateComponent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateComponentAsync(array $args = [])
 * @method \Aws\Result updateComponentConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateComponentConfigurationAsync(array $args = [])
 * @method \Aws\Result updateLogPattern(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateLogPatternAsync(array $args = [])
 */
class ApplicationInsightsClient extends AwsClient {}


<?php
namespace Aws\ApplicationInsights\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon CloudWatch Application Insights** service.
 */
class ApplicationInsightsException extends AwsException {}


<?php
namespace Aws\AppMesh;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS App Mesh** service.
 * @method \Aws\Result createMesh(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createMeshAsync(array $args = [])
 * @method \Aws\Result createRoute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createRouteAsync(array $args = [])
 * @method \Aws\Result createVirtualNode(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVirtualNodeAsync(array $args = [])
 * @method \Aws\Result createVirtualRouter(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVirtualRouterAsync(array $args = [])
 * @method \Aws\Result deleteMesh(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteMeshAsync(array $args = [])
 * @method \Aws\Result deleteRoute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRouteAsync(array $args = [])
 * @method \Aws\Result deleteVirtualNode(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVirtualNodeAsync(array $args = [])
 * @method \Aws\Result deleteVirtualRouter(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVirtualRouterAsync(array $args = [])
 * @method \Aws\Result describeMesh(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeMeshAsync(array $args = [])
 * @method \Aws\Result describeRoute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRouteAsync(array $args = [])
 * @method \Aws\Result describeVirtualNode(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeVirtualNodeAsync(array $args = [])
 * @method \Aws\Result describeVirtualRouter(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeVirtualRouterAsync(array $args = [])
 * @method \Aws\Result listMeshes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listMeshesAsync(array $args = [])
 * @method \Aws\Result listRoutes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listRoutesAsync(array $args = [])
 * @method \Aws\Result listVirtualNodes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listVirtualNodesAsync(array $args = [])
 * @method \Aws\Result listVirtualRouters(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listVirtualRoutersAsync(array $args = [])
 * @method \Aws\Result updateRoute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRouteAsync(array $args = [])
 * @method \Aws\Result updateVirtualNode(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateVirtualNodeAsync(array $args = [])
 * @method \Aws\Result updateVirtualRouter(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateVirtualRouterAsync(array $args = [])
 * @method \Aws\Result createGatewayRoute(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise createGatewayRouteAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result createVirtualGateway(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise createVirtualGatewayAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result createVirtualService(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise createVirtualServiceAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result deleteGatewayRoute(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise deleteGatewayRouteAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result deleteVirtualGateway(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise deleteVirtualGatewayAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result deleteVirtualService(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise deleteVirtualServiceAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result describeGatewayRoute(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise describeGatewayRouteAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result describeVirtualGateway(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise describeVirtualGatewayAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result describeVirtualService(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise describeVirtualServiceAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result listGatewayRoutes(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise listGatewayRoutesAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result listTagsForResource(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result listVirtualGateways(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise listVirtualGatewaysAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result listVirtualServices(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise listVirtualServicesAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result tagResource(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result untagResource(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result updateGatewayRoute(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise updateGatewayRouteAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result updateMesh(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise updateMeshAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result updateVirtualGateway(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise updateVirtualGatewayAsync(array $args = []) (supported in versions 2019-01-25)
 * @method \Aws\Result updateVirtualService(array $args = []) (supported in versions 2019-01-25)
 * @method \GuzzleHttp\Promise\Promise updateVirtualServiceAsync(array $args = []) (supported in versions 2019-01-25)
 */
class AppMeshClient extends AwsClient {}


<?php
namespace Aws\AppMesh\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS App Mesh** service.
 */
class AppMeshException extends AwsException {}


<?php
namespace Aws\AppRegistry;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Service Catalog App Registry** service.
 * @method \Aws\Result associateAttributeGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateAttributeGroupAsync(array $args = [])
 * @method \Aws\Result associateResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateResourceAsync(array $args = [])
 * @method \Aws\Result createApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = [])
 * @method \Aws\Result createAttributeGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAttributeGroupAsync(array $args = [])
 * @method \Aws\Result deleteApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteApplicationAsync(array $args = [])
 * @method \Aws\Result deleteAttributeGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAttributeGroupAsync(array $args = [])
 * @method \Aws\Result disassociateAttributeGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateAttributeGroupAsync(array $args = [])
 * @method \Aws\Result disassociateResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateResourceAsync(array $args = [])
 * @method \Aws\Result getApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getApplicationAsync(array $args = [])
 * @method \Aws\Result getAssociatedResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAssociatedResourceAsync(array $args = [])
 * @method \Aws\Result getAttributeGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAttributeGroupAsync(array $args = [])
 * @method \Aws\Result getConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getConfigurationAsync(array $args = [])
 * @method \Aws\Result listApplications(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listApplicationsAsync(array $args = [])
 * @method \Aws\Result listAssociatedAttributeGroups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAssociatedAttributeGroupsAsync(array $args = [])
 * @method \Aws\Result listAssociatedResources(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAssociatedResourcesAsync(array $args = [])
 * @method \Aws\Result listAttributeGroups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAttributeGroupsAsync(array $args = [])
 * @method \Aws\Result listAttributeGroupsForApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAttributeGroupsForApplicationAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result putConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putConfigurationAsync(array $args = [])
 * @method \Aws\Result syncResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise syncResourceAsync(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 updateApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = [])
 * @method \Aws\Result updateAttributeGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAttributeGroupAsync(array $args = [])
 */
class AppRegistryClient extends AwsClient {}


<?php
namespace Aws\AppRegistry\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Service Catalog App Registry** service.
 */
class AppRegistryException extends AwsException {}


<?php
namespace Aws\AppRunner;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS App Runner** service.
 * @method \Aws\Result associateCustomDomain(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateCustomDomainAsync(array $args = [])
 * @method \Aws\Result createAutoScalingConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAutoScalingConfigurationAsync(array $args = [])
 * @method \Aws\Result createConnection(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createConnectionAsync(array $args = [])
 * @method \Aws\Result createObservabilityConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createObservabilityConfigurationAsync(array $args = [])
 * @method \Aws\Result createService(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createServiceAsync(array $args = [])
 * @method \Aws\Result createVpcConnector(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVpcConnectorAsync(array $args = [])
 * @method \Aws\Result createVpcIngressConnection(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVpcIngressConnectionAsync(array $args = [])
 * @method \Aws\Result deleteAutoScalingConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAutoScalingConfigurationAsync(array $args = [])
 * @method \Aws\Result deleteConnection(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteConnectionAsync(array $args = [])
 * @method \Aws\Result deleteObservabilityConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteObservabilityConfigurationAsync(array $args = [])
 * @method \Aws\Result deleteService(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteServiceAsync(array $args = [])
 * @method \Aws\Result deleteVpcConnector(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVpcConnectorAsync(array $args = [])
 * @method \Aws\Result deleteVpcIngressConnection(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVpcIngressConnectionAsync(array $args = [])
 * @method \Aws\Result describeAutoScalingConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAutoScalingConfigurationAsync(array $args = [])
 * @method \Aws\Result describeCustomDomains(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeCustomDomainsAsync(array $args = [])
 * @method \Aws\Result describeObservabilityConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeObservabilityConfigurationAsync(array $args = [])
 * @method \Aws\Result describeService(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeServiceAsync(array $args = [])
 * @method \Aws\Result describeVpcConnector(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeVpcConnectorAsync(array $args = [])
 * @method \Aws\Result describeVpcIngressConnection(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeVpcIngressConnectionAsync(array $args = [])
 * @method \Aws\Result disassociateCustomDomain(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateCustomDomainAsync(array $args = [])
 * @method \Aws\Result listAutoScalingConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAutoScalingConfigurationsAsync(array $args = [])
 * @method \Aws\Result listConnections(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listConnectionsAsync(array $args = [])
 * @method \Aws\Result listObservabilityConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listObservabilityConfigurationsAsync(array $args = [])
 * @method \Aws\Result listOperations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listOperationsAsync(array $args = [])
 * @method \Aws\Result listServices(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listServicesAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result listVpcConnectors(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listVpcConnectorsAsync(array $args = [])
 * @method \Aws\Result listVpcIngressConnections(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listVpcIngressConnectionsAsync(array $args = [])
 * @method \Aws\Result pauseService(array $args = [])
 * @method \GuzzleHttp\Promise\Promise pauseServiceAsync(array $args = [])
 * @method \Aws\Result resumeService(array $args = [])
 * @method \GuzzleHttp\Promise\Promise resumeServiceAsync(array $args = [])
 * @method \Aws\Result startDeployment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startDeploymentAsync(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 updateService(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateServiceAsync(array $args = [])
 * @method \Aws\Result updateVpcIngressConnection(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateVpcIngressConnectionAsync(array $args = [])
 */
class AppRunnerClient extends AwsClient {}


<?php
namespace Aws\AppRunner\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS App Runner** service.
 */
class AppRunnerException extends AwsException {}


<?php
namespace Aws\Appstream;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon AppStream** service.
 * @method \Aws\Result associateAppBlockBuilderAppBlock(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateAppBlockBuilderAppBlockAsync(array $args = [])
 * @method \Aws\Result associateApplicationFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateApplicationFleetAsync(array $args = [])
 * @method \Aws\Result associateApplicationToEntitlement(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateApplicationToEntitlementAsync(array $args = [])
 * @method \Aws\Result associateFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateFleetAsync(array $args = [])
 * @method \Aws\Result batchAssociateUserStack(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchAssociateUserStackAsync(array $args = [])
 * @method \Aws\Result batchDisassociateUserStack(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchDisassociateUserStackAsync(array $args = [])
 * @method \Aws\Result copyImage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise copyImageAsync(array $args = [])
 * @method \Aws\Result createAppBlock(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAppBlockAsync(array $args = [])
 * @method \Aws\Result createAppBlockBuilder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAppBlockBuilderAsync(array $args = [])
 * @method \Aws\Result createAppBlockBuilderStreamingURL(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAppBlockBuilderStreamingURLAsync(array $args = [])
 * @method \Aws\Result createApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createApplicationAsync(array $args = [])
 * @method \Aws\Result createDirectoryConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDirectoryConfigAsync(array $args = [])
 * @method \Aws\Result createEntitlement(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createEntitlementAsync(array $args = [])
 * @method \Aws\Result createFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFleetAsync(array $args = [])
 * @method \Aws\Result createImageBuilder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createImageBuilderAsync(array $args = [])
 * @method \Aws\Result createImageBuilderStreamingURL(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createImageBuilderStreamingURLAsync(array $args = [])
 * @method \Aws\Result createStack(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createStackAsync(array $args = [])
 * @method \Aws\Result createStreamingURL(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createStreamingURLAsync(array $args = [])
 * @method \Aws\Result createUpdatedImage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createUpdatedImageAsync(array $args = [])
 * @method \Aws\Result createUsageReportSubscription(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createUsageReportSubscriptionAsync(array $args = [])
 * @method \Aws\Result createUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = [])
 * @method \Aws\Result deleteAppBlock(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAppBlockAsync(array $args = [])
 * @method \Aws\Result deleteAppBlockBuilder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAppBlockBuilderAsync(array $args = [])
 * @method \Aws\Result deleteApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteApplicationAsync(array $args = [])
 * @method \Aws\Result deleteDirectoryConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDirectoryConfigAsync(array $args = [])
 * @method \Aws\Result deleteEntitlement(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEntitlementAsync(array $args = [])
 * @method \Aws\Result deleteFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteFleetAsync(array $args = [])
 * @method \Aws\Result deleteImage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteImageAsync(array $args = [])
 * @method \Aws\Result deleteImageBuilder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteImageBuilderAsync(array $args = [])
 * @method \Aws\Result deleteImagePermissions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteImagePermissionsAsync(array $args = [])
 * @method \Aws\Result deleteStack(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteStackAsync(array $args = [])
 * @method \Aws\Result deleteUsageReportSubscription(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteUsageReportSubscriptionAsync(array $args = [])
 * @method \Aws\Result deleteUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = [])
 * @method \Aws\Result describeAppBlockBuilderAppBlockAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAppBlockBuilderAppBlockAssociationsAsync(array $args = [])
 * @method \Aws\Result describeAppBlockBuilders(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAppBlockBuildersAsync(array $args = [])
 * @method \Aws\Result describeAppBlocks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAppBlocksAsync(array $args = [])
 * @method \Aws\Result describeApplicationFleetAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeApplicationFleetAssociationsAsync(array $args = [])
 * @method \Aws\Result describeApplications(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeApplicationsAsync(array $args = [])
 * @method \Aws\Result describeDirectoryConfigs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDirectoryConfigsAsync(array $args = [])
 * @method \Aws\Result describeEntitlements(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeEntitlementsAsync(array $args = [])
 * @method \Aws\Result describeFleets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFleetsAsync(array $args = [])
 * @method \Aws\Result describeImageBuilders(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeImageBuildersAsync(array $args = [])
 * @method \Aws\Result describeImagePermissions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeImagePermissionsAsync(array $args = [])
 * @method \Aws\Result describeImages(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeImagesAsync(array $args = [])
 * @method \Aws\Result describeSessions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeSessionsAsync(array $args = [])
 * @method \Aws\Result describeStacks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeStacksAsync(array $args = [])
 * @method \Aws\Result describeUsageReportSubscriptions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeUsageReportSubscriptionsAsync(array $args = [])
 * @method \Aws\Result describeUserStackAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeUserStackAssociationsAsync(array $args = [])
 * @method \Aws\Result describeUsers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeUsersAsync(array $args = [])
 * @method \Aws\Result disableUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disableUserAsync(array $args = [])
 * @method \Aws\Result disassociateAppBlockBuilderAppBlock(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateAppBlockBuilderAppBlockAsync(array $args = [])
 * @method \Aws\Result disassociateApplicationFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateApplicationFleetAsync(array $args = [])
 * @method \Aws\Result disassociateApplicationFromEntitlement(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateApplicationFromEntitlementAsync(array $args = [])
 * @method \Aws\Result disassociateFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateFleetAsync(array $args = [])
 * @method \Aws\Result enableUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise enableUserAsync(array $args = [])
 * @method \Aws\Result expireSession(array $args = [])
 * @method \GuzzleHttp\Promise\Promise expireSessionAsync(array $args = [])
 * @method \Aws\Result listAssociatedFleets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAssociatedFleetsAsync(array $args = [])
 * @method \Aws\Result listAssociatedStacks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAssociatedStacksAsync(array $args = [])
 * @method \Aws\Result listEntitledApplications(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEntitledApplicationsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result startAppBlockBuilder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startAppBlockBuilderAsync(array $args = [])
 * @method \Aws\Result startFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startFleetAsync(array $args = [])
 * @method \Aws\Result startImageBuilder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startImageBuilderAsync(array $args = [])
 * @method \Aws\Result stopAppBlockBuilder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopAppBlockBuilderAsync(array $args = [])
 * @method \Aws\Result stopFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopFleetAsync(array $args = [])
 * @method \Aws\Result stopImageBuilder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopImageBuilderAsync(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 updateAppBlockBuilder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAppBlockBuilderAsync(array $args = [])
 * @method \Aws\Result updateApplication(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateApplicationAsync(array $args = [])
 * @method \Aws\Result updateDirectoryConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDirectoryConfigAsync(array $args = [])
 * @method \Aws\Result updateEntitlement(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateEntitlementAsync(array $args = [])
 * @method \Aws\Result updateFleet(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFleetAsync(array $args = [])
 * @method \Aws\Result updateImagePermissions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateImagePermissionsAsync(array $args = [])
 * @method \Aws\Result updateStack(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateStackAsync(array $args = [])
 */
class AppstreamClient extends AwsClient {}


<?php
namespace Aws\Appstream\Exception;

use Aws\Exception\AwsException;

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


<?php
namespace Aws\AppSync;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS AppSync** service.
 * @method \Aws\Result associateApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateApiAsync(array $args = [])
 * @method \Aws\Result associateMergedGraphqlApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateMergedGraphqlApiAsync(array $args = [])
 * @method \Aws\Result associateSourceGraphqlApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateSourceGraphqlApiAsync(array $args = [])
 * @method \Aws\Result createApiCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createApiCacheAsync(array $args = [])
 * @method \Aws\Result createApiKey(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createApiKeyAsync(array $args = [])
 * @method \Aws\Result createDataSource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDataSourceAsync(array $args = [])
 * @method \Aws\Result createDomainName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDomainNameAsync(array $args = [])
 * @method \Aws\Result createFunction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFunctionAsync(array $args = [])
 * @method \Aws\Result createGraphqlApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createGraphqlApiAsync(array $args = [])
 * @method \Aws\Result createResolver(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createResolverAsync(array $args = [])
 * @method \Aws\Result createType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createTypeAsync(array $args = [])
 * @method \Aws\Result deleteApiCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteApiCacheAsync(array $args = [])
 * @method \Aws\Result deleteApiKey(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteApiKeyAsync(array $args = [])
 * @method \Aws\Result deleteDataSource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDataSourceAsync(array $args = [])
 * @method \Aws\Result deleteDomainName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDomainNameAsync(array $args = [])
 * @method \Aws\Result deleteFunction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteFunctionAsync(array $args = [])
 * @method \Aws\Result deleteGraphqlApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteGraphqlApiAsync(array $args = [])
 * @method \Aws\Result deleteResolver(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteResolverAsync(array $args = [])
 * @method \Aws\Result deleteType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteTypeAsync(array $args = [])
 * @method \Aws\Result disassociateApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateApiAsync(array $args = [])
 * @method \Aws\Result disassociateMergedGraphqlApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateMergedGraphqlApiAsync(array $args = [])
 * @method \Aws\Result disassociateSourceGraphqlApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateSourceGraphqlApiAsync(array $args = [])
 * @method \Aws\Result evaluateCode(array $args = [])
 * @method \GuzzleHttp\Promise\Promise evaluateCodeAsync(array $args = [])
 * @method \Aws\Result evaluateMappingTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise evaluateMappingTemplateAsync(array $args = [])
 * @method \Aws\Result flushApiCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise flushApiCacheAsync(array $args = [])
 * @method \Aws\Result getApiAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getApiAssociationAsync(array $args = [])
 * @method \Aws\Result getApiCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getApiCacheAsync(array $args = [])
 * @method \Aws\Result getDataSource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDataSourceAsync(array $args = [])
 * @method \Aws\Result getDomainName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDomainNameAsync(array $args = [])
 * @method \Aws\Result getFunction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getFunctionAsync(array $args = [])
 * @method \Aws\Result getGraphqlApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getGraphqlApiAsync(array $args = [])
 * @method \Aws\Result getIntrospectionSchema(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getIntrospectionSchemaAsync(array $args = [])
 * @method \Aws\Result getResolver(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getResolverAsync(array $args = [])
 * @method \Aws\Result getSchemaCreationStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getSchemaCreationStatusAsync(array $args = [])
 * @method \Aws\Result getSourceApiAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getSourceApiAssociationAsync(array $args = [])
 * @method \Aws\Result getType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getTypeAsync(array $args = [])
 * @method \Aws\Result listApiKeys(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listApiKeysAsync(array $args = [])
 * @method \Aws\Result listDataSources(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDataSourcesAsync(array $args = [])
 * @method \Aws\Result listDomainNames(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDomainNamesAsync(array $args = [])
 * @method \Aws\Result listFunctions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listFunctionsAsync(array $args = [])
 * @method \Aws\Result listGraphqlApis(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listGraphqlApisAsync(array $args = [])
 * @method \Aws\Result listResolvers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listResolversAsync(array $args = [])
 * @method \Aws\Result listResolversByFunction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listResolversByFunctionAsync(array $args = [])
 * @method \Aws\Result listSourceApiAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listSourceApiAssociationsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result listTypes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTypesAsync(array $args = [])
 * @method \Aws\Result listTypesByAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTypesByAssociationAsync(array $args = [])
 * @method \Aws\Result startSchemaCreation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startSchemaCreationAsync(array $args = [])
 * @method \Aws\Result startSchemaMerge(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startSchemaMergeAsync(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 updateApiCache(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateApiCacheAsync(array $args = [])
 * @method \Aws\Result updateApiKey(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateApiKeyAsync(array $args = [])
 * @method \Aws\Result updateDataSource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDataSourceAsync(array $args = [])
 * @method \Aws\Result updateDomainName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateDomainNameAsync(array $args = [])
 * @method \Aws\Result updateFunction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFunctionAsync(array $args = [])
 * @method \Aws\Result updateGraphqlApi(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateGraphqlApiAsync(array $args = [])
 * @method \Aws\Result updateResolver(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateResolverAsync(array $args = [])
 * @method \Aws\Result updateSourceApiAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateSourceApiAssociationAsync(array $args = [])
 * @method \Aws\Result updateType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateTypeAsync(array $args = [])
 */
class AppSyncClient extends AwsClient {}


<?php
namespace Aws\AppSync\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS AppSync** service.
 */
class AppSyncException extends AwsException {}


<?php
namespace Aws\ARCZonalShift;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS ARC - Zonal Shift** service.
 * @method \Aws\Result cancelZonalShift(array $args = [])
 * @method \GuzzleHttp\Promise\Promise cancelZonalShiftAsync(array $args = [])
 * @method \Aws\Result getManagedResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getManagedResourceAsync(array $args = [])
 * @method \Aws\Result listManagedResources(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listManagedResourcesAsync(array $args = [])
 * @method \Aws\Result listZonalShifts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listZonalShiftsAsync(array $args = [])
 * @method \Aws\Result startZonalShift(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startZonalShiftAsync(array $args = [])
 * @method \Aws\Result updateZonalShift(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateZonalShiftAsync(array $args = [])
 */
class ARCZonalShiftClient extends AwsClient {}


<?php
namespace Aws\ARCZonalShift\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS ARC - Zonal Shift** service.
 */
class ARCZonalShiftException extends AwsException {}


<?php
namespace Aws\Arn;

use Aws\Arn\Exception\InvalidArnException;

/**
 * @internal
 */
class AccessPointArn extends Arn implements AccessPointArnInterface
{
    use ResourceTypeAndIdTrait;

    /**
     * AccessPointArn constructor
     *
     * @param $data
     */
    public function __construct($data)
    {
        parent::__construct($data);
        static::validate($this->data);
    }

    public static function parse($string)
    {
        $data = parent::parse($string);
        $data = self::parseResourceTypeAndId($data);
        $data['accesspoint_name'] = $data['resource_id'];
        return $data;
    }

    public function getAccesspointName()
    {
        return $this->data['accesspoint_name'];
    }

    /**
     * Validation specific to AccessPointArn
     *
     * @param array $data
     */
    protected static function validate(array $data)
    {
        self::validateRegion($data, 'access point ARN');
        self::validateAccountId($data, 'access point ARN');

        if ($data['resource_type'] !== 'accesspoint') {
            throw new InvalidArnException("The 6th component of an access point ARN"
                . " represents the resource type and must be 'accesspoint'.");
        }

        if (empty($data['resource_id'])) {
            throw new InvalidArnException("The 7th component of an access point ARN"
                . " represents the resource ID and must not be empty.");
        }
        if (strpos($data['resource_id'], ':') !== false) {
            throw new InvalidArnException("The resource ID component of an access"
                . " point ARN must not contain additional components"
                . " (delimited by ':').");
        }
        if (!self::isValidHostLabel($data['resource_id'])) {
            throw new InvalidArnException("The resource ID in an access point ARN"
                . " must be a valid host label value.");
        }
    }
}


<?php
namespace Aws\Arn;

/**
 * @internal
 */
interface AccessPointArnInterface extends ArnInterface
{
    public function getAccesspointName();
}


<?php
namespace Aws\Arn;

use Aws\Arn\Exception\InvalidArnException;

/**
 * Amazon Resource Names (ARNs) uniquely identify AWS resources. The Arn class
 * parses and stores a generic ARN object representation that can apply to any
 * service resource.
 *
 * @internal
 */
class Arn implements ArnInterface
{
    protected $data;
    protected $string;

    public static function parse($string)
    {
        $data = [
            'arn' => null,
            'partition' => null,
            'service' => null,
            'region' => null,
            'account_id' => null,
            'resource' => null,
        ];

        $length = strlen($string);
        $lastDelim = 0;
        $numComponents = 0;
        for ($i = 0; $i < $length; $i++) {

            if (($numComponents < 5 && $string[$i] === ':')) {
                // Split components between delimiters
                $data[key($data)] = substr($string, $lastDelim, $i - $lastDelim);

                // Do not include delimiter character itself
                $lastDelim = $i + 1;
                next($data);
                $numComponents++;
            }

            if ($i === $length - 1) {
                // Put the remainder in the last component.
                if (in_array($numComponents, [5])) {
                    $data['resource'] = substr($string, $lastDelim);
                } else {
                    // If there are < 5 components, put remainder in current
                    // component.
                    $data[key($data)] = substr($string, $lastDelim);
                }
            }
        }

        return $data;
    }

    public function __construct($data)
    {
        if (is_array($data)) {
            $this->data = $data;
        } elseif (is_string($data)) {
            $this->data = static::parse($data);
        } else {
            throw new InvalidArnException('Constructor accepts a string or an'
                . ' array as an argument.');
        }

        static::validate($this->data);
    }

    public function __toString()
    {
        if (!isset($this->string)) {
            $components = [
                $this->getPrefix(),
                $this->getPartition(),
                $this->getService(),
                $this->getRegion(),
                $this->getAccountId(),
                $this->getResource(),
            ];

            $this->string = implode(':', $components);
        }
        return $this->string;
    }

    public function getPrefix()
    {
        return $this->data['arn'];
    }

    public function getPartition()
    {
        return $this->data['partition'];
    }

    public function getService()
    {
        return $this->data['service'];
    }

    public function getRegion()
    {
        return $this->data['region'];
    }

    public function getAccountId()
    {
        return $this->data['account_id'];
    }

    public function getResource()
    {
        return $this->data['resource'];
    }

    public function toArray()
    {
        return $this->data;
    }

    /**
     * Minimally restrictive generic ARN validation
     *
     * @param array $data
     */
    protected static function validate(array $data)
    {
        if ($data['arn'] !== 'arn') {
            throw new InvalidArnException("The 1st component of an ARN must be"
                . " 'arn'.");
        }

        if (empty($data['partition'])) {
            throw new InvalidArnException("The 2nd component of an ARN"
                . " represents the partition and must not be empty.");
        }

        if (empty($data['service'])) {
            throw new InvalidArnException("The 3rd component of an ARN"
                . " represents the service and must not be empty.");
        }

        if (empty($data['resource'])) {
            throw new InvalidArnException("The 6th component of an ARN"
                . " represents the resource information and must not be empty."
                . " Individual service ARNs may include additional delimiters"
                . " to further qualify resources.");
        }
    }

    protected static function validateAccountId($data, $arnName)
    {
        if (!self::isValidHostLabel($data['account_id'])) {
            throw new InvalidArnException("The 5th component of a {$arnName}"
                . " is required, represents the account ID, and"
                . " must be a valid host label.");
        }
    }

    protected static function validateRegion($data, $arnName)
    {
        if (empty($data['region'])) {
            throw new InvalidArnException("The 4th component of a {$arnName}"
                . " represents the region and must not be empty.");
        }
    }

    /**
     * Validates whether a string component is a valid host label
     *
     * @param $string
     * @return bool
     */
    protected static function isValidHostLabel($string)
    {
        if (empty($string) || strlen($string) > 63) {
            return false;
        }
        if ($value = preg_match("/^[a-zA-Z0-9-]+$/", $string)) {
            return true;
        }
        return false;
    }
}


<?php
namespace Aws\Arn;

/**
 * Amazon Resource Names (ARNs) uniquely identify AWS resources. Classes
 * implementing ArnInterface parse and store an ARN object representation.
 *
 * Valid ARN formats include:
 *
 *   arn:partition:service:region:account-id:resource-id
 *   arn:partition:service:region:account-id:resource-type/resource-id
 *   arn:partition:service:region:account-id:resource-type:resource-id
 *
 * Some components may be omitted, depending on the service and resource type.
 *
 * @internal
 */
interface ArnInterface
{
    public static function parse($string);

    public function __toString();

    public function getPrefix();

    public function getPartition();

    public function getService();

    public function getRegion();

    public function getAccountId();

    public function getResource();

    public function toArray();
}


<?php
namespace Aws\Arn;

use Aws\Arn\S3\AccessPointArn as S3AccessPointArn;
use Aws\Arn\ObjectLambdaAccessPointArn;
use Aws\Arn\S3\MultiRegionAccessPointArn;
use Aws\Arn\S3\OutpostsBucketArn;
use Aws\Arn\S3\RegionalBucketArn;
use Aws\Arn\S3\OutpostsAccessPointArn;

/**
 * This class provides functionality to parse ARN strings and return a
 * corresponding ARN object. ARN-parsing logic may be subject to change in the
 * future, so this should not be relied upon for external customer usage.
 *
 * @internal
 */
class ArnParser
{
    /**
     * @param $string
     * @return bool
     */
    public static function isArn($string)
    {
        return $string !== null && strpos($string, 'arn:') === 0;
    }

    /**
     * Parses a string and returns an instance of ArnInterface. Returns a
     * specific type of Arn object if it has a specific class representation
     * or a generic Arn object if not.
     *
     * @param $string
     * @return ArnInterface
     */
    public static function parse($string)
    {
        $data = Arn::parse($string);
        if ($data['service'] === 's3-object-lambda') {
            return new ObjectLambdaAccessPointArn($string);
        }
        $resource = self::explodeResourceComponent($data['resource']);
        if ($resource[0] === 'outpost') {
            if (isset($resource[2]) && $resource[2] === 'bucket') {
                return new OutpostsBucketArn($string);
            }
            if (isset($resource[2]) && $resource[2] === 'accesspoint') {
                return new OutpostsAccessPointArn($string);
            }
        }
        if (empty($data['region'])) {
            return new MultiRegionAccessPointArn($string);
        }
        if ($resource[0] === 'accesspoint') {
            if ($data['service'] === 's3') {
                return new S3AccessPointArn($string);
            }
            return new AccessPointArn($string);
        }

        return new Arn($data);
    }

    private static function explodeResourceComponent($resource)
    {
        return preg_split("/[\/:]/", $resource);
    }
}


<?php
namespace Aws\Arn;

/**
 * This class represents an S3 Object bucket ARN, which is in the
 * following format:
 *
 * @internal
 */
class ObjectLambdaAccessPointArn extends AccessPointArn
{
    /**
     * Parses a string into an associative array of components that represent
     * a ObjectLambdaAccessPointArn
     *
     * @param $string
     * @return array
     */
    public static function parse($string)
    {
        $data = parent::parse($string);
        return parent::parseResourceTypeAndId($data);
    }

    /**
     *
     * @param array $data
     */
    protected static function validate(array $data)
    {
        parent::validate($data);
        self::validateRegion($data, 'S3 Object Lambda ARN');
        self::validateAccountId($data, 'S3 Object Lambda ARN');
    }
}


<?php
namespace Aws\Arn;

/**
 * @internal
 */
trait ResourceTypeAndIdTrait
{
    public function getResourceType()
    {
        return $this->data['resource_type'];
    }

    public function getResourceId()
    {
        return $this->data['resource_id'];
    }

    protected static function parseResourceTypeAndId(array $data)
    {
        $resourceData = preg_split("/[\/:]/", $data['resource'], 2);
        $data['resource_type'] = isset($resourceData[0])
            ? $resourceData[0]
            : null;
        $data['resource_id'] = isset($resourceData[1])
            ? $resourceData[1]
            : null;
        return $data;
    }
}


<?php
namespace Aws\Arn\Exception;

/**
 * Represents a failed attempt to construct an Arn
 */
class InvalidArnException extends \RuntimeException {}


<?php
namespace Aws\Arn\S3;

use Aws\Arn\AccessPointArn as BaseAccessPointArn;
use Aws\Arn\AccessPointArnInterface;
use Aws\Arn\ArnInterface;
use Aws\Arn\Exception\InvalidArnException;

/**
 * @internal
 */
class AccessPointArn extends BaseAccessPointArn implements AccessPointArnInterface
{
    /**
     * Validation specific to AccessPointArn
     *
     * @param array $data
     */
    public static function validate(array $data)
    {
        parent::validate($data);
        if ($data['service'] !== 's3') {
            throw new InvalidArnException("The 3rd component of an S3 access"
                . " point ARN represents the region and must be 's3'.");
        }
    }
}


<?php
namespace Aws\Arn\S3;

use Aws\Arn\ArnInterface;

/**
 * @internal
 */
interface BucketArnInterface extends ArnInterface
{
    public function getBucketName();
}


<?php
namespace Aws\Arn\S3;

use Aws\Arn\Arn;
use Aws\Arn\ResourceTypeAndIdTrait;

/**
 * This class represents an S3 multi-region bucket ARN, which is in the
 * following format:
 *
 * @internal
 */
class MultiRegionAccessPointArn extends AccessPointArn
{
    use ResourceTypeAndIdTrait;

    /**
     * Parses a string into an associative array of components that represent
     * a MultiRegionArn
     *
     * @param $string
     * @return array
     */
    public static function parse($string)
    {
        return parent::parse($string);
    }

    /**
     *
     * @param array $data
     */
    public static function validate(array $data)
    {
        Arn::validate($data);
    }

}


<?php
namespace Aws\Arn\S3;

use Aws\Arn\AccessPointArn as BaseAccessPointArn;
use Aws\Arn\AccessPointArnInterface;
use Aws\Arn\Arn;
use Aws\Arn\Exception\InvalidArnException;

/**
 * This class represents an S3 Outposts access point ARN, which is in the
 * following format:
 *
 * arn:{partition}:s3-outposts:{region}:{accountId}:outpost:{outpostId}:accesspoint:{accesspointName}
 *
 * ':' and '/' can be used interchangeably as delimiters for components after
 * the account ID.
 *
 * @internal
 */
class OutpostsAccessPointArn extends BaseAccessPointArn implements
    AccessPointArnInterface,
    OutpostsArnInterface
{
    public static function parse($string)
    {
        $data = parent::parse($string);
        return self::parseOutpostData($data);
    }

    public function getOutpostId()
    {
        return $this->data['outpost_id'];
    }

    public function getAccesspointName()
    {
        return $this->data['accesspoint_name'];
    }

    private static function parseOutpostData(array $data)
    {
        $resourceData = preg_split("/[\/:]/", $data['resource_id']);

        $data['outpost_id'] = isset($resourceData[0])
            ? $resourceData[0]
            : null;
        $data['accesspoint_type'] = isset($resourceData[1])
            ? $resourceData[1]
            : null;
        $data['accesspoint_name'] = isset($resourceData[2])
            ? $resourceData[2]
            : null;
        if (isset($resourceData[3])) {
            $data['resource_extra'] = implode(':', array_slice($resourceData, 3));
        }

        return $data;
    }

    /**
     * Validation specific to OutpostsAccessPointArn. Note this uses the base Arn
     * class validation instead of the direct parent due to it having slightly
     * differing requirements from its parent.
     *
     * @param array $data
     */
    public static function validate(array $data)
    {
        Arn::validate($data);

        if (($data['service'] !== 's3-outposts')) {
            throw new InvalidArnException("The 3rd component of an S3 Outposts"
                . " access point ARN represents the service and must be"
                . " 's3-outposts'.");
        }

        self::validateRegion($data, 'S3 Outposts access point ARN');
        self::validateAccountId($data, 'S3 Outposts access point ARN');

        if (($data['resource_type'] !== 'outpost')) {
            throw new InvalidArnException("The 6th component of an S3 Outposts"
                . " access point ARN represents the resource type and must be"
                . " 'outpost'.");
        }

        if (!self::isValidHostLabel($data['outpost_id'])) {
            throw new InvalidArnException("The 7th component of an S3 Outposts"
                . " access point ARN is required, represents the outpost ID, and"
                . " must be a valid host label.");
        }

        if ($data['accesspoint_type'] !== 'accesspoint') {
            throw new InvalidArnException("The 8th component of an S3 Outposts"
                . " access point ARN must be 'accesspoint'");
        }

        if (!self::isValidHostLabel($data['accesspoint_name'])) {
            throw new InvalidArnException("The 9th component of an S3 Outposts"
                . " access point ARN is required, represents the accesspoint name,"
                . " and must be a valid host label.");
        }

        if (!empty($data['resource_extra'])) {
            throw new InvalidArnException("An S3 Outposts access point ARN"
                . " should only have 9 components, delimited by the characters"
                . " ':' and '/'. '{$data['resource_extra']}' was found after the"
                . " 9th component.");
        }
    }
}


<?php
namespace Aws\Arn\S3;

use Aws\Arn\ArnInterface;

/**
 * @internal
 */
interface OutpostsArnInterface extends ArnInterface
{
    public function getOutpostId();
}


<?php
namespace Aws\Arn\S3;

use Aws\Arn\Arn;
use Aws\Arn\Exception\InvalidArnException;
use Aws\Arn\ResourceTypeAndIdTrait;

/**
 * This class represents an S3 Outposts bucket ARN, which is in the
 * following format:
 *
 * @internal
 */
class OutpostsBucketArn extends Arn implements
    BucketArnInterface,
    OutpostsArnInterface
{
    use ResourceTypeAndIdTrait;

    /**
     * Parses a string into an associative array of components that represent
     * a OutpostsBucketArn
     *
     * @param $string
     * @return array
     */
    public static function parse($string)
    {
        $data = parent::parse($string);
        $data = self::parseResourceTypeAndId($data);
        return self::parseOutpostData($data);
    }

    public function getBucketName()
    {
        return $this->data['bucket_name'];
    }

    public function getOutpostId()
    {
        return $this->data['outpost_id'];
    }

    private static function parseOutpostData(array $data)
    {
        $resourceData = preg_split("/[\/:]/", $data['resource_id'], 3);

        $data['outpost_id'] = isset($resourceData[0])
            ? $resourceData[0]
            : null;
        $data['bucket_label'] = isset($resourceData[1])
            ? $resourceData[1]
            : null;
        $data['bucket_name'] = isset($resourceData[2])
            ? $resourceData[2]
            : null;

        return $data;
    }

    /**
     *
     * @param array $data
     */
    public static function validate(array $data)
    {
        Arn::validate($data);

        if (($data['service'] !== 's3-outposts')) {
            throw new InvalidArnException("The 3rd component of an S3 Outposts"
                . " bucket ARN represents the service and must be 's3-outposts'.");
        }

        self::validateRegion($data, 'S3 Outposts bucket ARN');
        self::validateAccountId($data, 'S3 Outposts bucket ARN');

        if (($data['resource_type'] !== 'outpost')) {
            throw new InvalidArnException("The 6th component of an S3 Outposts"
                . " bucket ARN represents the resource type and must be"
                . " 'outpost'.");
        }

        if (!self::isValidHostLabel($data['outpost_id'])) {
            throw new InvalidArnException("The 7th component of an S3 Outposts"
                . " bucket ARN is required, represents the outpost ID, and"
                . " must be a valid host label.");
        }

        if ($data['bucket_label'] !== 'bucket') {
            throw new InvalidArnException("The 8th component of an S3 Outposts"
                . " bucket ARN must be 'bucket'");
        }

        if (empty($data['bucket_name'])) {
            throw new InvalidArnException("The 9th component of an S3 Outposts"
                . " bucket ARN represents the bucket name and must not be empty.");
        }
    }
}