| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- <?php
 
- namespace Aws\Arn;
 
- use Aws\Arn\S3\AccessPointArn as S3AccessPointArn;
 
- use Aws\Arn\ObjectLambdaAccessPointArn;
 
- use Aws\Arn\S3\MultiRegionAccessPointArn;
 
- use Aws\Arn\S3\OutpostsBucketArn;
 
- use Aws\Arn\S3\RegionalBucketArn;
 
- use Aws\Arn\S3\OutpostsAccessPointArn;
 
- /**
 
-  * This class provides functionality to parse ARN strings and return a
 
-  * corresponding ARN object. ARN-parsing logic may be subject to change in the
 
-  * future, so this should not be relied upon for external customer usage.
 
-  *
 
-  * @internal
 
-  */
 
- class ArnParser
 
- {
 
-     /**
 
-      * @param $string
 
-      * @return bool
 
-      */
 
-     public static function isArn($string)
 
-     {
 
-         return $string !== null && strpos($string, 'arn:') === 0;
 
-     }
 
-     /**
 
-      * Parses a string and returns an instance of ArnInterface. Returns a
 
-      * specific type of Arn object if it has a specific class representation
 
-      * or a generic Arn object if not.
 
-      *
 
-      * @param $string
 
-      * @return ArnInterface
 
-      */
 
-     public static function parse($string)
 
-     {
 
-         $data = Arn::parse($string);
 
-         if ($data['service'] === 's3-object-lambda') {
 
-             return new ObjectLambdaAccessPointArn($string);
 
-         }
 
-         $resource = self::explodeResourceComponent($data['resource']);
 
-         if ($resource[0] === 'outpost') {
 
-             if (isset($resource[2]) && $resource[2] === 'bucket') {
 
-                 return new OutpostsBucketArn($string);
 
-             }
 
-             if (isset($resource[2]) && $resource[2] === 'accesspoint') {
 
-                 return new OutpostsAccessPointArn($string);
 
-             }
 
-         }
 
-         if (empty($data['region'])) {
 
-             return new MultiRegionAccessPointArn($string);
 
-         }
 
-         if ($resource[0] === 'accesspoint') {
 
-             if ($data['service'] === 's3') {
 
-                 return new S3AccessPointArn($string);
 
-             }
 
-             return new AccessPointArn($string);
 
-         }
 
-         return new Arn($data);
 
-     }
 
-     private static function explodeResourceComponent($resource)
 
-     {
 
-         return preg_split("/[\/:]/", $resource);
 
-     }
 
- }
 
 
  |