diff --git a/manifest.json b/manifest.json index 44c551537..2d63081f1 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "variables": { - "${LATEST}": "3.363.1" + "${LATEST}": "3.363.2" }, "endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json", "services": { diff --git a/src/Service/Route53/CHANGELOG.md b/src/Service/Route53/CHANGELOG.md index 1f6e02816..c31327ca8 100644 --- a/src/Service/Route53/CHANGELOG.md +++ b/src/Service/Route53/CHANGELOG.md @@ -6,6 +6,7 @@ - AWS api-change: Amazon Route 53 now supports the ISOB West Region for private DNS for Amazon VPCs and cloudwatch healthchecks. - AWS api-change: Added `us-isob-west-1` region +- AWS api-change: Adds support for new route53 feature: accelerated recovery. ### Dependency bumped diff --git a/src/Service/Route53/src/Enum/AcceleratedRecoveryStatus.php b/src/Service/Route53/src/Enum/AcceleratedRecoveryStatus.php new file mode 100644 index 000000000..1756acaf3 --- /dev/null +++ b/src/Service/Route53/src/Enum/AcceleratedRecoveryStatus.php @@ -0,0 +1,29 @@ + true, + self::DISABLE_FAILED => true, + self::DISABLING => true, + self::DISABLING_HOSTED_ZONE_LOCKED => true, + self::ENABLED => true, + self::ENABLE_FAILED => true, + self::ENABLING => true, + self::ENABLING_HOSTED_ZONE_LOCKED => true, + ][$value]); + } +} diff --git a/src/Service/Route53/src/Result/CreateHostedZoneResponse.php b/src/Service/Route53/src/Result/CreateHostedZoneResponse.php index 712779c49..94ffdd359 100644 --- a/src/Service/Route53/src/Result/CreateHostedZoneResponse.php +++ b/src/Service/Route53/src/Result/CreateHostedZoneResponse.php @@ -8,6 +8,8 @@ use AsyncAws\Route53\ValueObject\DelegationSet; use AsyncAws\Route53\ValueObject\HostedZone; use AsyncAws\Route53\ValueObject\HostedZoneConfig; +use AsyncAws\Route53\ValueObject\HostedZoneFailureReasons; +use AsyncAws\Route53\ValueObject\HostedZoneFeatures; use AsyncAws\Route53\ValueObject\LinkedService; use AsyncAws\Route53\ValueObject\VPC; @@ -140,6 +142,7 @@ private function populateResultHostedZone(\SimpleXMLElement $xml): HostedZone 'Config' => 0 === $xml->Config->count() ? null : $this->populateResultHostedZoneConfig($xml->Config), 'ResourceRecordSetCount' => (null !== $v = $xml->ResourceRecordSetCount[0]) ? (int) (string) $v : null, 'LinkedService' => 0 === $xml->LinkedService->count() ? null : $this->populateResultLinkedService($xml->LinkedService), + 'Features' => 0 === $xml->Features->count() ? null : $this->populateResultHostedZoneFeatures($xml->Features), ]); } @@ -151,6 +154,21 @@ private function populateResultHostedZoneConfig(\SimpleXMLElement $xml): HostedZ ]); } + private function populateResultHostedZoneFailureReasons(\SimpleXMLElement $xml): HostedZoneFailureReasons + { + return new HostedZoneFailureReasons([ + 'AcceleratedRecovery' => (null !== $v = $xml->AcceleratedRecovery[0]) ? (string) $v : null, + ]); + } + + private function populateResultHostedZoneFeatures(\SimpleXMLElement $xml): HostedZoneFeatures + { + return new HostedZoneFeatures([ + 'AcceleratedRecoveryStatus' => (null !== $v = $xml->AcceleratedRecoveryStatus[0]) ? (string) $v : null, + 'FailureReasons' => 0 === $xml->FailureReasons->count() ? null : $this->populateResultHostedZoneFailureReasons($xml->FailureReasons), + ]); + } + private function populateResultLinkedService(\SimpleXMLElement $xml): LinkedService { return new LinkedService([ diff --git a/src/Service/Route53/src/Result/ListHostedZonesByNameResponse.php b/src/Service/Route53/src/Result/ListHostedZonesByNameResponse.php index 00804704a..d587ff40a 100644 --- a/src/Service/Route53/src/Result/ListHostedZonesByNameResponse.php +++ b/src/Service/Route53/src/Result/ListHostedZonesByNameResponse.php @@ -6,6 +6,8 @@ use AsyncAws\Core\Result; use AsyncAws\Route53\ValueObject\HostedZone; use AsyncAws\Route53\ValueObject\HostedZoneConfig; +use AsyncAws\Route53\ValueObject\HostedZoneFailureReasons; +use AsyncAws\Route53\ValueObject\HostedZoneFeatures; use AsyncAws\Route53\ValueObject\LinkedService; /** @@ -147,6 +149,7 @@ private function populateResultHostedZone(\SimpleXMLElement $xml): HostedZone 'Config' => 0 === $xml->Config->count() ? null : $this->populateResultHostedZoneConfig($xml->Config), 'ResourceRecordSetCount' => (null !== $v = $xml->ResourceRecordSetCount[0]) ? (int) (string) $v : null, 'LinkedService' => 0 === $xml->LinkedService->count() ? null : $this->populateResultLinkedService($xml->LinkedService), + 'Features' => 0 === $xml->Features->count() ? null : $this->populateResultHostedZoneFeatures($xml->Features), ]); } @@ -158,6 +161,21 @@ private function populateResultHostedZoneConfig(\SimpleXMLElement $xml): HostedZ ]); } + private function populateResultHostedZoneFailureReasons(\SimpleXMLElement $xml): HostedZoneFailureReasons + { + return new HostedZoneFailureReasons([ + 'AcceleratedRecovery' => (null !== $v = $xml->AcceleratedRecovery[0]) ? (string) $v : null, + ]); + } + + private function populateResultHostedZoneFeatures(\SimpleXMLElement $xml): HostedZoneFeatures + { + return new HostedZoneFeatures([ + 'AcceleratedRecoveryStatus' => (null !== $v = $xml->AcceleratedRecoveryStatus[0]) ? (string) $v : null, + 'FailureReasons' => 0 === $xml->FailureReasons->count() ? null : $this->populateResultHostedZoneFailureReasons($xml->FailureReasons), + ]); + } + /** * @return HostedZone[] */ diff --git a/src/Service/Route53/src/Result/ListHostedZonesResponse.php b/src/Service/Route53/src/Result/ListHostedZonesResponse.php index 3bd4e56b7..6bf2a50bc 100644 --- a/src/Service/Route53/src/Result/ListHostedZonesResponse.php +++ b/src/Service/Route53/src/Result/ListHostedZonesResponse.php @@ -9,6 +9,8 @@ use AsyncAws\Route53\Route53Client; use AsyncAws\Route53\ValueObject\HostedZone; use AsyncAws\Route53\ValueObject\HostedZoneConfig; +use AsyncAws\Route53\ValueObject\HostedZoneFailureReasons; +use AsyncAws\Route53\ValueObject\HostedZoneFeatures; use AsyncAws\Route53\ValueObject\LinkedService; /** @@ -160,6 +162,7 @@ private function populateResultHostedZone(\SimpleXMLElement $xml): HostedZone 'Config' => 0 === $xml->Config->count() ? null : $this->populateResultHostedZoneConfig($xml->Config), 'ResourceRecordSetCount' => (null !== $v = $xml->ResourceRecordSetCount[0]) ? (int) (string) $v : null, 'LinkedService' => 0 === $xml->LinkedService->count() ? null : $this->populateResultLinkedService($xml->LinkedService), + 'Features' => 0 === $xml->Features->count() ? null : $this->populateResultHostedZoneFeatures($xml->Features), ]); } @@ -171,6 +174,21 @@ private function populateResultHostedZoneConfig(\SimpleXMLElement $xml): HostedZ ]); } + private function populateResultHostedZoneFailureReasons(\SimpleXMLElement $xml): HostedZoneFailureReasons + { + return new HostedZoneFailureReasons([ + 'AcceleratedRecovery' => (null !== $v = $xml->AcceleratedRecovery[0]) ? (string) $v : null, + ]); + } + + private function populateResultHostedZoneFeatures(\SimpleXMLElement $xml): HostedZoneFeatures + { + return new HostedZoneFeatures([ + 'AcceleratedRecoveryStatus' => (null !== $v = $xml->AcceleratedRecoveryStatus[0]) ? (string) $v : null, + 'FailureReasons' => 0 === $xml->FailureReasons->count() ? null : $this->populateResultHostedZoneFailureReasons($xml->FailureReasons), + ]); + } + /** * @return HostedZone[] */ diff --git a/src/Service/Route53/src/ValueObject/HostedZone.php b/src/Service/Route53/src/ValueObject/HostedZone.php index ee1f06317..f9765c36a 100644 --- a/src/Service/Route53/src/ValueObject/HostedZone.php +++ b/src/Service/Route53/src/ValueObject/HostedZone.php @@ -58,6 +58,13 @@ final class HostedZone */ private $linkedService; + /** + * The features configuration for the hosted zone, including accelerated recovery settings and status information. + * + * @var HostedZoneFeatures|null + */ + private $features; + /** * @param array{ * Id: string, @@ -66,6 +73,7 @@ final class HostedZone * Config?: HostedZoneConfig|array|null, * ResourceRecordSetCount?: int|null, * LinkedService?: LinkedService|array|null, + * Features?: HostedZoneFeatures|array|null, * } $input */ public function __construct(array $input) @@ -76,6 +84,7 @@ public function __construct(array $input) $this->config = isset($input['Config']) ? HostedZoneConfig::create($input['Config']) : null; $this->resourceRecordSetCount = $input['ResourceRecordSetCount'] ?? null; $this->linkedService = isset($input['LinkedService']) ? LinkedService::create($input['LinkedService']) : null; + $this->features = isset($input['Features']) ? HostedZoneFeatures::create($input['Features']) : null; } /** @@ -86,6 +95,7 @@ public function __construct(array $input) * Config?: HostedZoneConfig|array|null, * ResourceRecordSetCount?: int|null, * LinkedService?: LinkedService|array|null, + * Features?: HostedZoneFeatures|array|null, * }|HostedZone $input */ public static function create($input): self @@ -103,6 +113,11 @@ public function getConfig(): ?HostedZoneConfig return $this->config; } + public function getFeatures(): ?HostedZoneFeatures + { + return $this->features; + } + public function getId(): string { return $this->id; diff --git a/src/Service/Route53/src/ValueObject/HostedZoneFailureReasons.php b/src/Service/Route53/src/ValueObject/HostedZoneFailureReasons.php new file mode 100644 index 000000000..591719b8e --- /dev/null +++ b/src/Service/Route53/src/ValueObject/HostedZoneFailureReasons.php @@ -0,0 +1,41 @@ +acceleratedRecovery = $input['AcceleratedRecovery'] ?? null; + } + + /** + * @param array{ + * AcceleratedRecovery?: string|null, + * }|HostedZoneFailureReasons $input + */ + public static function create($input): self + { + return $input instanceof self ? $input : new self($input); + } + + public function getAcceleratedRecovery(): ?string + { + return $this->acceleratedRecovery; + } +} diff --git a/src/Service/Route53/src/ValueObject/HostedZoneFeatures.php b/src/Service/Route53/src/ValueObject/HostedZoneFeatures.php new file mode 100644 index 000000000..b8337f007 --- /dev/null +++ b/src/Service/Route53/src/ValueObject/HostedZoneFeatures.php @@ -0,0 +1,62 @@ +acceleratedRecoveryStatus = $input['AcceleratedRecoveryStatus'] ?? null; + $this->failureReasons = isset($input['FailureReasons']) ? HostedZoneFailureReasons::create($input['FailureReasons']) : null; + } + + /** + * @param array{ + * AcceleratedRecoveryStatus?: AcceleratedRecoveryStatus::*|null, + * FailureReasons?: HostedZoneFailureReasons|array|null, + * }|HostedZoneFeatures $input + */ + public static function create($input): self + { + return $input instanceof self ? $input : new self($input); + } + + /** + * @return AcceleratedRecoveryStatus::*|null + */ + public function getAcceleratedRecoveryStatus(): ?string + { + return $this->acceleratedRecoveryStatus; + } + + public function getFailureReasons(): ?HostedZoneFailureReasons + { + return $this->failureReasons; + } +}