Exception
11 months ago
S3
11 months ago
AccessPointArn.php
11 months ago
AccessPointArnInterface.php
11 months ago
Arn.php
11 months ago
ArnInterface.php
11 months ago
ArnParser.php
11 months ago
ObjectLambdaAccessPointArn.php
11 months ago
ResourceTypeAndIdTrait.php
11 months ago
AccessPointArn.php
67 lines
| 1 | <?php |
| 2 | namespace Aws\Arn; |
| 3 | |
| 4 | use Aws\Arn\Exception\InvalidArnException; |
| 5 | |
| 6 | /** |
| 7 | * @internal |
| 8 | */ |
| 9 | class AccessPointArn extends Arn implements AccessPointArnInterface |
| 10 | { |
| 11 | use ResourceTypeAndIdTrait; |
| 12 | |
| 13 | /** |
| 14 | * AccessPointArn constructor |
| 15 | * |
| 16 | * @param $data |
| 17 | */ |
| 18 | public function __construct($data) |
| 19 | { |
| 20 | parent::__construct($data); |
| 21 | static::validate($this->data); |
| 22 | } |
| 23 | |
| 24 | public static function parse($string) |
| 25 | { |
| 26 | $data = parent::parse($string); |
| 27 | $data = self::parseResourceTypeAndId($data); |
| 28 | $data['accesspoint_name'] = $data['resource_id']; |
| 29 | return $data; |
| 30 | } |
| 31 | |
| 32 | public function getAccesspointName() |
| 33 | { |
| 34 | return $this->data['accesspoint_name']; |
| 35 | } |
| 36 | |
| 37 | /** |
| 38 | * Validation specific to AccessPointArn |
| 39 | * |
| 40 | * @param array $data |
| 41 | */ |
| 42 | protected static function validate(array $data) |
| 43 | { |
| 44 | self::validateRegion($data, 'access point ARN'); |
| 45 | self::validateAccountId($data, 'access point ARN'); |
| 46 | |
| 47 | if ($data['resource_type'] !== 'accesspoint') { |
| 48 | throw new InvalidArnException("The 6th component of an access point ARN" |
| 49 | . " represents the resource type and must be 'accesspoint'."); |
| 50 | } |
| 51 | |
| 52 | if (empty($data['resource_id'])) { |
| 53 | throw new InvalidArnException("The 7th component of an access point ARN" |
| 54 | . " represents the resource ID and must not be empty."); |
| 55 | } |
| 56 | if (strpos($data['resource_id'], ':') !== false) { |
| 57 | throw new InvalidArnException("The resource ID component of an access" |
| 58 | . " point ARN must not contain additional components" |
| 59 | . " (delimited by ':')."); |
| 60 | } |
| 61 | if (!self::isValidHostLabel($data['resource_id'])) { |
| 62 | throw new InvalidArnException("The resource ID in an access point ARN" |
| 63 | . " must be a valid host label value."); |
| 64 | } |
| 65 | } |
| 66 | } |
| 67 |