Sdk.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. <?php
  2. namespace Aws;
  3. /**
  4. * Builds AWS clients based on configuration settings.
  5. *
  6. * @method \Aws\Acm\AcmClient createAcm(array $args = [])
  7. * @method \Aws\MultiRegionClient createMultiRegionAcm(array $args = [])
  8. * @method \Aws\ApiGateway\ApiGatewayClient createApiGateway(array $args = [])
  9. * @method \Aws\MultiRegionClient createMultiRegionApiGateway(array $args = [])
  10. * @method \Aws\ApplicationAutoScaling\ApplicationAutoScalingClient createApplicationAutoScaling(array $args = [])
  11. * @method \Aws\MultiRegionClient createMultiRegionApplicationAutoScaling(array $args = [])
  12. * @method \Aws\ApplicationDiscoveryService\ApplicationDiscoveryServiceClient createApplicationDiscoveryService(array $args = [])
  13. * @method \Aws\MultiRegionClient createMultiRegionApplicationDiscoveryService(array $args = [])
  14. * @method \Aws\Appstream\AppstreamClient createAppstream(array $args = [])
  15. * @method \Aws\MultiRegionClient createMultiRegionAppstream(array $args = [])
  16. * @method \Aws\Athena\AthenaClient createAthena(array $args = [])
  17. * @method \Aws\MultiRegionClient createMultiRegionAthena(array $args = [])
  18. * @method \Aws\AutoScaling\AutoScalingClient createAutoScaling(array $args = [])
  19. * @method \Aws\MultiRegionClient createMultiRegionAutoScaling(array $args = [])
  20. * @method \Aws\Batch\BatchClient createBatch(array $args = [])
  21. * @method \Aws\MultiRegionClient createMultiRegionBatch(array $args = [])
  22. * @method \Aws\Budgets\BudgetsClient createBudgets(array $args = [])
  23. * @method \Aws\MultiRegionClient createMultiRegionBudgets(array $args = [])
  24. * @method \Aws\CloudDirectory\CloudDirectoryClient createCloudDirectory(array $args = [])
  25. * @method \Aws\MultiRegionClient createMultiRegionCloudDirectory(array $args = [])
  26. * @method \Aws\CloudFormation\CloudFormationClient createCloudFormation(array $args = [])
  27. * @method \Aws\MultiRegionClient createMultiRegionCloudFormation(array $args = [])
  28. * @method \Aws\CloudFront\CloudFrontClient createCloudFront(array $args = [])
  29. * @method \Aws\MultiRegionClient createMultiRegionCloudFront(array $args = [])
  30. * @method \Aws\CloudHsm\CloudHsmClient createCloudHsm(array $args = [])
  31. * @method \Aws\MultiRegionClient createMultiRegionCloudHsm(array $args = [])
  32. * @method \Aws\CloudSearch\CloudSearchClient createCloudSearch(array $args = [])
  33. * @method \Aws\MultiRegionClient createMultiRegionCloudSearch(array $args = [])
  34. * @method \Aws\CloudSearchDomain\CloudSearchDomainClient createCloudSearchDomain(array $args = [])
  35. * @method \Aws\MultiRegionClient createMultiRegionCloudSearchDomain(array $args = [])
  36. * @method \Aws\CloudTrail\CloudTrailClient createCloudTrail(array $args = [])
  37. * @method \Aws\MultiRegionClient createMultiRegionCloudTrail(array $args = [])
  38. * @method \Aws\CloudWatch\CloudWatchClient createCloudWatch(array $args = [])
  39. * @method \Aws\MultiRegionClient createMultiRegionCloudWatch(array $args = [])
  40. * @method \Aws\CloudWatchEvents\CloudWatchEventsClient createCloudWatchEvents(array $args = [])
  41. * @method \Aws\MultiRegionClient createMultiRegionCloudWatchEvents(array $args = [])
  42. * @method \Aws\CloudWatchLogs\CloudWatchLogsClient createCloudWatchLogs(array $args = [])
  43. * @method \Aws\MultiRegionClient createMultiRegionCloudWatchLogs(array $args = [])
  44. * @method \Aws\CodeBuild\CodeBuildClient createCodeBuild(array $args = [])
  45. * @method \Aws\MultiRegionClient createMultiRegionCodeBuild(array $args = [])
  46. * @method \Aws\CodeCommit\CodeCommitClient createCodeCommit(array $args = [])
  47. * @method \Aws\MultiRegionClient createMultiRegionCodeCommit(array $args = [])
  48. * @method \Aws\CodeDeploy\CodeDeployClient createCodeDeploy(array $args = [])
  49. * @method \Aws\MultiRegionClient createMultiRegionCodeDeploy(array $args = [])
  50. * @method \Aws\CodePipeline\CodePipelineClient createCodePipeline(array $args = [])
  51. * @method \Aws\MultiRegionClient createMultiRegionCodePipeline(array $args = [])
  52. * @method \Aws\CodeStar\CodeStarClient createCodeStar(array $args = [])
  53. * @method \Aws\MultiRegionClient createMultiRegionCodeStar(array $args = [])
  54. * @method \Aws\CognitoIdentity\CognitoIdentityClient createCognitoIdentity(array $args = [])
  55. * @method \Aws\MultiRegionClient createMultiRegionCognitoIdentity(array $args = [])
  56. * @method \Aws\CognitoIdentityProvider\CognitoIdentityProviderClient createCognitoIdentityProvider(array $args = [])
  57. * @method \Aws\MultiRegionClient createMultiRegionCognitoIdentityProvider(array $args = [])
  58. * @method \Aws\CognitoSync\CognitoSyncClient createCognitoSync(array $args = [])
  59. * @method \Aws\MultiRegionClient createMultiRegionCognitoSync(array $args = [])
  60. * @method \Aws\ConfigService\ConfigServiceClient createConfigService(array $args = [])
  61. * @method \Aws\MultiRegionClient createMultiRegionConfigService(array $args = [])
  62. * @method \Aws\CostandUsageReportService\CostandUsageReportServiceClient createCostandUsageReportService(array $args = [])
  63. * @method \Aws\MultiRegionClient createMultiRegionCostandUsageReportService(array $args = [])
  64. * @method \Aws\DAX\DAXClient createDAX(array $args = [])
  65. * @method \Aws\MultiRegionClient createMultiRegionDAX(array $args = [])
  66. * @method \Aws\DataPipeline\DataPipelineClient createDataPipeline(array $args = [])
  67. * @method \Aws\MultiRegionClient createMultiRegionDataPipeline(array $args = [])
  68. * @method \Aws\DatabaseMigrationService\DatabaseMigrationServiceClient createDatabaseMigrationService(array $args = [])
  69. * @method \Aws\MultiRegionClient createMultiRegionDatabaseMigrationService(array $args = [])
  70. * @method \Aws\DeviceFarm\DeviceFarmClient createDeviceFarm(array $args = [])
  71. * @method \Aws\MultiRegionClient createMultiRegionDeviceFarm(array $args = [])
  72. * @method \Aws\DirectConnect\DirectConnectClient createDirectConnect(array $args = [])
  73. * @method \Aws\MultiRegionClient createMultiRegionDirectConnect(array $args = [])
  74. * @method \Aws\DirectoryService\DirectoryServiceClient createDirectoryService(array $args = [])
  75. * @method \Aws\MultiRegionClient createMultiRegionDirectoryService(array $args = [])
  76. * @method \Aws\DynamoDb\DynamoDbClient createDynamoDb(array $args = [])
  77. * @method \Aws\MultiRegionClient createMultiRegionDynamoDb(array $args = [])
  78. * @method \Aws\DynamoDbStreams\DynamoDbStreamsClient createDynamoDbStreams(array $args = [])
  79. * @method \Aws\MultiRegionClient createMultiRegionDynamoDbStreams(array $args = [])
  80. * @method \Aws\Ec2\Ec2Client createEc2(array $args = [])
  81. * @method \Aws\MultiRegionClient createMultiRegionEc2(array $args = [])
  82. * @method \Aws\Ecr\EcrClient createEcr(array $args = [])
  83. * @method \Aws\MultiRegionClient createMultiRegionEcr(array $args = [])
  84. * @method \Aws\Ecs\EcsClient createEcs(array $args = [])
  85. * @method \Aws\MultiRegionClient createMultiRegionEcs(array $args = [])
  86. * @method \Aws\Efs\EfsClient createEfs(array $args = [])
  87. * @method \Aws\MultiRegionClient createMultiRegionEfs(array $args = [])
  88. * @method \Aws\ElastiCache\ElastiCacheClient createElastiCache(array $args = [])
  89. * @method \Aws\MultiRegionClient createMultiRegionElastiCache(array $args = [])
  90. * @method \Aws\ElasticBeanstalk\ElasticBeanstalkClient createElasticBeanstalk(array $args = [])
  91. * @method \Aws\MultiRegionClient createMultiRegionElasticBeanstalk(array $args = [])
  92. * @method \Aws\ElasticLoadBalancing\ElasticLoadBalancingClient createElasticLoadBalancing(array $args = [])
  93. * @method \Aws\MultiRegionClient createMultiRegionElasticLoadBalancing(array $args = [])
  94. * @method \Aws\ElasticLoadBalancingV2\ElasticLoadBalancingV2Client createElasticLoadBalancingV2(array $args = [])
  95. * @method \Aws\MultiRegionClient createMultiRegionElasticLoadBalancingV2(array $args = [])
  96. * @method \Aws\ElasticTranscoder\ElasticTranscoderClient createElasticTranscoder(array $args = [])
  97. * @method \Aws\MultiRegionClient createMultiRegionElasticTranscoder(array $args = [])
  98. * @method \Aws\ElasticsearchService\ElasticsearchServiceClient createElasticsearchService(array $args = [])
  99. * @method \Aws\MultiRegionClient createMultiRegionElasticsearchService(array $args = [])
  100. * @method \Aws\Emr\EmrClient createEmr(array $args = [])
  101. * @method \Aws\MultiRegionClient createMultiRegionEmr(array $args = [])
  102. * @method \Aws\Firehose\FirehoseClient createFirehose(array $args = [])
  103. * @method \Aws\MultiRegionClient createMultiRegionFirehose(array $args = [])
  104. * @method \Aws\GameLift\GameLiftClient createGameLift(array $args = [])
  105. * @method \Aws\MultiRegionClient createMultiRegionGameLift(array $args = [])
  106. * @method \Aws\Glacier\GlacierClient createGlacier(array $args = [])
  107. * @method \Aws\MultiRegionClient createMultiRegionGlacier(array $args = [])
  108. * @method \Aws\Greengrass\GreengrassClient createGreengrass(array $args = [])
  109. * @method \Aws\MultiRegionClient createMultiRegionGreengrass(array $args = [])
  110. * @method \Aws\Health\HealthClient createHealth(array $args = [])
  111. * @method \Aws\MultiRegionClient createMultiRegionHealth(array $args = [])
  112. * @method \Aws\Iam\IamClient createIam(array $args = [])
  113. * @method \Aws\MultiRegionClient createMultiRegionIam(array $args = [])
  114. * @method \Aws\ImportExport\ImportExportClient createImportExport(array $args = [])
  115. * @method \Aws\MultiRegionClient createMultiRegionImportExport(array $args = [])
  116. * @method \Aws\Inspector\InspectorClient createInspector(array $args = [])
  117. * @method \Aws\MultiRegionClient createMultiRegionInspector(array $args = [])
  118. * @method \Aws\Iot\IotClient createIot(array $args = [])
  119. * @method \Aws\MultiRegionClient createMultiRegionIot(array $args = [])
  120. * @method \Aws\IotDataPlane\IotDataPlaneClient createIotDataPlane(array $args = [])
  121. * @method \Aws\MultiRegionClient createMultiRegionIotDataPlane(array $args = [])
  122. * @method \Aws\Kinesis\KinesisClient createKinesis(array $args = [])
  123. * @method \Aws\MultiRegionClient createMultiRegionKinesis(array $args = [])
  124. * @method \Aws\KinesisAnalytics\KinesisAnalyticsClient createKinesisAnalytics(array $args = [])
  125. * @method \Aws\MultiRegionClient createMultiRegionKinesisAnalytics(array $args = [])
  126. * @method \Aws\Kms\KmsClient createKms(array $args = [])
  127. * @method \Aws\MultiRegionClient createMultiRegionKms(array $args = [])
  128. * @method \Aws\Lambda\LambdaClient createLambda(array $args = [])
  129. * @method \Aws\MultiRegionClient createMultiRegionLambda(array $args = [])
  130. * @method \Aws\LexModelBuildingService\LexModelBuildingServiceClient createLexModelBuildingService(array $args = [])
  131. * @method \Aws\MultiRegionClient createMultiRegionLexModelBuildingService(array $args = [])
  132. * @method \Aws\LexRuntimeService\LexRuntimeServiceClient createLexRuntimeService(array $args = [])
  133. * @method \Aws\MultiRegionClient createMultiRegionLexRuntimeService(array $args = [])
  134. * @method \Aws\Lightsail\LightsailClient createLightsail(array $args = [])
  135. * @method \Aws\MultiRegionClient createMultiRegionLightsail(array $args = [])
  136. * @method \Aws\MTurk\MTurkClient createMTurk(array $args = [])
  137. * @method \Aws\MultiRegionClient createMultiRegionMTurk(array $args = [])
  138. * @method \Aws\MachineLearning\MachineLearningClient createMachineLearning(array $args = [])
  139. * @method \Aws\MultiRegionClient createMultiRegionMachineLearning(array $args = [])
  140. * @method \Aws\MarketplaceCommerceAnalytics\MarketplaceCommerceAnalyticsClient createMarketplaceCommerceAnalytics(array $args = [])
  141. * @method \Aws\MultiRegionClient createMultiRegionMarketplaceCommerceAnalytics(array $args = [])
  142. * @method \Aws\MarketplaceEntitlementService\MarketplaceEntitlementServiceClient createMarketplaceEntitlementService(array $args = [])
  143. * @method \Aws\MultiRegionClient createMultiRegionMarketplaceEntitlementService(array $args = [])
  144. * @method \Aws\MarketplaceMetering\MarketplaceMeteringClient createMarketplaceMetering(array $args = [])
  145. * @method \Aws\MultiRegionClient createMultiRegionMarketplaceMetering(array $args = [])
  146. * @method \Aws\OpsWorks\OpsWorksClient createOpsWorks(array $args = [])
  147. * @method \Aws\MultiRegionClient createMultiRegionOpsWorks(array $args = [])
  148. * @method \Aws\OpsWorksCM\OpsWorksCMClient createOpsWorksCM(array $args = [])
  149. * @method \Aws\MultiRegionClient createMultiRegionOpsWorksCM(array $args = [])
  150. * @method \Aws\Organizations\OrganizationsClient createOrganizations(array $args = [])
  151. * @method \Aws\MultiRegionClient createMultiRegionOrganizations(array $args = [])
  152. * @method \Aws\Pinpoint\PinpointClient createPinpoint(array $args = [])
  153. * @method \Aws\MultiRegionClient createMultiRegionPinpoint(array $args = [])
  154. * @method \Aws\Polly\PollyClient createPolly(array $args = [])
  155. * @method \Aws\MultiRegionClient createMultiRegionPolly(array $args = [])
  156. * @method \Aws\Rds\RdsClient createRds(array $args = [])
  157. * @method \Aws\MultiRegionClient createMultiRegionRds(array $args = [])
  158. * @method \Aws\Redshift\RedshiftClient createRedshift(array $args = [])
  159. * @method \Aws\MultiRegionClient createMultiRegionRedshift(array $args = [])
  160. * @method \Aws\Rekognition\RekognitionClient createRekognition(array $args = [])
  161. * @method \Aws\MultiRegionClient createMultiRegionRekognition(array $args = [])
  162. * @method \Aws\ResourceGroupsTaggingAPI\ResourceGroupsTaggingAPIClient createResourceGroupsTaggingAPI(array $args = [])
  163. * @method \Aws\MultiRegionClient createMultiRegionResourceGroupsTaggingAPI(array $args = [])
  164. * @method \Aws\Route53\Route53Client createRoute53(array $args = [])
  165. * @method \Aws\MultiRegionClient createMultiRegionRoute53(array $args = [])
  166. * @method \Aws\Route53Domains\Route53DomainsClient createRoute53Domains(array $args = [])
  167. * @method \Aws\MultiRegionClient createMultiRegionRoute53Domains(array $args = [])
  168. * @method \Aws\S3\S3Client createS3(array $args = [])
  169. * @method \Aws\S3\S3MultiRegionClient createMultiRegionS3(array $args = [])
  170. * @method \Aws\ServiceCatalog\ServiceCatalogClient createServiceCatalog(array $args = [])
  171. * @method \Aws\MultiRegionClient createMultiRegionServiceCatalog(array $args = [])
  172. * @method \Aws\Ses\SesClient createSes(array $args = [])
  173. * @method \Aws\MultiRegionClient createMultiRegionSes(array $args = [])
  174. * @method \Aws\Sfn\SfnClient createSfn(array $args = [])
  175. * @method \Aws\MultiRegionClient createMultiRegionSfn(array $args = [])
  176. * @method \Aws\Shield\ShieldClient createShield(array $args = [])
  177. * @method \Aws\MultiRegionClient createMultiRegionShield(array $args = [])
  178. * @method \Aws\Sms\SmsClient createSms(array $args = [])
  179. * @method \Aws\MultiRegionClient createMultiRegionSms(array $args = [])
  180. * @method \Aws\SnowBall\SnowBallClient createSnowBall(array $args = [])
  181. * @method \Aws\MultiRegionClient createMultiRegionSnowBall(array $args = [])
  182. * @method \Aws\Sns\SnsClient createSns(array $args = [])
  183. * @method \Aws\MultiRegionClient createMultiRegionSns(array $args = [])
  184. * @method \Aws\Sqs\SqsClient createSqs(array $args = [])
  185. * @method \Aws\MultiRegionClient createMultiRegionSqs(array $args = [])
  186. * @method \Aws\Ssm\SsmClient createSsm(array $args = [])
  187. * @method \Aws\MultiRegionClient createMultiRegionSsm(array $args = [])
  188. * @method \Aws\StorageGateway\StorageGatewayClient createStorageGateway(array $args = [])
  189. * @method \Aws\MultiRegionClient createMultiRegionStorageGateway(array $args = [])
  190. * @method \Aws\Sts\StsClient createSts(array $args = [])
  191. * @method \Aws\MultiRegionClient createMultiRegionSts(array $args = [])
  192. * @method \Aws\Support\SupportClient createSupport(array $args = [])
  193. * @method \Aws\MultiRegionClient createMultiRegionSupport(array $args = [])
  194. * @method \Aws\Swf\SwfClient createSwf(array $args = [])
  195. * @method \Aws\MultiRegionClient createMultiRegionSwf(array $args = [])
  196. * @method \Aws\Waf\WafClient createWaf(array $args = [])
  197. * @method \Aws\MultiRegionClient createMultiRegionWaf(array $args = [])
  198. * @method \Aws\WafRegional\WafRegionalClient createWafRegional(array $args = [])
  199. * @method \Aws\MultiRegionClient createMultiRegionWafRegional(array $args = [])
  200. * @method \Aws\WorkDocs\WorkDocsClient createWorkDocs(array $args = [])
  201. * @method \Aws\MultiRegionClient createMultiRegionWorkDocs(array $args = [])
  202. * @method \Aws\WorkSpaces\WorkSpacesClient createWorkSpaces(array $args = [])
  203. * @method \Aws\MultiRegionClient createMultiRegionWorkSpaces(array $args = [])
  204. * @method \Aws\XRay\XRayClient createXRay(array $args = [])
  205. * @method \Aws\MultiRegionClient createMultiRegionXRay(array $args = [])
  206. */
  207. class Sdk
  208. {
  209. const VERSION = '3.31.5';
  210. /** @var array Arguments for creating clients */
  211. private $args;
  212. /**
  213. * Constructs a new SDK object with an associative array of default
  214. * client settings.
  215. *
  216. * @param array $args
  217. *
  218. * @throws \InvalidArgumentException
  219. * @see Aws\AwsClient::__construct for a list of available options.
  220. */
  221. public function __construct(array $args = [])
  222. {
  223. $this->args = $args;
  224. if (!isset($args['handler']) && !isset($args['http_handler'])) {
  225. $this->args['http_handler'] = default_http_handler();
  226. }
  227. }
  228. public function __call($name, array $args)
  229. {
  230. $args = isset($args[0]) ? $args[0] : [];
  231. if (strpos($name, 'createMultiRegion') === 0) {
  232. return $this->createMultiRegionClient(substr($name, 17), $args);
  233. } elseif (strpos($name, 'create') === 0) {
  234. return $this->createClient(substr($name, 6), $args);
  235. }
  236. throw new \BadMethodCallException("Unknown method: {$name}.");
  237. }
  238. /**
  239. * Get a client by name using an array of constructor options.
  240. *
  241. * @param string $name Service name or namespace (e.g., DynamoDb, s3).
  242. * @param array $args Arguments to configure the client.
  243. *
  244. * @return AwsClientInterface
  245. * @throws \InvalidArgumentException if any required options are missing or
  246. * the service is not supported.
  247. * @see Aws\AwsClient::__construct for a list of available options for args.
  248. */
  249. public function createClient($name, array $args = [])
  250. {
  251. // Get information about the service from the manifest file.
  252. $service = manifest($name);
  253. $namespace = $service['namespace'];
  254. // Instantiate the client class.
  255. $client = "Aws\\{$namespace}\\{$namespace}Client";
  256. return new $client($this->mergeArgs($namespace, $service, $args));
  257. }
  258. public function createMultiRegionClient($name, array $args = [])
  259. {
  260. // Get information about the service from the manifest file.
  261. $service = manifest($name);
  262. $namespace = $service['namespace'];
  263. $klass = "Aws\\{$namespace}\\{$namespace}MultiRegionClient";
  264. $klass = class_exists($klass) ? $klass : 'Aws\\MultiRegionClient';
  265. return new $klass($this->mergeArgs($namespace, $service, $args));
  266. }
  267. private function mergeArgs($namespace, array $manifest, array $args = [])
  268. {
  269. // Merge provided args with stored, service-specific args.
  270. if (isset($this->args[$namespace])) {
  271. $args += $this->args[$namespace];
  272. }
  273. // Provide the endpoint prefix in the args.
  274. if (!isset($args['service'])) {
  275. $args['service'] = $manifest['endpoint'];
  276. }
  277. return $args + $this->args;
  278. }
  279. /**
  280. * Determine the endpoint prefix from a client namespace.
  281. *
  282. * @param string $name Namespace name
  283. *
  284. * @return string
  285. * @internal
  286. * @deprecated Use the `\Aws\manifest()` function instead.
  287. */
  288. public static function getEndpointPrefix($name)
  289. {
  290. return manifest($name)['endpoint'];
  291. }
  292. }