From 01464d3e9b7e7c84933ba8fd595f94f7f9d0f46e Mon Sep 17 00:00:00 2001 From: AsyncAws Bot Date: Tue, 20 Oct 2026 11:12:12 +0000 Subject: [PATCH] update generated code --- manifest.json | 2 +- src/Service/CodeCommit/CHANGELOG.md | 4 + .../src/Exception/FileTooLargeException.php | 2 +- .../src/Input/CreateRepositoryInput.php | 4 +- .../src/ValueObject/RepositoryTrigger.php | 7 +- src/Service/CodeDeploy/CHANGELOG.md | 1 + .../CodeDeploy/src/CodeDeployClient.php | 5 ++ .../src/Enum/AutoScalingGroupProcess.php | 29 +++++++ ...oScalingGroupProcessToSuspendException.php | 13 +++ .../src/Input/CreateDeploymentInput.php | 24 ++++++ .../src/Result/GetDeploymentOutput.php | 29 +++++++ .../src/ValueObject/DeploymentInfo.php | 13 +++ .../src/ValueObject/EC2DeploymentOptions.php | 85 +++++++++++++++++++ 13 files changed, 211 insertions(+), 7 deletions(-) create mode 100644 src/Service/CodeDeploy/src/Enum/AutoScalingGroupProcess.php create mode 100644 src/Service/CodeDeploy/src/Exception/InvalidAutoScalingGroupProcessToSuspendException.php create mode 100644 src/Service/CodeDeploy/src/ValueObject/EC2DeploymentOptions.php diff --git a/manifest.json b/manifest.json index 1f9604ffb..42a82d277 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "variables": { - "${LATEST}": "3.401.2" + "${LATEST}": "3.401.3" }, "endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json", "services": { diff --git a/src/Service/CodeCommit/CHANGELOG.md b/src/Service/CodeCommit/CHANGELOG.md index b0530e511..e1ec020f3 100644 --- a/src/Service/CodeCommit/CHANGELOG.md +++ b/src/Service/CodeCommit/CHANGELOG.md @@ -2,6 +2,10 @@ ## NOT RELEASED +### Changed + +- AWS enhancement: Documentation updates. + ## 1.3.2 ### Changed diff --git a/src/Service/CodeCommit/src/Exception/FileTooLargeException.php b/src/Service/CodeCommit/src/Exception/FileTooLargeException.php index 78607f554..42c8d9e2d 100644 --- a/src/Service/CodeCommit/src/Exception/FileTooLargeException.php +++ b/src/Service/CodeCommit/src/Exception/FileTooLargeException.php @@ -6,7 +6,7 @@ /** * The specified file exceeds the file size limit for CodeCommit. For more information about limits in CodeCommit, see - * Quotas [^1] in the *CodeCommit User Guide*. + * Quotas [^1] in the * CodeCommit User Guide*. * * [^1]: https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html */ diff --git a/src/Service/CodeCommit/src/Input/CreateRepositoryInput.php b/src/Service/CodeCommit/src/Input/CreateRepositoryInput.php index 1af568944..f26064c52 100644 --- a/src/Service/CodeCommit/src/Input/CreateRepositoryInput.php +++ b/src/Service/CodeCommit/src/Input/CreateRepositoryInput.php @@ -17,7 +17,7 @@ final class CreateRepositoryInput extends Input * * > The repository name must be unique across the calling Amazon Web Services account. Repository names are limited to * > 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. For more information - * > about the limits on repository names, see Quotas [^1] in the *CodeCommit User Guide*. The suffix .git is + * > about the limits on repository names, see Quotas [^1] in the * CodeCommit User Guide*. The suffix .git is * > prohibited. * * [^1]: https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html @@ -50,7 +50,7 @@ final class CreateRepositoryInput extends Input /** * The ID of the encryption key. You can view the ID of an encryption key in the KMS console, or use the KMS APIs to * programmatically retrieve a key ID. For more information about acceptable values for kmsKeyID, see KeyId [^1] in the - * Decrypt API description in the *Key Management Service API Reference*. + * Decrypt API description in the * Key Management Service API Reference*. * * If no key is specified, the default `aws/codecommit` Amazon Web Services managed key is used. * diff --git a/src/Service/CodeCommit/src/ValueObject/RepositoryTrigger.php b/src/Service/CodeCommit/src/ValueObject/RepositoryTrigger.php index 8a9dd4fe4..895f81182 100644 --- a/src/Service/CodeCommit/src/ValueObject/RepositoryTrigger.php +++ b/src/Service/CodeCommit/src/ValueObject/RepositoryTrigger.php @@ -48,9 +48,10 @@ final class RepositoryTrigger /** * The repository events that cause the trigger to run actions in another service, such as sending a notification - * through Amazon SNS. - * - * > The valid value "all" cannot be used with any other values. + * through Amazon SNS. ``` + *

The valid value "all" cannot be used with any other values.

+ *
+ * ```. * * @var list */ diff --git a/src/Service/CodeDeploy/CHANGELOG.md b/src/Service/CodeDeploy/CHANGELOG.md index 30784f8b3..54d28fbd1 100644 --- a/src/Service/CodeDeploy/CHANGELOG.md +++ b/src/Service/CodeDeploy/CHANGELOG.md @@ -5,6 +5,7 @@ ### Added - AWS api-change: AWS CodeDeploy now returns the deployment mode on GetDeployment and BatchGetDeployments. The new deploymentMode field on DeploymentInfo indicates whether a deployment used the standard deployment process or restarted the application using a previously installed revision (RESTART mode). +- AWS api-change: Adds support for suspending Amazon EC2 Auto Scaling processes during CodeDeploy EC2 in-place deployments. Use ec2DeploymentOptions to choose which processes are suspended and resumed. ## 2.5.0 diff --git a/src/Service/CodeDeploy/src/CodeDeployClient.php b/src/Service/CodeDeploy/src/CodeDeployClient.php index 54e4a36bd..aaa0ad861 100644 --- a/src/Service/CodeDeploy/src/CodeDeployClient.php +++ b/src/Service/CodeDeploy/src/CodeDeployClient.php @@ -19,6 +19,7 @@ use AsyncAws\CodeDeploy\Exception\InvalidApplicationNameException; use AsyncAws\CodeDeploy\Exception\InvalidAutoRollbackConfigException; use AsyncAws\CodeDeploy\Exception\InvalidAutoScalingGroupException; +use AsyncAws\CodeDeploy\Exception\InvalidAutoScalingGroupProcessToSuspendException; use AsyncAws\CodeDeploy\Exception\InvalidComputePlatformException; use AsyncAws\CodeDeploy\Exception\InvalidDeploymentConfigNameException; use AsyncAws\CodeDeploy\Exception\InvalidDeploymentGroupNameException; @@ -49,6 +50,7 @@ use AsyncAws\CodeDeploy\Result\PutLifecycleEventHookExecutionStatusOutput; use AsyncAws\CodeDeploy\ValueObject\AlarmConfiguration; use AsyncAws\CodeDeploy\ValueObject\AutoRollbackConfiguration; +use AsyncAws\CodeDeploy\ValueObject\EC2DeploymentOptions; use AsyncAws\CodeDeploy\ValueObject\RevisionLocation; use AsyncAws\CodeDeploy\ValueObject\TargetInstances; use AsyncAws\Core\AbstractApi; @@ -78,6 +80,7 @@ class CodeDeployClient extends AbstractApi * fileExistsBehavior?: FileExistsBehavior::*|null, * deploymentMode?: DeploymentMode::*|null, * overrideAlarmConfiguration?: AlarmConfiguration|array|null, + * ec2DeploymentOptions?: EC2DeploymentOptions|array|null, * '@region'?: string|null, * }|CreateDeploymentInput $input * @@ -93,6 +96,7 @@ class CodeDeployClient extends AbstractApi * @throws InvalidApplicationNameException * @throws InvalidAutoRollbackConfigException * @throws InvalidAutoScalingGroupException + * @throws InvalidAutoScalingGroupProcessToSuspendException * @throws InvalidComputePlatformException * @throws InvalidDeploymentConfigNameException * @throws InvalidDeploymentGroupNameException @@ -127,6 +131,7 @@ public function createDeployment($input): CreateDeploymentOutput 'InvalidApplicationNameException' => InvalidApplicationNameException::class, 'InvalidAutoRollbackConfigException' => InvalidAutoRollbackConfigException::class, 'InvalidAutoScalingGroupException' => InvalidAutoScalingGroupException::class, + 'InvalidAutoScalingGroupProcessToSuspendException' => InvalidAutoScalingGroupProcessToSuspendException::class, 'InvalidComputePlatformException' => InvalidComputePlatformException::class, 'InvalidDeploymentConfigNameException' => InvalidDeploymentConfigNameException::class, 'InvalidDeploymentGroupNameException' => InvalidDeploymentGroupNameException::class, diff --git a/src/Service/CodeDeploy/src/Enum/AutoScalingGroupProcess.php b/src/Service/CodeDeploy/src/Enum/AutoScalingGroupProcess.php new file mode 100644 index 000000000..f8eee343a --- /dev/null +++ b/src/Service/CodeDeploy/src/Enum/AutoScalingGroupProcess.php @@ -0,0 +1,29 @@ + true, + self::INSTANCE_REFRESH => true, + self::SCHEDULED_ACTIONS => true, + self::TERMINATE => true, + ][$value]); + } +} diff --git a/src/Service/CodeDeploy/src/Exception/InvalidAutoScalingGroupProcessToSuspendException.php b/src/Service/CodeDeploy/src/Exception/InvalidAutoScalingGroupProcessToSuspendException.php new file mode 100644 index 000000000..414d9fa4a --- /dev/null +++ b/src/Service/CodeDeploy/src/Exception/InvalidAutoScalingGroupProcessToSuspendException.php @@ -0,0 +1,13 @@ +fileExistsBehavior = $input['fileExistsBehavior'] ?? null; $this->deploymentMode = $input['deploymentMode'] ?? null; $this->overrideAlarmConfiguration = isset($input['overrideAlarmConfiguration']) ? AlarmConfiguration::create($input['overrideAlarmConfiguration']) : null; + $this->ec2DeploymentOptions = isset($input['ec2DeploymentOptions']) ? EC2DeploymentOptions::create($input['ec2DeploymentOptions']) : null; parent::__construct($input); } @@ -201,6 +209,7 @@ public function __construct(array $input = []) * fileExistsBehavior?: FileExistsBehavior::*|null, * deploymentMode?: DeploymentMode::*|null, * overrideAlarmConfiguration?: AlarmConfiguration|array|null, + * ec2DeploymentOptions?: EC2DeploymentOptions|array|null, * '@region'?: string|null, * }|CreateDeploymentInput $input */ @@ -242,6 +251,11 @@ public function getDescription(): ?string return $this->description; } + public function getEc2DeploymentOptions(): ?EC2DeploymentOptions + { + return $this->ec2DeploymentOptions; + } + /** * @return FileExistsBehavior::*|null */ @@ -346,6 +360,13 @@ public function setDescription(?string $value): self return $this; } + public function setEc2DeploymentOptions(?EC2DeploymentOptions $value): self + { + $this->ec2DeploymentOptions = $value; + + return $this; + } + /** * @param FileExistsBehavior::*|null $value */ @@ -439,6 +460,9 @@ private function requestBody(): array if (null !== $v = $this->overrideAlarmConfiguration) { $payload['overrideAlarmConfiguration'] = $v->requestBody(); } + if (null !== $v = $this->ec2DeploymentOptions) { + $payload['ec2DeploymentOptions'] = $v->requestBody(); + } return $payload; } diff --git a/src/Service/CodeDeploy/src/Result/GetDeploymentOutput.php b/src/Service/CodeDeploy/src/Result/GetDeploymentOutput.php index 4dd0a86ac..642154e9f 100644 --- a/src/Service/CodeDeploy/src/Result/GetDeploymentOutput.php +++ b/src/Service/CodeDeploy/src/Result/GetDeploymentOutput.php @@ -3,6 +3,7 @@ namespace AsyncAws\CodeDeploy\Result; use AsyncAws\CodeDeploy\Enum\AutoRollbackEvent; +use AsyncAws\CodeDeploy\Enum\AutoScalingGroupProcess; use AsyncAws\CodeDeploy\Enum\BundleType; use AsyncAws\CodeDeploy\Enum\ComputePlatform; use AsyncAws\CodeDeploy\Enum\DeploymentCreator; @@ -27,6 +28,7 @@ use AsyncAws\CodeDeploy\ValueObject\DeploymentOverview; use AsyncAws\CodeDeploy\ValueObject\DeploymentReadyOption; use AsyncAws\CodeDeploy\ValueObject\DeploymentStyle; +use AsyncAws\CodeDeploy\ValueObject\EC2DeploymentOptions; use AsyncAws\CodeDeploy\ValueObject\EC2TagFilter; use AsyncAws\CodeDeploy\ValueObject\EC2TagSet; use AsyncAws\CodeDeploy\ValueObject\ELBInfo; @@ -152,6 +154,25 @@ private function populateResultAutoScalingGroupNameList(array $json): array return $items; } + /** + * @return list + */ + private function populateResultAutoScalingGroupProcessesToSuspendList(array $json): array + { + $items = []; + foreach ($json as $item) { + $a = isset($item) ? (string) $item : null; + if (null !== $a) { + if (!AutoScalingGroupProcess::exists($a)) { + $a = AutoScalingGroupProcess::UNKNOWN_TO_SDK; + } + $items[] = $a; + } + } + + return $items; + } + private function populateResultBlueGreenDeploymentConfiguration(array $json): BlueGreenDeploymentConfiguration { return new BlueGreenDeploymentConfiguration([ @@ -203,6 +224,7 @@ private function populateResultDeploymentInfo(array $json): DeploymentInfo 'externalId' => isset($json['externalId']) ? (string) $json['externalId'] : null, 'relatedDeployments' => empty($json['relatedDeployments']) ? null : $this->populateResultRelatedDeployments($json['relatedDeployments']), 'overrideAlarmConfiguration' => empty($json['overrideAlarmConfiguration']) ? null : $this->populateResultAlarmConfiguration($json['overrideAlarmConfiguration']), + 'ec2DeploymentOptions' => empty($json['ec2DeploymentOptions']) ? null : $this->populateResultEC2DeploymentOptions($json['ec2DeploymentOptions']), ]); } @@ -266,6 +288,13 @@ private function populateResultDeploymentsList(array $json): array return $items; } + private function populateResultEC2DeploymentOptions(array $json): EC2DeploymentOptions + { + return new EC2DeploymentOptions([ + 'autoScalingGroupProcessesToSuspend' => !isset($json['autoScalingGroupProcessesToSuspend']) ? null : $this->populateResultAutoScalingGroupProcessesToSuspendList($json['autoScalingGroupProcessesToSuspend']), + ]); + } + private function populateResultEC2TagFilter(array $json): EC2TagFilter { return new EC2TagFilter([ diff --git a/src/Service/CodeDeploy/src/ValueObject/DeploymentInfo.php b/src/Service/CodeDeploy/src/ValueObject/DeploymentInfo.php index d1963d386..745447f51 100644 --- a/src/Service/CodeDeploy/src/ValueObject/DeploymentInfo.php +++ b/src/Service/CodeDeploy/src/ValueObject/DeploymentInfo.php @@ -269,6 +269,11 @@ final class DeploymentInfo */ private $overrideAlarmConfiguration; + /** + * @var EC2DeploymentOptions|null + */ + private $ec2DeploymentOptions; + /** * @param array{ * applicationName?: string|null, @@ -302,6 +307,7 @@ final class DeploymentInfo * externalId?: string|null, * relatedDeployments?: RelatedDeployments|array|null, * overrideAlarmConfiguration?: AlarmConfiguration|array|null, + * ec2DeploymentOptions?: EC2DeploymentOptions|array|null, * } $input */ public function __construct(array $input) @@ -337,6 +343,7 @@ public function __construct(array $input) $this->externalId = $input['externalId'] ?? null; $this->relatedDeployments = isset($input['relatedDeployments']) ? RelatedDeployments::create($input['relatedDeployments']) : null; $this->overrideAlarmConfiguration = isset($input['overrideAlarmConfiguration']) ? AlarmConfiguration::create($input['overrideAlarmConfiguration']) : null; + $this->ec2DeploymentOptions = isset($input['ec2DeploymentOptions']) ? EC2DeploymentOptions::create($input['ec2DeploymentOptions']) : null; } /** @@ -372,6 +379,7 @@ public function __construct(array $input) * externalId?: string|null, * relatedDeployments?: RelatedDeployments|array|null, * overrideAlarmConfiguration?: AlarmConfiguration|array|null, + * ec2DeploymentOptions?: EC2DeploymentOptions|array|null, * }|DeploymentInfo $input */ public static function create($input): self @@ -471,6 +479,11 @@ public function getDescription(): ?string return $this->description; } + public function getEc2DeploymentOptions(): ?EC2DeploymentOptions + { + return $this->ec2DeploymentOptions; + } + public function getErrorInformation(): ?ErrorInformation { return $this->errorInformation; diff --git a/src/Service/CodeDeploy/src/ValueObject/EC2DeploymentOptions.php b/src/Service/CodeDeploy/src/ValueObject/EC2DeploymentOptions.php new file mode 100644 index 000000000..d73e13ec2 --- /dev/null +++ b/src/Service/CodeDeploy/src/ValueObject/EC2DeploymentOptions.php @@ -0,0 +1,85 @@ + If CodeDeploy cannot resume the processes, the deployment fails and the processes stay suspended until you resume + * > them with the Auto Scaling `ResumeProcesses` action. While `Terminate` is suspended, Auto Scaling does not replace + * > unhealthy instances. If you suspend `Terminate`, configure a trigger that notifies you when a deployment fails. + * + * @var list|null + */ + private $autoScalingGroupProcessesToSuspend; + + /** + * @param array{ + * autoScalingGroupProcessesToSuspend?: array|null, + * } $input + */ + public function __construct(array $input) + { + $this->autoScalingGroupProcessesToSuspend = $input['autoScalingGroupProcessesToSuspend'] ?? null; + } + + /** + * @param array{ + * autoScalingGroupProcessesToSuspend?: array|null, + * }|EC2DeploymentOptions $input + */ + public static function create($input): self + { + return $input instanceof self ? $input : new self($input); + } + + /** + * @return list + */ + public function getAutoScalingGroupProcessesToSuspend(): array + { + return $this->autoScalingGroupProcessesToSuspend ?? []; + } + + /** + * @internal + */ + public function requestBody(): array + { + $payload = []; + if (null !== $v = $this->autoScalingGroupProcessesToSuspend) { + $index = -1; + $payload['autoScalingGroupProcessesToSuspend'] = []; + foreach ($v as $listValue) { + ++$index; + if (!AutoScalingGroupProcess::exists($listValue)) { + /** @psalm-suppress NoValue */ + throw new InvalidArgument(\sprintf('Invalid parameter "autoScalingGroupProcessesToSuspend" for "%s". The value "%s" is not a valid "AutoScalingGroupProcess".', __CLASS__, $listValue)); + } + $payload['autoScalingGroupProcessesToSuspend'][$index] = $listValue; + } + } + + return $payload; + } +}