123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- namespace Aws\Arn;
- use Aws\Arn\Exception\InvalidArnException;
- /**
- * @internal
- */
- class AccessPointArn extends Arn implements AccessPointArnInterface
- {
- use ResourceTypeAndIdTrait;
- /**
- * AccessPointArn constructor
- *
- * @param $data
- */
- public function __construct($data)
- {
- parent::__construct($data);
- static::validate($this->data);
- }
- public static function parse($string)
- {
- $data = parent::parse($string);
- $data = self::parseResourceTypeAndId($data);
- $data['accesspoint_name'] = $data['resource_id'];
- return $data;
- }
- public function getAccesspointName()
- {
- return $this->data['accesspoint_name'];
- }
- /**
- * Validation specific to AccessPointArn
- *
- * @param array $data
- */
- protected static function validate(array $data)
- {
- self::validateRegion($data, 'access point ARN');
- self::validateAccountId($data, 'access point ARN');
- if ($data['resource_type'] !== 'accesspoint') {
- throw new InvalidArnException("The 6th component of an access point ARN"
- . " represents the resource type and must be 'accesspoint'.");
- }
- if (empty($data['resource_id'])) {
- throw new InvalidArnException("The 7th component of an access point ARN"
- . " represents the resource ID and must not be empty.");
- }
- if (strpos($data['resource_id'], ':') !== false) {
- throw new InvalidArnException("The resource ID component of an access"
- . " point ARN must not contain additional components"
- . " (delimited by ':').");
- }
- if (!self::isValidHostLabel($data['resource_id'])) {
- throw new InvalidArnException("The resource ID in an access point ARN"
- . " must be a valid host label value.");
- }
- }
- }
|