|
2 | 2 |
|
3 | 3 | namespace AsyncAws\CodeDeploy;
|
4 | 4 |
|
| 5 | +use AsyncAws\CodeDeploy\Enum\FileExistsBehavior; |
5 | 6 | use AsyncAws\CodeDeploy\Enum\LifecycleEventStatus;
|
| 7 | +use AsyncAws\CodeDeploy\Exception\ApplicationDoesNotExistException; |
| 8 | +use AsyncAws\CodeDeploy\Exception\ApplicationNameRequiredException; |
| 9 | +use AsyncAws\CodeDeploy\Exception\DeploymentConfigDoesNotExistException; |
6 | 10 | use AsyncAws\CodeDeploy\Exception\DeploymentDoesNotExistException;
|
| 11 | +use AsyncAws\CodeDeploy\Exception\DeploymentGroupDoesNotExistException; |
| 12 | +use AsyncAws\CodeDeploy\Exception\DeploymentGroupNameRequiredException; |
7 | 13 | use AsyncAws\CodeDeploy\Exception\DeploymentIdRequiredException;
|
| 14 | +use AsyncAws\CodeDeploy\Exception\DeploymentLimitExceededException; |
| 15 | +use AsyncAws\CodeDeploy\Exception\DescriptionTooLongException; |
| 16 | +use AsyncAws\CodeDeploy\Exception\InvalidApplicationNameException; |
| 17 | +use AsyncAws\CodeDeploy\Exception\InvalidAutoRollbackConfigException; |
| 18 | +use AsyncAws\CodeDeploy\Exception\InvalidAutoScalingGroupException; |
| 19 | +use AsyncAws\CodeDeploy\Exception\InvalidDeploymentConfigNameException; |
| 20 | +use AsyncAws\CodeDeploy\Exception\InvalidDeploymentGroupNameException; |
8 | 21 | use AsyncAws\CodeDeploy\Exception\InvalidDeploymentIdException;
|
| 22 | +use AsyncAws\CodeDeploy\Exception\InvalidFileExistsBehaviorException; |
| 23 | +use AsyncAws\CodeDeploy\Exception\InvalidGitHubAccountTokenException; |
| 24 | +use AsyncAws\CodeDeploy\Exception\InvalidIgnoreApplicationStopFailuresValueException; |
9 | 25 | use AsyncAws\CodeDeploy\Exception\InvalidLifecycleEventHookExecutionIdException;
|
10 | 26 | use AsyncAws\CodeDeploy\Exception\InvalidLifecycleEventHookExecutionStatusException;
|
| 27 | +use AsyncAws\CodeDeploy\Exception\InvalidLoadBalancerInfoException; |
| 28 | +use AsyncAws\CodeDeploy\Exception\InvalidRevisionException; |
| 29 | +use AsyncAws\CodeDeploy\Exception\InvalidRoleException; |
| 30 | +use AsyncAws\CodeDeploy\Exception\InvalidTargetInstancesException; |
| 31 | +use AsyncAws\CodeDeploy\Exception\InvalidTrafficRoutingConfigurationException; |
| 32 | +use AsyncAws\CodeDeploy\Exception\InvalidUpdateOutdatedInstancesOnlyValueException; |
11 | 33 | use AsyncAws\CodeDeploy\Exception\LifecycleEventAlreadyCompletedException;
|
| 34 | +use AsyncAws\CodeDeploy\Exception\RevisionDoesNotExistException; |
| 35 | +use AsyncAws\CodeDeploy\Exception\RevisionRequiredException; |
| 36 | +use AsyncAws\CodeDeploy\Exception\ThrottlingException; |
12 | 37 | use AsyncAws\CodeDeploy\Exception\UnsupportedActionForDeploymentTypeException;
|
| 38 | +use AsyncAws\CodeDeploy\Input\CreateDeploymentInput; |
13 | 39 | use AsyncAws\CodeDeploy\Input\PutLifecycleEventHookExecutionStatusInput;
|
| 40 | +use AsyncAws\CodeDeploy\Result\CreateDeploymentOutput; |
14 | 41 | use AsyncAws\CodeDeploy\Result\PutLifecycleEventHookExecutionStatusOutput;
|
| 42 | +use AsyncAws\CodeDeploy\ValueObject\AutoRollbackConfiguration; |
| 43 | +use AsyncAws\CodeDeploy\ValueObject\RevisionLocation; |
| 44 | +use AsyncAws\CodeDeploy\ValueObject\TargetInstances; |
15 | 45 | use AsyncAws\Core\AbstractApi;
|
16 | 46 | use AsyncAws\Core\AwsError\AwsErrorFactoryInterface;
|
17 | 47 | use AsyncAws\Core\AwsError\JsonRpcAwsErrorFactory;
|
|
20 | 50 |
|
21 | 51 | class CodeDeployClient extends AbstractApi
|
22 | 52 | {
|
| 53 | + /** |
| 54 | + * Deploys an application revision through the specified deployment group. |
| 55 | + * |
| 56 | + * @see https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html |
| 57 | + * @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-codedeploy-2014-10-06.html#createdeployment |
| 58 | + * |
| 59 | + * @param array{ |
| 60 | + * applicationName: string, |
| 61 | + * deploymentGroupName?: string, |
| 62 | + * revision?: RevisionLocation|array, |
| 63 | + * deploymentConfigName?: string, |
| 64 | + * description?: string, |
| 65 | + * ignoreApplicationStopFailures?: bool, |
| 66 | + * targetInstances?: TargetInstances|array, |
| 67 | + * autoRollbackConfiguration?: AutoRollbackConfiguration|array, |
| 68 | + * updateOutdatedInstancesOnly?: bool, |
| 69 | + * fileExistsBehavior?: FileExistsBehavior::*, |
| 70 | + * @region?: string, |
| 71 | + * }|CreateDeploymentInput $input |
| 72 | + * |
| 73 | + * @throws ApplicationNameRequiredException |
| 74 | + * @throws InvalidApplicationNameException |
| 75 | + * @throws ApplicationDoesNotExistException |
| 76 | + * @throws DeploymentGroupNameRequiredException |
| 77 | + * @throws InvalidDeploymentGroupNameException |
| 78 | + * @throws DeploymentGroupDoesNotExistException |
| 79 | + * @throws RevisionRequiredException |
| 80 | + * @throws RevisionDoesNotExistException |
| 81 | + * @throws InvalidRevisionException |
| 82 | + * @throws InvalidDeploymentConfigNameException |
| 83 | + * @throws DeploymentConfigDoesNotExistException |
| 84 | + * @throws DescriptionTooLongException |
| 85 | + * @throws DeploymentLimitExceededException |
| 86 | + * @throws InvalidTargetInstancesException |
| 87 | + * @throws InvalidAutoRollbackConfigException |
| 88 | + * @throws InvalidLoadBalancerInfoException |
| 89 | + * @throws InvalidFileExistsBehaviorException |
| 90 | + * @throws InvalidRoleException |
| 91 | + * @throws InvalidAutoScalingGroupException |
| 92 | + * @throws ThrottlingException |
| 93 | + * @throws InvalidUpdateOutdatedInstancesOnlyValueException |
| 94 | + * @throws InvalidIgnoreApplicationStopFailuresValueException |
| 95 | + * @throws InvalidGitHubAccountTokenException |
| 96 | + * @throws InvalidTrafficRoutingConfigurationException |
| 97 | + */ |
| 98 | + public function createDeployment($input): CreateDeploymentOutput |
| 99 | + { |
| 100 | + $input = CreateDeploymentInput::create($input); |
| 101 | + $response = $this->getResponse($input->request(), new RequestContext(['operation' => 'CreateDeployment', 'region' => $input->getRegion(), 'exceptionMapping' => [ |
| 102 | + 'ApplicationNameRequiredException' => ApplicationNameRequiredException::class, |
| 103 | + 'InvalidApplicationNameException' => InvalidApplicationNameException::class, |
| 104 | + 'ApplicationDoesNotExistException' => ApplicationDoesNotExistException::class, |
| 105 | + 'DeploymentGroupNameRequiredException' => DeploymentGroupNameRequiredException::class, |
| 106 | + 'InvalidDeploymentGroupNameException' => InvalidDeploymentGroupNameException::class, |
| 107 | + 'DeploymentGroupDoesNotExistException' => DeploymentGroupDoesNotExistException::class, |
| 108 | + 'RevisionRequiredException' => RevisionRequiredException::class, |
| 109 | + 'RevisionDoesNotExistException' => RevisionDoesNotExistException::class, |
| 110 | + 'InvalidRevisionException' => InvalidRevisionException::class, |
| 111 | + 'InvalidDeploymentConfigNameException' => InvalidDeploymentConfigNameException::class, |
| 112 | + 'DeploymentConfigDoesNotExistException' => DeploymentConfigDoesNotExistException::class, |
| 113 | + 'DescriptionTooLongException' => DescriptionTooLongException::class, |
| 114 | + 'DeploymentLimitExceededException' => DeploymentLimitExceededException::class, |
| 115 | + 'InvalidTargetInstancesException' => InvalidTargetInstancesException::class, |
| 116 | + 'InvalidAutoRollbackConfigException' => InvalidAutoRollbackConfigException::class, |
| 117 | + 'InvalidLoadBalancerInfoException' => InvalidLoadBalancerInfoException::class, |
| 118 | + 'InvalidFileExistsBehaviorException' => InvalidFileExistsBehaviorException::class, |
| 119 | + 'InvalidRoleException' => InvalidRoleException::class, |
| 120 | + 'InvalidAutoScalingGroupException' => InvalidAutoScalingGroupException::class, |
| 121 | + 'ThrottlingException' => ThrottlingException::class, |
| 122 | + 'InvalidUpdateOutdatedInstancesOnlyValueException' => InvalidUpdateOutdatedInstancesOnlyValueException::class, |
| 123 | + 'InvalidIgnoreApplicationStopFailuresValueException' => InvalidIgnoreApplicationStopFailuresValueException::class, |
| 124 | + 'InvalidGitHubAccountTokenException' => InvalidGitHubAccountTokenException::class, |
| 125 | + 'InvalidTrafficRoutingConfigurationException' => InvalidTrafficRoutingConfigurationException::class, |
| 126 | + ]])); |
| 127 | + |
| 128 | + return new CreateDeploymentOutput($response); |
| 129 | + } |
| 130 | + |
23 | 131 | /**
|
24 | 132 | * Sets the result of a Lambda validation function. The function validates lifecycle hooks during a deployment that uses
|
25 | 133 | * the AWS Lambda or Amazon ECS compute platform. For AWS Lambda deployments, the available lifecycle hooks are
|
|
0 commit comments