<?php
namespace Aws\Comprehend;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Comprehend** service.
 * @method \Aws\Result batchDetectDominantLanguage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchDetectDominantLanguageAsync(array $args = [])
 * @method \Aws\Result batchDetectEntities(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchDetectEntitiesAsync(array $args = [])
 * @method \Aws\Result batchDetectKeyPhrases(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchDetectKeyPhrasesAsync(array $args = [])
 * @method \Aws\Result batchDetectSentiment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchDetectSentimentAsync(array $args = [])
 * @method \Aws\Result batchDetectSyntax(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchDetectSyntaxAsync(array $args = [])
 * @method \Aws\Result batchDetectTargetedSentiment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchDetectTargetedSentimentAsync(array $args = [])
 * @method \Aws\Result classifyDocument(array $args = [])
 * @method \GuzzleHttp\Promise\Promise classifyDocumentAsync(array $args = [])
 * @method \Aws\Result containsPiiEntities(array $args = [])
 * @method \GuzzleHttp\Promise\Promise containsPiiEntitiesAsync(array $args = [])
 * @method \Aws\Result createDataset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDatasetAsync(array $args = [])
 * @method \Aws\Result createDocumentClassifier(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDocumentClassifierAsync(array $args = [])
 * @method \Aws\Result createEndpoint(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createEndpointAsync(array $args = [])
 * @method \Aws\Result createEntityRecognizer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createEntityRecognizerAsync(array $args = [])
 * @method \Aws\Result createFlywheel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFlywheelAsync(array $args = [])
 * @method \Aws\Result deleteDocumentClassifier(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDocumentClassifierAsync(array $args = [])
 * @method \Aws\Result deleteEndpoint(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEndpointAsync(array $args = [])
 * @method \Aws\Result deleteEntityRecognizer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEntityRecognizerAsync(array $args = [])
 * @method \Aws\Result deleteFlywheel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteFlywheelAsync(array $args = [])
 * @method \Aws\Result deleteResourcePolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteResourcePolicyAsync(array $args = [])
 * @method \Aws\Result describeDataset(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDatasetAsync(array $args = [])
 * @method \Aws\Result describeDocumentClassificationJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDocumentClassificationJobAsync(array $args = [])
 * @method \Aws\Result describeDocumentClassifier(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDocumentClassifierAsync(array $args = [])
 * @method \Aws\Result describeDominantLanguageDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDominantLanguageDetectionJobAsync(array $args = [])
 * @method \Aws\Result describeEndpoint(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeEndpointAsync(array $args = [])
 * @method \Aws\Result describeEntitiesDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeEntitiesDetectionJobAsync(array $args = [])
 * @method \Aws\Result describeEntityRecognizer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeEntityRecognizerAsync(array $args = [])
 * @method \Aws\Result describeEventsDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeEventsDetectionJobAsync(array $args = [])
 * @method \Aws\Result describeFlywheel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFlywheelAsync(array $args = [])
 * @method \Aws\Result describeFlywheelIteration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeFlywheelIterationAsync(array $args = [])
 * @method \Aws\Result describeKeyPhrasesDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeKeyPhrasesDetectionJobAsync(array $args = [])
 * @method \Aws\Result describePiiEntitiesDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describePiiEntitiesDetectionJobAsync(array $args = [])
 * @method \Aws\Result describeResourcePolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeResourcePolicyAsync(array $args = [])
 * @method \Aws\Result describeSentimentDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeSentimentDetectionJobAsync(array $args = [])
 * @method \Aws\Result describeTargetedSentimentDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeTargetedSentimentDetectionJobAsync(array $args = [])
 * @method \Aws\Result describeTopicsDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeTopicsDetectionJobAsync(array $args = [])
 * @method \Aws\Result detectDominantLanguage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectDominantLanguageAsync(array $args = [])
 * @method \Aws\Result detectEntities(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectEntitiesAsync(array $args = [])
 * @method \Aws\Result detectKeyPhrases(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectKeyPhrasesAsync(array $args = [])
 * @method \Aws\Result detectPiiEntities(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectPiiEntitiesAsync(array $args = [])
 * @method \Aws\Result detectSentiment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectSentimentAsync(array $args = [])
 * @method \Aws\Result detectSyntax(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectSyntaxAsync(array $args = [])
 * @method \Aws\Result detectTargetedSentiment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectTargetedSentimentAsync(array $args = [])
 * @method \Aws\Result importModel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise importModelAsync(array $args = [])
 * @method \Aws\Result listDatasets(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDatasetsAsync(array $args = [])
 * @method \Aws\Result listDocumentClassificationJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDocumentClassificationJobsAsync(array $args = [])
 * @method \Aws\Result listDocumentClassifierSummaries(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDocumentClassifierSummariesAsync(array $args = [])
 * @method \Aws\Result listDocumentClassifiers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDocumentClassifiersAsync(array $args = [])
 * @method \Aws\Result listDominantLanguageDetectionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDominantLanguageDetectionJobsAsync(array $args = [])
 * @method \Aws\Result listEndpoints(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEndpointsAsync(array $args = [])
 * @method \Aws\Result listEntitiesDetectionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEntitiesDetectionJobsAsync(array $args = [])
 * @method \Aws\Result listEntityRecognizerSummaries(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEntityRecognizerSummariesAsync(array $args = [])
 * @method \Aws\Result listEntityRecognizers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEntityRecognizersAsync(array $args = [])
 * @method \Aws\Result listEventsDetectionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEventsDetectionJobsAsync(array $args = [])
 * @method \Aws\Result listFlywheelIterationHistory(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listFlywheelIterationHistoryAsync(array $args = [])
 * @method \Aws\Result listFlywheels(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listFlywheelsAsync(array $args = [])
 * @method \Aws\Result listKeyPhrasesDetectionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listKeyPhrasesDetectionJobsAsync(array $args = [])
 * @method \Aws\Result listPiiEntitiesDetectionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPiiEntitiesDetectionJobsAsync(array $args = [])
 * @method \Aws\Result listSentimentDetectionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listSentimentDetectionJobsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result listTargetedSentimentDetectionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTargetedSentimentDetectionJobsAsync(array $args = [])
 * @method \Aws\Result listTopicsDetectionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTopicsDetectionJobsAsync(array $args = [])
 * @method \Aws\Result putResourcePolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putResourcePolicyAsync(array $args = [])
 * @method \Aws\Result startDocumentClassificationJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startDocumentClassificationJobAsync(array $args = [])
 * @method \Aws\Result startDominantLanguageDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startDominantLanguageDetectionJobAsync(array $args = [])
 * @method \Aws\Result startEntitiesDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startEntitiesDetectionJobAsync(array $args = [])
 * @method \Aws\Result startEventsDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startEventsDetectionJobAsync(array $args = [])
 * @method \Aws\Result startFlywheelIteration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startFlywheelIterationAsync(array $args = [])
 * @method \Aws\Result startKeyPhrasesDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startKeyPhrasesDetectionJobAsync(array $args = [])
 * @method \Aws\Result startPiiEntitiesDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startPiiEntitiesDetectionJobAsync(array $args = [])
 * @method \Aws\Result startSentimentDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startSentimentDetectionJobAsync(array $args = [])
 * @method \Aws\Result startTargetedSentimentDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startTargetedSentimentDetectionJobAsync(array $args = [])
 * @method \Aws\Result startTopicsDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startTopicsDetectionJobAsync(array $args = [])
 * @method \Aws\Result stopDominantLanguageDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopDominantLanguageDetectionJobAsync(array $args = [])
 * @method \Aws\Result stopEntitiesDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopEntitiesDetectionJobAsync(array $args = [])
 * @method \Aws\Result stopEventsDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopEventsDetectionJobAsync(array $args = [])
 * @method \Aws\Result stopKeyPhrasesDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopKeyPhrasesDetectionJobAsync(array $args = [])
 * @method \Aws\Result stopPiiEntitiesDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopPiiEntitiesDetectionJobAsync(array $args = [])
 * @method \Aws\Result stopSentimentDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopSentimentDetectionJobAsync(array $args = [])
 * @method \Aws\Result stopTargetedSentimentDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopTargetedSentimentDetectionJobAsync(array $args = [])
 * @method \Aws\Result stopTrainingDocumentClassifier(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopTrainingDocumentClassifierAsync(array $args = [])
 * @method \Aws\Result stopTrainingEntityRecognizer(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopTrainingEntityRecognizerAsync(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 updateEndpoint(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateEndpointAsync(array $args = [])
 * @method \Aws\Result updateFlywheel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFlywheelAsync(array $args = [])
 */
class ComprehendClient extends AwsClient {}


<?php
namespace Aws\Comprehend\Exception;

use Aws\Exception\AwsException;

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


<?php
namespace Aws\ComprehendMedical;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Comprehend Medical** service.
 * @method \Aws\Result describeEntitiesDetectionV2Job(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeEntitiesDetectionV2JobAsync(array $args = [])
 * @method \Aws\Result describeICD10CMInferenceJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeICD10CMInferenceJobAsync(array $args = [])
 * @method \Aws\Result describePHIDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describePHIDetectionJobAsync(array $args = [])
 * @method \Aws\Result describeRxNormInferenceJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRxNormInferenceJobAsync(array $args = [])
 * @method \Aws\Result describeSNOMEDCTInferenceJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeSNOMEDCTInferenceJobAsync(array $args = [])
 * @method \Aws\Result detectEntities(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectEntitiesAsync(array $args = [])
 * @method \Aws\Result detectEntitiesV2(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectEntitiesV2Async(array $args = [])
 * @method \Aws\Result detectPHI(array $args = [])
 * @method \GuzzleHttp\Promise\Promise detectPHIAsync(array $args = [])
 * @method \Aws\Result inferICD10CM(array $args = [])
 * @method \GuzzleHttp\Promise\Promise inferICD10CMAsync(array $args = [])
 * @method \Aws\Result inferRxNorm(array $args = [])
 * @method \GuzzleHttp\Promise\Promise inferRxNormAsync(array $args = [])
 * @method \Aws\Result inferSNOMEDCT(array $args = [])
 * @method \GuzzleHttp\Promise\Promise inferSNOMEDCTAsync(array $args = [])
 * @method \Aws\Result listEntitiesDetectionV2Jobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEntitiesDetectionV2JobsAsync(array $args = [])
 * @method \Aws\Result listICD10CMInferenceJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listICD10CMInferenceJobsAsync(array $args = [])
 * @method \Aws\Result listPHIDetectionJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPHIDetectionJobsAsync(array $args = [])
 * @method \Aws\Result listRxNormInferenceJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listRxNormInferenceJobsAsync(array $args = [])
 * @method \Aws\Result listSNOMEDCTInferenceJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listSNOMEDCTInferenceJobsAsync(array $args = [])
 * @method \Aws\Result startEntitiesDetectionV2Job(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startEntitiesDetectionV2JobAsync(array $args = [])
 * @method \Aws\Result startICD10CMInferenceJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startICD10CMInferenceJobAsync(array $args = [])
 * @method \Aws\Result startPHIDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startPHIDetectionJobAsync(array $args = [])
 * @method \Aws\Result startRxNormInferenceJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startRxNormInferenceJobAsync(array $args = [])
 * @method \Aws\Result startSNOMEDCTInferenceJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startSNOMEDCTInferenceJobAsync(array $args = [])
 * @method \Aws\Result stopEntitiesDetectionV2Job(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopEntitiesDetectionV2JobAsync(array $args = [])
 * @method \Aws\Result stopICD10CMInferenceJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopICD10CMInferenceJobAsync(array $args = [])
 * @method \Aws\Result stopPHIDetectionJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopPHIDetectionJobAsync(array $args = [])
 * @method \Aws\Result stopRxNormInferenceJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopRxNormInferenceJobAsync(array $args = [])
 * @method \Aws\Result stopSNOMEDCTInferenceJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopSNOMEDCTInferenceJobAsync(array $args = [])
 */
class ComprehendMedicalClient extends AwsClient {}


<?php
namespace Aws\ComprehendMedical\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Comprehend Medical** service.
 */
class ComprehendMedicalException extends AwsException {}


<?php
namespace Aws\ComputeOptimizer;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Compute Optimizer** service.
 * @method \Aws\Result deleteRecommendationPreferences(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRecommendationPreferencesAsync(array $args = [])
 * @method \Aws\Result describeRecommendationExportJobs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRecommendationExportJobsAsync(array $args = [])
 * @method \Aws\Result exportAutoScalingGroupRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise exportAutoScalingGroupRecommendationsAsync(array $args = [])
 * @method \Aws\Result exportEBSVolumeRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise exportEBSVolumeRecommendationsAsync(array $args = [])
 * @method \Aws\Result exportEC2InstanceRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise exportEC2InstanceRecommendationsAsync(array $args = [])
 * @method \Aws\Result exportECSServiceRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise exportECSServiceRecommendationsAsync(array $args = [])
 * @method \Aws\Result exportLambdaFunctionRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise exportLambdaFunctionRecommendationsAsync(array $args = [])
 * @method \Aws\Result getAutoScalingGroupRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAutoScalingGroupRecommendationsAsync(array $args = [])
 * @method \Aws\Result getEBSVolumeRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEBSVolumeRecommendationsAsync(array $args = [])
 * @method \Aws\Result getEC2InstanceRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEC2InstanceRecommendationsAsync(array $args = [])
 * @method \Aws\Result getEC2RecommendationProjectedMetrics(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEC2RecommendationProjectedMetricsAsync(array $args = [])
 * @method \Aws\Result getECSServiceRecommendationProjectedMetrics(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getECSServiceRecommendationProjectedMetricsAsync(array $args = [])
 * @method \Aws\Result getECSServiceRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getECSServiceRecommendationsAsync(array $args = [])
 * @method \Aws\Result getEffectiveRecommendationPreferences(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEffectiveRecommendationPreferencesAsync(array $args = [])
 * @method \Aws\Result getEnrollmentStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEnrollmentStatusAsync(array $args = [])
 * @method \Aws\Result getEnrollmentStatusesForOrganization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getEnrollmentStatusesForOrganizationAsync(array $args = [])
 * @method \Aws\Result getLambdaFunctionRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getLambdaFunctionRecommendationsAsync(array $args = [])
 * @method \Aws\Result getRecommendationPreferences(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getRecommendationPreferencesAsync(array $args = [])
 * @method \Aws\Result getRecommendationSummaries(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getRecommendationSummariesAsync(array $args = [])
 * @method \Aws\Result putRecommendationPreferences(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putRecommendationPreferencesAsync(array $args = [])
 * @method \Aws\Result updateEnrollmentStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateEnrollmentStatusAsync(array $args = [])
 */
class ComputeOptimizerClient extends AwsClient {}


<?php
namespace Aws\ComputeOptimizer\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Compute Optimizer** service.
 */
class ComputeOptimizerException extends AwsException {}


<?php
namespace Aws\ConfigService;

use Aws\AwsClient;

/**
 * This client is used to interact with AWS Config.
 *
 * @method \Aws\Result batchGetAggregateResourceConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchGetAggregateResourceConfigAsync(array $args = [])
 * @method \Aws\Result batchGetResourceConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchGetResourceConfigAsync(array $args = [])
 * @method \Aws\Result deleteAggregationAuthorization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAggregationAuthorizationAsync(array $args = [])
 * @method \Aws\Result deleteConfigRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteConfigRuleAsync(array $args = [])
 * @method \Aws\Result deleteConfigurationAggregator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteConfigurationAggregatorAsync(array $args = [])
 * @method \Aws\Result deleteConfigurationRecorder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteConfigurationRecorderAsync(array $args = [])
 * @method \Aws\Result deleteConformancePack(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteConformancePackAsync(array $args = [])
 * @method \Aws\Result deleteDeliveryChannel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDeliveryChannelAsync(array $args = [])
 * @method \Aws\Result deleteEvaluationResults(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEvaluationResultsAsync(array $args = [])
 * @method \Aws\Result deleteOrganizationConfigRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteOrganizationConfigRuleAsync(array $args = [])
 * @method \Aws\Result deleteOrganizationConformancePack(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteOrganizationConformancePackAsync(array $args = [])
 * @method \Aws\Result deletePendingAggregationRequest(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deletePendingAggregationRequestAsync(array $args = [])
 * @method \Aws\Result deleteRemediationConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRemediationConfigurationAsync(array $args = [])
 * @method \Aws\Result deleteRemediationExceptions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRemediationExceptionsAsync(array $args = [])
 * @method \Aws\Result deleteResourceConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteResourceConfigAsync(array $args = [])
 * @method \Aws\Result deleteRetentionConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRetentionConfigurationAsync(array $args = [])
 * @method \Aws\Result deleteStoredQuery(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteStoredQueryAsync(array $args = [])
 * @method \Aws\Result deliverConfigSnapshot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deliverConfigSnapshotAsync(array $args = [])
 * @method \Aws\Result describeAggregateComplianceByConfigRules(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAggregateComplianceByConfigRulesAsync(array $args = [])
 * @method \Aws\Result describeAggregateComplianceByConformancePacks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAggregateComplianceByConformancePacksAsync(array $args = [])
 * @method \Aws\Result describeAggregationAuthorizations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAggregationAuthorizationsAsync(array $args = [])
 * @method \Aws\Result describeComplianceByConfigRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeComplianceByConfigRuleAsync(array $args = [])
 * @method \Aws\Result describeComplianceByResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeComplianceByResourceAsync(array $args = [])
 * @method \Aws\Result describeConfigRuleEvaluationStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConfigRuleEvaluationStatusAsync(array $args = [])
 * @method \Aws\Result describeConfigRules(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConfigRulesAsync(array $args = [])
 * @method \Aws\Result describeConfigurationAggregatorSourcesStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConfigurationAggregatorSourcesStatusAsync(array $args = [])
 * @method \Aws\Result describeConfigurationAggregators(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConfigurationAggregatorsAsync(array $args = [])
 * @method \Aws\Result describeConfigurationRecorderStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConfigurationRecorderStatusAsync(array $args = [])
 * @method \Aws\Result describeConfigurationRecorders(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConfigurationRecordersAsync(array $args = [])
 * @method \Aws\Result describeConformancePackCompliance(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConformancePackComplianceAsync(array $args = [])
 * @method \Aws\Result describeConformancePackStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConformancePackStatusAsync(array $args = [])
 * @method \Aws\Result describeConformancePacks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeConformancePacksAsync(array $args = [])
 * @method \Aws\Result describeDeliveryChannelStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDeliveryChannelStatusAsync(array $args = [])
 * @method \Aws\Result describeDeliveryChannels(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeDeliveryChannelsAsync(array $args = [])
 * @method \Aws\Result describeOrganizationConfigRuleStatuses(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeOrganizationConfigRuleStatusesAsync(array $args = [])
 * @method \Aws\Result describeOrganizationConfigRules(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeOrganizationConfigRulesAsync(array $args = [])
 * @method \Aws\Result describeOrganizationConformancePackStatuses(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeOrganizationConformancePackStatusesAsync(array $args = [])
 * @method \Aws\Result describeOrganizationConformancePacks(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeOrganizationConformancePacksAsync(array $args = [])
 * @method \Aws\Result describePendingAggregationRequests(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describePendingAggregationRequestsAsync(array $args = [])
 * @method \Aws\Result describeRemediationConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRemediationConfigurationsAsync(array $args = [])
 * @method \Aws\Result describeRemediationExceptions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRemediationExceptionsAsync(array $args = [])
 * @method \Aws\Result describeRemediationExecutionStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRemediationExecutionStatusAsync(array $args = [])
 * @method \Aws\Result describeRetentionConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRetentionConfigurationsAsync(array $args = [])
 * @method \Aws\Result getAggregateComplianceDetailsByConfigRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAggregateComplianceDetailsByConfigRuleAsync(array $args = [])
 * @method \Aws\Result getAggregateConfigRuleComplianceSummary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAggregateConfigRuleComplianceSummaryAsync(array $args = [])
 * @method \Aws\Result getAggregateConformancePackComplianceSummary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAggregateConformancePackComplianceSummaryAsync(array $args = [])
 * @method \Aws\Result getAggregateDiscoveredResourceCounts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAggregateDiscoveredResourceCountsAsync(array $args = [])
 * @method \Aws\Result getAggregateResourceConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAggregateResourceConfigAsync(array $args = [])
 * @method \Aws\Result getComplianceDetailsByConfigRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getComplianceDetailsByConfigRuleAsync(array $args = [])
 * @method \Aws\Result getComplianceDetailsByResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getComplianceDetailsByResourceAsync(array $args = [])
 * @method \Aws\Result getComplianceSummaryByConfigRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getComplianceSummaryByConfigRuleAsync(array $args = [])
 * @method \Aws\Result getComplianceSummaryByResourceType(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getComplianceSummaryByResourceTypeAsync(array $args = [])
 * @method \Aws\Result getConformancePackComplianceDetails(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getConformancePackComplianceDetailsAsync(array $args = [])
 * @method \Aws\Result getConformancePackComplianceSummary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getConformancePackComplianceSummaryAsync(array $args = [])
 * @method \Aws\Result getCustomRulePolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCustomRulePolicyAsync(array $args = [])
 * @method \Aws\Result getDiscoveredResourceCounts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDiscoveredResourceCountsAsync(array $args = [])
 * @method \Aws\Result getOrganizationConfigRuleDetailedStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getOrganizationConfigRuleDetailedStatusAsync(array $args = [])
 * @method \Aws\Result getOrganizationConformancePackDetailedStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getOrganizationConformancePackDetailedStatusAsync(array $args = [])
 * @method \Aws\Result getOrganizationCustomRulePolicy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getOrganizationCustomRulePolicyAsync(array $args = [])
 * @method \Aws\Result getResourceConfigHistory(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getResourceConfigHistoryAsync(array $args = [])
 * @method \Aws\Result getResourceEvaluationSummary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getResourceEvaluationSummaryAsync(array $args = [])
 * @method \Aws\Result getStoredQuery(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getStoredQueryAsync(array $args = [])
 * @method \Aws\Result listAggregateDiscoveredResources(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAggregateDiscoveredResourcesAsync(array $args = [])
 * @method \Aws\Result listConformancePackComplianceScores(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listConformancePackComplianceScoresAsync(array $args = [])
 * @method \Aws\Result listDiscoveredResources(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDiscoveredResourcesAsync(array $args = [])
 * @method \Aws\Result listResourceEvaluations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listResourceEvaluationsAsync(array $args = [])
 * @method \Aws\Result listStoredQueries(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listStoredQueriesAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result putAggregationAuthorization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putAggregationAuthorizationAsync(array $args = [])
 * @method \Aws\Result putConfigRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putConfigRuleAsync(array $args = [])
 * @method \Aws\Result putConfigurationAggregator(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putConfigurationAggregatorAsync(array $args = [])
 * @method \Aws\Result putConfigurationRecorder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putConfigurationRecorderAsync(array $args = [])
 * @method \Aws\Result putConformancePack(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putConformancePackAsync(array $args = [])
 * @method \Aws\Result putDeliveryChannel(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putDeliveryChannelAsync(array $args = [])
 * @method \Aws\Result putEvaluations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putEvaluationsAsync(array $args = [])
 * @method \Aws\Result putExternalEvaluation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putExternalEvaluationAsync(array $args = [])
 * @method \Aws\Result putOrganizationConfigRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putOrganizationConfigRuleAsync(array $args = [])
 * @method \Aws\Result putOrganizationConformancePack(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putOrganizationConformancePackAsync(array $args = [])
 * @method \Aws\Result putRemediationConfigurations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putRemediationConfigurationsAsync(array $args = [])
 * @method \Aws\Result putRemediationExceptions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putRemediationExceptionsAsync(array $args = [])
 * @method \Aws\Result putResourceConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putResourceConfigAsync(array $args = [])
 * @method \Aws\Result putRetentionConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putRetentionConfigurationAsync(array $args = [])
 * @method \Aws\Result putStoredQuery(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putStoredQueryAsync(array $args = [])
 * @method \Aws\Result selectAggregateResourceConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise selectAggregateResourceConfigAsync(array $args = [])
 * @method \Aws\Result selectResourceConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise selectResourceConfigAsync(array $args = [])
 * @method \Aws\Result startConfigRulesEvaluation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startConfigRulesEvaluationAsync(array $args = [])
 * @method \Aws\Result startConfigurationRecorder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startConfigurationRecorderAsync(array $args = [])
 * @method \Aws\Result startRemediationExecution(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startRemediationExecutionAsync(array $args = [])
 * @method \Aws\Result startResourceEvaluation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startResourceEvaluationAsync(array $args = [])
 * @method \Aws\Result stopConfigurationRecorder(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopConfigurationRecorderAsync(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 ConfigServiceClient extends AwsClient {}


<?php
namespace Aws\ConfigService\Exception;

use Aws\Exception\AwsException;

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


<?php

namespace Aws\Configuration;

class ConfigurationResolver
{
    const ENV_PROFILE = 'AWS_PROFILE';
    const ENV_CONFIG_FILE = 'AWS_CONFIG_FILE';

    public static $envPrefix = 'AWS_';

    /**
     * Generic configuration resolver that first checks for environment
     * variables, then checks for a specified profile in the environment-defined
     * config file location (env variable is 'AWS_CONFIG_FILE', file location
     * defaults to ~/.aws/config), then checks for the "default" profile in the
     * environment-defined config file location, and failing those uses a default
     * fallback value.
     *
     * @param string $key      Configuration key to be used when attempting
     *                         to retrieve value from the environment or ini file.
     * @param mixed $defaultValue
     * @param string $expectedType  The expected type of the retrieved value.
     * @param array $config
     * @param array $additionalArgs
     *
     * @return mixed
     */
    public static function resolve(
        $key,
        $defaultValue,
        $expectedType,
        $config = []
    )
    {
        $envValue = self::env($key, $expectedType);
        if (!is_null($envValue)) {
            return $envValue;
        }

        if (!isset($config['use_aws_shared_config_files'])
            || $config['use_aws_shared_config_files'] != false
        ) {
            $iniValue = self::ini($key, $expectedType);
            if(!is_null($iniValue)) {
                return $iniValue;
            }
        }

        return $defaultValue;
    }

    /**
     * Resolves config values from environment variables.
     *
     * @param string $key      Configuration key to be used when attempting
     *                         to retrieve value from the environment.
     * @param string $expectedType  The expected type of the retrieved value.
     *
     * @return null | mixed
     */
    public static function env($key, $expectedType)
    {
        // Use config from environment variables, if available
        $envValue = getenv(self::$envPrefix . strtoupper($key));
        if (!empty($envValue)) {
            if ($expectedType) {
                $envValue = self::convertType($envValue, $expectedType);
            }
            return $envValue;
        }

        return null;
    }

    /**
     * Gets config values from a config file whose location
     * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to
     * ~/.aws/config if not specified
     *
     *
     * @param string $key      Configuration key to be used when attempting
     *                         to retrieve value from ini file.
     * @param string $expectedType  The expected type of the retrieved value.
     * @param string|null $profile  Profile to use. If not specified will use
     *                              the "default" profile.
     * @param string|null $filename If provided, uses a custom filename rather
     *                              than looking in the default directory.
     *
     * @return null | mixed
     */
    public static function ini($key, $expectedType, $profile = null, $filename = null)
    {
        $filename = $filename ?: (self::getDefaultConfigFilename());
        $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default');

        if (!@is_readable($filename)) {
            return null;
        }
        // Use INI_SCANNER_NORMAL instead of INI_SCANNER_TYPED for PHP 5.5 compatibility
        //TODO change after deprecation
        $data = @\Aws\parse_ini_file($filename, true, INI_SCANNER_NORMAL);
        if ($data === false
            || !isset($data[$profile])
            || !isset($data[$profile][$key])
        ) {
            return null;
        }

        // INI_SCANNER_NORMAL parses false-y values as an empty string
        if ($data[$profile][$key] === "") {
            if ($expectedType === 'bool') {
                $data[$profile][$key] = false;
            } elseif ($expectedType === 'int') {
                $data[$profile][$key] = 0;
            }
        }

        return self::convertType($data[$profile][$key], $expectedType);
    }

    /**
     * Gets the environment's HOME directory if available.
     *
     * @return null | string
     */
    private static function getHomeDir()
    {
        // On Linux/Unix-like systems, use the HOME environment variable
        if ($homeDir = getenv('HOME')) {
            return $homeDir;
        }

        // Get the HOMEDRIVE and HOMEPATH values for Windows hosts
        $homeDrive = getenv('HOMEDRIVE');
        $homePath = getenv('HOMEPATH');

        return ($homeDrive && $homePath) ? $homeDrive . $homePath : null;
    }

    /**
     * Gets default config file location from environment, falling back to aws
     * default location
     *
     * @return string
     */
    private static function getDefaultConfigFilename()
    {
        if ($filename = getenv(self::ENV_CONFIG_FILE)) {
            return $filename;
        }
        return self::getHomeDir() . '/.aws/config';
    }

    /**
     * Normalizes string values pulled out of ini files and
     * environment variables.
     *
     * @param string $value The value retrieved from the environment or
     *                      ini file.
     * @param $type $string The type that the value needs to be converted to.
     *
     * @return mixed
     */
    private static function convertType($value, $type)
    {
        if ($type === 'bool'
            && !is_null($convertedValue = \Aws\boolean_value($value))
        ) {
            return $convertedValue;
        }

        if ($type === 'int'
            && filter_var($value, FILTER_VALIDATE_INT)
        ) {
            $value = intVal($value);
        }
        return $value;
    }
}


<?php
namespace Aws\Connect;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Connect Service** service.
 * @method \Aws\Result activateEvaluationForm(array $args = [])
 * @method \GuzzleHttp\Promise\Promise activateEvaluationFormAsync(array $args = [])
 * @method \Aws\Result associateApprovedOrigin(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateApprovedOriginAsync(array $args = [])
 * @method \Aws\Result associateBot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateBotAsync(array $args = [])
 * @method \Aws\Result associateDefaultVocabulary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateDefaultVocabularyAsync(array $args = [])
 * @method \Aws\Result associateInstanceStorageConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateInstanceStorageConfigAsync(array $args = [])
 * @method \Aws\Result associateLambdaFunction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateLambdaFunctionAsync(array $args = [])
 * @method \Aws\Result associateLexBot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateLexBotAsync(array $args = [])
 * @method \Aws\Result associatePhoneNumberContactFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associatePhoneNumberContactFlowAsync(array $args = [])
 * @method \Aws\Result associateQueueQuickConnects(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateQueueQuickConnectsAsync(array $args = [])
 * @method \Aws\Result associateRoutingProfileQueues(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateRoutingProfileQueuesAsync(array $args = [])
 * @method \Aws\Result associateSecurityKey(array $args = [])
 * @method \GuzzleHttp\Promise\Promise associateSecurityKeyAsync(array $args = [])
 * @method \Aws\Result claimPhoneNumber(array $args = [])
 * @method \GuzzleHttp\Promise\Promise claimPhoneNumberAsync(array $args = [])
 * @method \Aws\Result createAgentStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAgentStatusAsync(array $args = [])
 * @method \Aws\Result createContactFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createContactFlowAsync(array $args = [])
 * @method \Aws\Result createContactFlowModule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createContactFlowModuleAsync(array $args = [])
 * @method \Aws\Result createEvaluationForm(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createEvaluationFormAsync(array $args = [])
 * @method \Aws\Result createHoursOfOperation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createHoursOfOperationAsync(array $args = [])
 * @method \Aws\Result createInstance(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createInstanceAsync(array $args = [])
 * @method \Aws\Result createIntegrationAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createIntegrationAssociationAsync(array $args = [])
 * @method \Aws\Result createParticipant(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createParticipantAsync(array $args = [])
 * @method \Aws\Result createPrompt(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createPromptAsync(array $args = [])
 * @method \Aws\Result createQueue(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createQueueAsync(array $args = [])
 * @method \Aws\Result createQuickConnect(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createQuickConnectAsync(array $args = [])
 * @method \Aws\Result createRoutingProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createRoutingProfileAsync(array $args = [])
 * @method \Aws\Result createRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createRuleAsync(array $args = [])
 * @method \Aws\Result createSecurityProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createSecurityProfileAsync(array $args = [])
 * @method \Aws\Result createTaskTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createTaskTemplateAsync(array $args = [])
 * @method \Aws\Result createTrafficDistributionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createTrafficDistributionGroupAsync(array $args = [])
 * @method \Aws\Result createUseCase(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createUseCaseAsync(array $args = [])
 * @method \Aws\Result createUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createUserAsync(array $args = [])
 * @method \Aws\Result createUserHierarchyGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createUserHierarchyGroupAsync(array $args = [])
 * @method \Aws\Result createVocabulary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createVocabularyAsync(array $args = [])
 * @method \Aws\Result deactivateEvaluationForm(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deactivateEvaluationFormAsync(array $args = [])
 * @method \Aws\Result deleteContactEvaluation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteContactEvaluationAsync(array $args = [])
 * @method \Aws\Result deleteContactFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteContactFlowAsync(array $args = [])
 * @method \Aws\Result deleteContactFlowModule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteContactFlowModuleAsync(array $args = [])
 * @method \Aws\Result deleteEvaluationForm(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteEvaluationFormAsync(array $args = [])
 * @method \Aws\Result deleteHoursOfOperation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteHoursOfOperationAsync(array $args = [])
 * @method \Aws\Result deleteInstance(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteInstanceAsync(array $args = [])
 * @method \Aws\Result deleteIntegrationAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteIntegrationAssociationAsync(array $args = [])
 * @method \Aws\Result deletePrompt(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deletePromptAsync(array $args = [])
 * @method \Aws\Result deleteQuickConnect(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteQuickConnectAsync(array $args = [])
 * @method \Aws\Result deleteRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteRuleAsync(array $args = [])
 * @method \Aws\Result deleteSecurityProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteSecurityProfileAsync(array $args = [])
 * @method \Aws\Result deleteTaskTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteTaskTemplateAsync(array $args = [])
 * @method \Aws\Result deleteTrafficDistributionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteTrafficDistributionGroupAsync(array $args = [])
 * @method \Aws\Result deleteUseCase(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteUseCaseAsync(array $args = [])
 * @method \Aws\Result deleteUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteUserAsync(array $args = [])
 * @method \Aws\Result deleteUserHierarchyGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteUserHierarchyGroupAsync(array $args = [])
 * @method \Aws\Result deleteVocabulary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteVocabularyAsync(array $args = [])
 * @method \Aws\Result describeAgentStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeAgentStatusAsync(array $args = [])
 * @method \Aws\Result describeContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeContactAsync(array $args = [])
 * @method \Aws\Result describeContactEvaluation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeContactEvaluationAsync(array $args = [])
 * @method \Aws\Result describeContactFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeContactFlowAsync(array $args = [])
 * @method \Aws\Result describeContactFlowModule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeContactFlowModuleAsync(array $args = [])
 * @method \Aws\Result describeEvaluationForm(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeEvaluationFormAsync(array $args = [])
 * @method \Aws\Result describeHoursOfOperation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeHoursOfOperationAsync(array $args = [])
 * @method \Aws\Result describeInstance(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeInstanceAsync(array $args = [])
 * @method \Aws\Result describeInstanceAttribute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeInstanceAttributeAsync(array $args = [])
 * @method \Aws\Result describeInstanceStorageConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeInstanceStorageConfigAsync(array $args = [])
 * @method \Aws\Result describePhoneNumber(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describePhoneNumberAsync(array $args = [])
 * @method \Aws\Result describePrompt(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describePromptAsync(array $args = [])
 * @method \Aws\Result describeQueue(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeQueueAsync(array $args = [])
 * @method \Aws\Result describeQuickConnect(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeQuickConnectAsync(array $args = [])
 * @method \Aws\Result describeRoutingProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRoutingProfileAsync(array $args = [])
 * @method \Aws\Result describeRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeRuleAsync(array $args = [])
 * @method \Aws\Result describeSecurityProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeSecurityProfileAsync(array $args = [])
 * @method \Aws\Result describeTrafficDistributionGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeTrafficDistributionGroupAsync(array $args = [])
 * @method \Aws\Result describeUser(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeUserAsync(array $args = [])
 * @method \Aws\Result describeUserHierarchyGroup(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeUserHierarchyGroupAsync(array $args = [])
 * @method \Aws\Result describeUserHierarchyStructure(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeUserHierarchyStructureAsync(array $args = [])
 * @method \Aws\Result describeVocabulary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeVocabularyAsync(array $args = [])
 * @method \Aws\Result disassociateApprovedOrigin(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateApprovedOriginAsync(array $args = [])
 * @method \Aws\Result disassociateBot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateBotAsync(array $args = [])
 * @method \Aws\Result disassociateInstanceStorageConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateInstanceStorageConfigAsync(array $args = [])
 * @method \Aws\Result disassociateLambdaFunction(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateLambdaFunctionAsync(array $args = [])
 * @method \Aws\Result disassociateLexBot(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateLexBotAsync(array $args = [])
 * @method \Aws\Result disassociatePhoneNumberContactFlow(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociatePhoneNumberContactFlowAsync(array $args = [])
 * @method \Aws\Result disassociateQueueQuickConnects(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateQueueQuickConnectsAsync(array $args = [])
 * @method \Aws\Result disassociateRoutingProfileQueues(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateRoutingProfileQueuesAsync(array $args = [])
 * @method \Aws\Result disassociateSecurityKey(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disassociateSecurityKeyAsync(array $args = [])
 * @method \Aws\Result dismissUserContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise dismissUserContactAsync(array $args = [])
 * @method \Aws\Result getContactAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getContactAttributesAsync(array $args = [])
 * @method \Aws\Result getCurrentMetricData(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCurrentMetricDataAsync(array $args = [])
 * @method \Aws\Result getCurrentUserData(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCurrentUserDataAsync(array $args = [])
 * @method \Aws\Result getFederationToken(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getFederationTokenAsync(array $args = [])
 * @method \Aws\Result getMetricData(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getMetricDataAsync(array $args = [])
 * @method \Aws\Result getMetricDataV2(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getMetricDataV2Async(array $args = [])
 * @method \Aws\Result getPromptFile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getPromptFileAsync(array $args = [])
 * @method \Aws\Result getTaskTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getTaskTemplateAsync(array $args = [])
 * @method \Aws\Result getTrafficDistribution(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getTrafficDistributionAsync(array $args = [])
 * @method \Aws\Result listAgentStatuses(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAgentStatusesAsync(array $args = [])
 * @method \Aws\Result listApprovedOrigins(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listApprovedOriginsAsync(array $args = [])
 * @method \Aws\Result listBots(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listBotsAsync(array $args = [])
 * @method \Aws\Result listContactEvaluations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listContactEvaluationsAsync(array $args = [])
 * @method \Aws\Result listContactFlowModules(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listContactFlowModulesAsync(array $args = [])
 * @method \Aws\Result listContactFlows(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listContactFlowsAsync(array $args = [])
 * @method \Aws\Result listContactReferences(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listContactReferencesAsync(array $args = [])
 * @method \Aws\Result listDefaultVocabularies(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDefaultVocabulariesAsync(array $args = [])
 * @method \Aws\Result listEvaluationFormVersions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEvaluationFormVersionsAsync(array $args = [])
 * @method \Aws\Result listEvaluationForms(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEvaluationFormsAsync(array $args = [])
 * @method \Aws\Result listHoursOfOperations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listHoursOfOperationsAsync(array $args = [])
 * @method \Aws\Result listInstanceAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listInstanceAttributesAsync(array $args = [])
 * @method \Aws\Result listInstanceStorageConfigs(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listInstanceStorageConfigsAsync(array $args = [])
 * @method \Aws\Result listInstances(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listInstancesAsync(array $args = [])
 * @method \Aws\Result listIntegrationAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listIntegrationAssociationsAsync(array $args = [])
 * @method \Aws\Result listLambdaFunctions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listLambdaFunctionsAsync(array $args = [])
 * @method \Aws\Result listLexBots(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listLexBotsAsync(array $args = [])
 * @method \Aws\Result listPhoneNumbers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPhoneNumbersAsync(array $args = [])
 * @method \Aws\Result listPhoneNumbersV2(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPhoneNumbersV2Async(array $args = [])
 * @method \Aws\Result listPrompts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listPromptsAsync(array $args = [])
 * @method \Aws\Result listQueueQuickConnects(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listQueueQuickConnectsAsync(array $args = [])
 * @method \Aws\Result listQueues(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listQueuesAsync(array $args = [])
 * @method \Aws\Result listQuickConnects(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listQuickConnectsAsync(array $args = [])
 * @method \Aws\Result listRoutingProfileQueues(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listRoutingProfileQueuesAsync(array $args = [])
 * @method \Aws\Result listRoutingProfiles(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listRoutingProfilesAsync(array $args = [])
 * @method \Aws\Result listRules(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listRulesAsync(array $args = [])
 * @method \Aws\Result listSecurityKeys(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listSecurityKeysAsync(array $args = [])
 * @method \Aws\Result listSecurityProfilePermissions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listSecurityProfilePermissionsAsync(array $args = [])
 * @method \Aws\Result listSecurityProfiles(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listSecurityProfilesAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result listTaskTemplates(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTaskTemplatesAsync(array $args = [])
 * @method \Aws\Result listTrafficDistributionGroups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTrafficDistributionGroupsAsync(array $args = [])
 * @method \Aws\Result listUseCases(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listUseCasesAsync(array $args = [])
 * @method \Aws\Result listUserHierarchyGroups(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listUserHierarchyGroupsAsync(array $args = [])
 * @method \Aws\Result listUsers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listUsersAsync(array $args = [])
 * @method \Aws\Result monitorContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise monitorContactAsync(array $args = [])
 * @method \Aws\Result putUserStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putUserStatusAsync(array $args = [])
 * @method \Aws\Result releasePhoneNumber(array $args = [])
 * @method \GuzzleHttp\Promise\Promise releasePhoneNumberAsync(array $args = [])
 * @method \Aws\Result replicateInstance(array $args = [])
 * @method \GuzzleHttp\Promise\Promise replicateInstanceAsync(array $args = [])
 * @method \Aws\Result resumeContactRecording(array $args = [])
 * @method \GuzzleHttp\Promise\Promise resumeContactRecordingAsync(array $args = [])
 * @method \Aws\Result searchAvailablePhoneNumbers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchAvailablePhoneNumbersAsync(array $args = [])
 * @method \Aws\Result searchHoursOfOperations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchHoursOfOperationsAsync(array $args = [])
 * @method \Aws\Result searchPrompts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchPromptsAsync(array $args = [])
 * @method \Aws\Result searchQueues(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchQueuesAsync(array $args = [])
 * @method \Aws\Result searchQuickConnects(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchQuickConnectsAsync(array $args = [])
 * @method \Aws\Result searchResourceTags(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchResourceTagsAsync(array $args = [])
 * @method \Aws\Result searchRoutingProfiles(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchRoutingProfilesAsync(array $args = [])
 * @method \Aws\Result searchSecurityProfiles(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchSecurityProfilesAsync(array $args = [])
 * @method \Aws\Result searchUsers(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchUsersAsync(array $args = [])
 * @method \Aws\Result searchVocabularies(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchVocabulariesAsync(array $args = [])
 * @method \Aws\Result startChatContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startChatContactAsync(array $args = [])
 * @method \Aws\Result startContactEvaluation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startContactEvaluationAsync(array $args = [])
 * @method \Aws\Result startContactRecording(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startContactRecordingAsync(array $args = [])
 * @method \Aws\Result startContactStreaming(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startContactStreamingAsync(array $args = [])
 * @method \Aws\Result startOutboundVoiceContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startOutboundVoiceContactAsync(array $args = [])
 * @method \Aws\Result startTaskContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startTaskContactAsync(array $args = [])
 * @method \Aws\Result stopContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopContactAsync(array $args = [])
 * @method \Aws\Result stopContactRecording(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopContactRecordingAsync(array $args = [])
 * @method \Aws\Result stopContactStreaming(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopContactStreamingAsync(array $args = [])
 * @method \Aws\Result submitContactEvaluation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise submitContactEvaluationAsync(array $args = [])
 * @method \Aws\Result suspendContactRecording(array $args = [])
 * @method \GuzzleHttp\Promise\Promise suspendContactRecordingAsync(array $args = [])
 * @method \Aws\Result tagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise tagResourceAsync(array $args = [])
 * @method \Aws\Result transferContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise transferContactAsync(array $args = [])
 * @method \Aws\Result untagResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise untagResourceAsync(array $args = [])
 * @method \Aws\Result updateAgentStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAgentStatusAsync(array $args = [])
 * @method \Aws\Result updateContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContactAsync(array $args = [])
 * @method \Aws\Result updateContactAttributes(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContactAttributesAsync(array $args = [])
 * @method \Aws\Result updateContactEvaluation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContactEvaluationAsync(array $args = [])
 * @method \Aws\Result updateContactFlowContent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContactFlowContentAsync(array $args = [])
 * @method \Aws\Result updateContactFlowMetadata(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContactFlowMetadataAsync(array $args = [])
 * @method \Aws\Result updateContactFlowModuleContent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContactFlowModuleContentAsync(array $args = [])
 * @method \Aws\Result updateContactFlowModuleMetadata(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContactFlowModuleMetadataAsync(array $args = [])
 * @method \Aws\Result updateContactFlowName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContactFlowNameAsync(array $args = [])
 * @method \Aws\Result updateContactSchedule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContactScheduleAsync(array $args = [])
 * @method \Aws\Result updateEvaluationForm(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateEvaluationFormAsync(array $args = [])
 * @method \Aws\Result updateHoursOfOperation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateHoursOfOperationAsync(array $args = [])
 * @method \Aws\Result updateInstanceAttribute(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateInstanceAttributeAsync(array $args = [])
 * @method \Aws\Result updateInstanceStorageConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateInstanceStorageConfigAsync(array $args = [])
 * @method \Aws\Result updateParticipantRoleConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateParticipantRoleConfigAsync(array $args = [])
 * @method \Aws\Result updatePhoneNumber(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updatePhoneNumberAsync(array $args = [])
 * @method \Aws\Result updatePrompt(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updatePromptAsync(array $args = [])
 * @method \Aws\Result updateQueueHoursOfOperation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateQueueHoursOfOperationAsync(array $args = [])
 * @method \Aws\Result updateQueueMaxContacts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateQueueMaxContactsAsync(array $args = [])
 * @method \Aws\Result updateQueueName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateQueueNameAsync(array $args = [])
 * @method \Aws\Result updateQueueOutboundCallerConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateQueueOutboundCallerConfigAsync(array $args = [])
 * @method \Aws\Result updateQueueStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateQueueStatusAsync(array $args = [])
 * @method \Aws\Result updateQuickConnectConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateQuickConnectConfigAsync(array $args = [])
 * @method \Aws\Result updateQuickConnectName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateQuickConnectNameAsync(array $args = [])
 * @method \Aws\Result updateRoutingProfileConcurrency(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRoutingProfileConcurrencyAsync(array $args = [])
 * @method \Aws\Result updateRoutingProfileDefaultOutboundQueue(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRoutingProfileDefaultOutboundQueueAsync(array $args = [])
 * @method \Aws\Result updateRoutingProfileName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRoutingProfileNameAsync(array $args = [])
 * @method \Aws\Result updateRoutingProfileQueues(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRoutingProfileQueuesAsync(array $args = [])
 * @method \Aws\Result updateRule(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateRuleAsync(array $args = [])
 * @method \Aws\Result updateSecurityProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateSecurityProfileAsync(array $args = [])
 * @method \Aws\Result updateTaskTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateTaskTemplateAsync(array $args = [])
 * @method \Aws\Result updateTrafficDistribution(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateTrafficDistributionAsync(array $args = [])
 * @method \Aws\Result updateUserHierarchy(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateUserHierarchyAsync(array $args = [])
 * @method \Aws\Result updateUserHierarchyGroupName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateUserHierarchyGroupNameAsync(array $args = [])
 * @method \Aws\Result updateUserHierarchyStructure(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateUserHierarchyStructureAsync(array $args = [])
 * @method \Aws\Result updateUserIdentityInfo(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateUserIdentityInfoAsync(array $args = [])
 * @method \Aws\Result updateUserPhoneConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateUserPhoneConfigAsync(array $args = [])
 * @method \Aws\Result updateUserRoutingProfile(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateUserRoutingProfileAsync(array $args = [])
 * @method \Aws\Result updateUserSecurityProfiles(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateUserSecurityProfilesAsync(array $args = [])
 */
class ConnectClient extends AwsClient {}


<?php
namespace Aws\Connect\Exception;

use Aws\Exception\AwsException;

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


<?php
namespace Aws\ConnectCampaignService;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AmazonConnectCampaignService** service.
 * @method \Aws\Result createCampaign(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createCampaignAsync(array $args = [])
 * @method \Aws\Result deleteCampaign(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteCampaignAsync(array $args = [])
 * @method \Aws\Result deleteConnectInstanceConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteConnectInstanceConfigAsync(array $args = [])
 * @method \Aws\Result deleteInstanceOnboardingJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteInstanceOnboardingJobAsync(array $args = [])
 * @method \Aws\Result describeCampaign(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeCampaignAsync(array $args = [])
 * @method \Aws\Result getCampaignState(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCampaignStateAsync(array $args = [])
 * @method \Aws\Result getCampaignStateBatch(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCampaignStateBatchAsync(array $args = [])
 * @method \Aws\Result getConnectInstanceConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getConnectInstanceConfigAsync(array $args = [])
 * @method \Aws\Result getInstanceOnboardingJobStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getInstanceOnboardingJobStatusAsync(array $args = [])
 * @method \Aws\Result listCampaigns(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listCampaignsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result pauseCampaign(array $args = [])
 * @method \GuzzleHttp\Promise\Promise pauseCampaignAsync(array $args = [])
 * @method \Aws\Result putDialRequestBatch(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putDialRequestBatchAsync(array $args = [])
 * @method \Aws\Result resumeCampaign(array $args = [])
 * @method \GuzzleHttp\Promise\Promise resumeCampaignAsync(array $args = [])
 * @method \Aws\Result startCampaign(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startCampaignAsync(array $args = [])
 * @method \Aws\Result startInstanceOnboardingJob(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startInstanceOnboardingJobAsync(array $args = [])
 * @method \Aws\Result stopCampaign(array $args = [])
 * @method \GuzzleHttp\Promise\Promise stopCampaignAsync(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 updateCampaignDialerConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateCampaignDialerConfigAsync(array $args = [])
 * @method \Aws\Result updateCampaignName(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateCampaignNameAsync(array $args = [])
 * @method \Aws\Result updateCampaignOutboundCallConfig(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateCampaignOutboundCallConfigAsync(array $args = [])
 */
class ConnectCampaignServiceClient extends AwsClient {}


<?php
namespace Aws\ConnectCampaignService\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AmazonConnectCampaignService** service.
 */
class ConnectCampaignServiceException extends AwsException {}


<?php
namespace Aws\ConnectCases;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Connect Cases** service.
 * @method \Aws\Result batchGetField(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchGetFieldAsync(array $args = [])
 * @method \Aws\Result batchPutFieldOptions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise batchPutFieldOptionsAsync(array $args = [])
 * @method \Aws\Result createCase(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createCaseAsync(array $args = [])
 * @method \Aws\Result createDomain(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createDomainAsync(array $args = [])
 * @method \Aws\Result createField(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createFieldAsync(array $args = [])
 * @method \Aws\Result createLayout(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createLayoutAsync(array $args = [])
 * @method \Aws\Result createRelatedItem(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createRelatedItemAsync(array $args = [])
 * @method \Aws\Result createTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createTemplateAsync(array $args = [])
 * @method \Aws\Result deleteDomain(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteDomainAsync(array $args = [])
 * @method \Aws\Result getCase(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCaseAsync(array $args = [])
 * @method \Aws\Result getCaseEventConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCaseEventConfigurationAsync(array $args = [])
 * @method \Aws\Result getDomain(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDomainAsync(array $args = [])
 * @method \Aws\Result getLayout(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getLayoutAsync(array $args = [])
 * @method \Aws\Result getTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getTemplateAsync(array $args = [])
 * @method \Aws\Result listCasesForContact(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listCasesForContactAsync(array $args = [])
 * @method \Aws\Result listDomains(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listDomainsAsync(array $args = [])
 * @method \Aws\Result listFieldOptions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listFieldOptionsAsync(array $args = [])
 * @method \Aws\Result listFields(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listFieldsAsync(array $args = [])
 * @method \Aws\Result listLayouts(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listLayoutsAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result listTemplates(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTemplatesAsync(array $args = [])
 * @method \Aws\Result putCaseEventConfiguration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putCaseEventConfigurationAsync(array $args = [])
 * @method \Aws\Result searchCases(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchCasesAsync(array $args = [])
 * @method \Aws\Result searchRelatedItems(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchRelatedItemsAsync(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 updateCase(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateCaseAsync(array $args = [])
 * @method \Aws\Result updateField(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateFieldAsync(array $args = [])
 * @method \Aws\Result updateLayout(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateLayoutAsync(array $args = [])
 * @method \Aws\Result updateTemplate(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateTemplateAsync(array $args = [])
 */
class ConnectCasesClient extends AwsClient {}


<?php
namespace Aws\ConnectCases\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon Connect Cases** service.
 */
class ConnectCasesException extends AwsException {}


<?php
namespace Aws\ConnectContactLens;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Connect Contact Lens** service.
 * @method \Aws\Result listRealtimeContactAnalysisSegments(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listRealtimeContactAnalysisSegmentsAsync(array $args = [])
 */
class ConnectContactLensClient extends AwsClient {}


<?php
namespace Aws\ConnectContactLens\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon Connect Contact Lens** service.
 */
class ConnectContactLensException extends AwsException {}


<?php
namespace Aws\ConnectParticipant;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Connect Participant Service** service.
 * @method \Aws\Result completeAttachmentUpload(array $args = [])
 * @method \GuzzleHttp\Promise\Promise completeAttachmentUploadAsync(array $args = [])
 * @method \Aws\Result createParticipantConnection(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createParticipantConnectionAsync(array $args = [])
 * @method \Aws\Result disconnectParticipant(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disconnectParticipantAsync(array $args = [])
 * @method \Aws\Result getAttachment(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAttachmentAsync(array $args = [])
 * @method \Aws\Result getTranscript(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getTranscriptAsync(array $args = [])
 * @method \Aws\Result sendEvent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise sendEventAsync(array $args = [])
 * @method \Aws\Result sendMessage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise sendMessageAsync(array $args = [])
 * @method \Aws\Result startAttachmentUpload(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startAttachmentUploadAsync(array $args = [])
 */
class ConnectParticipantClient extends AwsClient {}


<?php
namespace Aws\ConnectParticipant\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon Connect Participant Service** service.
 */
class ConnectParticipantException extends AwsException {}


<?php
namespace Aws\ConnectWisdomService;

use Aws\AwsClient;

/**
 * This client is used to interact with the **Amazon Connect Wisdom Service** service.
 * @method \Aws\Result createAssistant(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAssistantAsync(array $args = [])
 * @method \Aws\Result createAssistantAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAssistantAssociationAsync(array $args = [])
 * @method \Aws\Result createContent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createContentAsync(array $args = [])
 * @method \Aws\Result createKnowledgeBase(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createKnowledgeBaseAsync(array $args = [])
 * @method \Aws\Result createSession(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createSessionAsync(array $args = [])
 * @method \Aws\Result deleteAssistant(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAssistantAsync(array $args = [])
 * @method \Aws\Result deleteAssistantAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAssistantAssociationAsync(array $args = [])
 * @method \Aws\Result deleteContent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteContentAsync(array $args = [])
 * @method \Aws\Result deleteKnowledgeBase(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteKnowledgeBaseAsync(array $args = [])
 * @method \Aws\Result getAssistant(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAssistantAsync(array $args = [])
 * @method \Aws\Result getAssistantAssociation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAssistantAssociationAsync(array $args = [])
 * @method \Aws\Result getContent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getContentAsync(array $args = [])
 * @method \Aws\Result getContentSummary(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getContentSummaryAsync(array $args = [])
 * @method \Aws\Result getKnowledgeBase(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getKnowledgeBaseAsync(array $args = [])
 * @method \Aws\Result getRecommendations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getRecommendationsAsync(array $args = [])
 * @method \Aws\Result getSession(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getSessionAsync(array $args = [])
 * @method \Aws\Result listAssistantAssociations(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAssistantAssociationsAsync(array $args = [])
 * @method \Aws\Result listAssistants(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listAssistantsAsync(array $args = [])
 * @method \Aws\Result listContents(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listContentsAsync(array $args = [])
 * @method \Aws\Result listKnowledgeBases(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listKnowledgeBasesAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result notifyRecommendationsReceived(array $args = [])
 * @method \GuzzleHttp\Promise\Promise notifyRecommendationsReceivedAsync(array $args = [])
 * @method \Aws\Result queryAssistant(array $args = [])
 * @method \GuzzleHttp\Promise\Promise queryAssistantAsync(array $args = [])
 * @method \Aws\Result removeKnowledgeBaseTemplateUri(array $args = [])
 * @method \GuzzleHttp\Promise\Promise removeKnowledgeBaseTemplateUriAsync(array $args = [])
 * @method \Aws\Result searchContent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchContentAsync(array $args = [])
 * @method \Aws\Result searchSessions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise searchSessionsAsync(array $args = [])
 * @method \Aws\Result startContentUpload(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startContentUploadAsync(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 updateContent(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateContentAsync(array $args = [])
 * @method \Aws\Result updateKnowledgeBaseTemplateUri(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateKnowledgeBaseTemplateUriAsync(array $args = [])
 */
class ConnectWisdomServiceClient extends AwsClient {}


<?php
namespace Aws\ConnectWisdomService\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **Amazon Connect Wisdom Service** service.
 */
class ConnectWisdomServiceException extends AwsException {}


<?php
namespace Aws\ControlTower;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Control Tower** service.
 * @method \Aws\Result disableControl(array $args = [])
 * @method \GuzzleHttp\Promise\Promise disableControlAsync(array $args = [])
 * @method \Aws\Result enableControl(array $args = [])
 * @method \GuzzleHttp\Promise\Promise enableControlAsync(array $args = [])
 * @method \Aws\Result getControlOperation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getControlOperationAsync(array $args = [])
 * @method \Aws\Result listEnabledControls(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listEnabledControlsAsync(array $args = [])
 */
class ControlTowerClient extends AwsClient {}


<?php
namespace Aws\ControlTower\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Control Tower** service.
 */
class ControlTowerException extends AwsException {}


<?php
namespace Aws\CostandUsageReportService;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Cost and Usage Report Service** service.
 * @method \Aws\Result deleteReportDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteReportDefinitionAsync(array $args = [])
 * @method \Aws\Result describeReportDefinitions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeReportDefinitionsAsync(array $args = [])
 * @method \Aws\Result modifyReportDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise modifyReportDefinitionAsync(array $args = [])
 * @method \Aws\Result putReportDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise putReportDefinitionAsync(array $args = [])
 */
class CostandUsageReportServiceClient extends AwsClient {}


<?php
namespace Aws\CostandUsageReportService\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Cost and Usage Report Service** service.
 */
class CostandUsageReportServiceException extends AwsException {}


<?php
namespace Aws\CostExplorer;

use Aws\AwsClient;

/**
 * This client is used to interact with the **AWS Cost Explorer Service** service.
 * @method \Aws\Result createAnomalyMonitor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAnomalyMonitorAsync(array $args = [])
 * @method \Aws\Result createAnomalySubscription(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createAnomalySubscriptionAsync(array $args = [])
 * @method \Aws\Result createCostCategoryDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise createCostCategoryDefinitionAsync(array $args = [])
 * @method \Aws\Result deleteAnomalyMonitor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAnomalyMonitorAsync(array $args = [])
 * @method \Aws\Result deleteAnomalySubscription(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteAnomalySubscriptionAsync(array $args = [])
 * @method \Aws\Result deleteCostCategoryDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise deleteCostCategoryDefinitionAsync(array $args = [])
 * @method \Aws\Result describeCostCategoryDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise describeCostCategoryDefinitionAsync(array $args = [])
 * @method \Aws\Result getAnomalies(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAnomaliesAsync(array $args = [])
 * @method \Aws\Result getAnomalyMonitors(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAnomalyMonitorsAsync(array $args = [])
 * @method \Aws\Result getAnomalySubscriptions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getAnomalySubscriptionsAsync(array $args = [])
 * @method \Aws\Result getCostAndUsage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCostAndUsageAsync(array $args = [])
 * @method \Aws\Result getCostAndUsageWithResources(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCostAndUsageWithResourcesAsync(array $args = [])
 * @method \Aws\Result getCostCategories(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCostCategoriesAsync(array $args = [])
 * @method \Aws\Result getCostForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getCostForecastAsync(array $args = [])
 * @method \Aws\Result getDimensionValues(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getDimensionValuesAsync(array $args = [])
 * @method \Aws\Result getReservationCoverage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getReservationCoverageAsync(array $args = [])
 * @method \Aws\Result getReservationPurchaseRecommendation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getReservationPurchaseRecommendationAsync(array $args = [])
 * @method \Aws\Result getReservationUtilization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getReservationUtilizationAsync(array $args = [])
 * @method \Aws\Result getRightsizingRecommendation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getRightsizingRecommendationAsync(array $args = [])
 * @method \Aws\Result getSavingsPlansCoverage(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getSavingsPlansCoverageAsync(array $args = [])
 * @method \Aws\Result getSavingsPlansPurchaseRecommendation(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getSavingsPlansPurchaseRecommendationAsync(array $args = [])
 * @method \Aws\Result getSavingsPlansUtilization(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getSavingsPlansUtilizationAsync(array $args = [])
 * @method \Aws\Result getSavingsPlansUtilizationDetails(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getSavingsPlansUtilizationDetailsAsync(array $args = [])
 * @method \Aws\Result getTags(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getTagsAsync(array $args = [])
 * @method \Aws\Result getUsageForecast(array $args = [])
 * @method \GuzzleHttp\Promise\Promise getUsageForecastAsync(array $args = [])
 * @method \Aws\Result listCostAllocationTags(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listCostAllocationTagsAsync(array $args = [])
 * @method \Aws\Result listCostCategoryDefinitions(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listCostCategoryDefinitionsAsync(array $args = [])
 * @method \Aws\Result listSavingsPlansPurchaseRecommendationGeneration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listSavingsPlansPurchaseRecommendationGenerationAsync(array $args = [])
 * @method \Aws\Result listTagsForResource(array $args = [])
 * @method \GuzzleHttp\Promise\Promise listTagsForResourceAsync(array $args = [])
 * @method \Aws\Result provideAnomalyFeedback(array $args = [])
 * @method \GuzzleHttp\Promise\Promise provideAnomalyFeedbackAsync(array $args = [])
 * @method \Aws\Result startSavingsPlansPurchaseRecommendationGeneration(array $args = [])
 * @method \GuzzleHttp\Promise\Promise startSavingsPlansPurchaseRecommendationGenerationAsync(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 updateAnomalyMonitor(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAnomalyMonitorAsync(array $args = [])
 * @method \Aws\Result updateAnomalySubscription(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateAnomalySubscriptionAsync(array $args = [])
 * @method \Aws\Result updateCostAllocationTagsStatus(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateCostAllocationTagsStatusAsync(array $args = [])
 * @method \Aws\Result updateCostCategoryDefinition(array $args = [])
 * @method \GuzzleHttp\Promise\Promise updateCostCategoryDefinitionAsync(array $args = [])
 */
class CostExplorerClient extends AwsClient {}


<?php
namespace Aws\CostExplorer\Exception;

use Aws\Exception\AwsException;

/**
 * Represents an error interacting with the **AWS Cost Explorer Service** service.
 */
class CostExplorerException extends AwsException {}


<?php
namespace Aws\Credentials;

use Aws\Exception\CredentialsException;
use Aws\Result;
use Aws\Sts\StsClient;
use GuzzleHttp\Promise\PromiseInterface;

/**
 * Credential provider that provides credentials via assuming a role
 * More Information, see: http://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sts-2011-06-15.html#assumerole
 */
class AssumeRoleCredentialProvider
{
    const ERROR_MSG = "Missing required 'AssumeRoleCredentialProvider' configuration option: ";

    /** @var StsClient */
    private $client;

    /** @var array */
    private $assumeRoleParams;

    /**
     * The constructor requires following configure parameters:
     *  - client: a StsClient
     *  - assume_role_params: Parameters used to make assumeRole call
     *
     * @param array $config Configuration options
     * @throws \InvalidArgumentException
     */
    public function __construct(array $config = [])
    {
        if (!isset($config['assume_role_params'])) {
            throw new \InvalidArgumentException(self::ERROR_MSG . "'assume_role_params'.");
        }

        if (!isset($config['client'])) {
            throw new \InvalidArgumentException(self::ERROR_MSG . "'client'.");
        }

        $this->client = $config['client'];
        $this->assumeRoleParams = $config['assume_role_params'];
    }

    /**
     * Loads assume role credentials.
     *
     * @return PromiseInterface
     */
    public function __invoke()
    {
        $client = $this->client;
        return $client->assumeRoleAsync($this->assumeRoleParams)
            ->then(function (Result $result) {
                return $this->client->createCredentials($result);
            })->otherwise(function (\RuntimeException $exception) {
                throw new CredentialsException(
                    "Error in retrieving assume role credentials.",
                    0,
                    $exception
                );
            });
    }
}