updateEnvironment method
- required DeploymentUpdateType deploymentType,
- required String name,
- String? codebuildRoleArn,
- String? componentRoleArn,
- String? description,
- String? environmentAccountConnectionId,
- String? protonServiceRoleArn,
- RepositoryBranchInput? provisioningRepository,
- String? spec,
- String? templateMajorVersion,
- String? templateMinorVersion,
Update an environment.
If the environment is associated with an environment account connection,
don't update or include the protonServiceRoleArn and
provisioningRepository parameter to update or connect to an
environment account connection.
You can only update to a new environment account connection if that connection was created in the same environment account that the current environment account connection was created in. The account connection must also be associated with the current environment.
If the environment isn't associated with an environment account
connection, don't update or include the
environmentAccountConnectionId parameter. You can't
update or connect the environment to an environment account connection if
it isn't already associated with an environment connection.
You can update either the environmentAccountConnectionId or
protonServiceRoleArn parameter and value. You can’t update
both.
If the environment was configured for Amazon Web Services-managed
provisioning, omit the provisioningRepository parameter.
If the environment was configured for self-managed provisioning, specify
the provisioningRepository parameter and omit the
protonServiceRoleArn and
environmentAccountConnectionId parameters.
For more information, see Environments and Provisioning methods in the Proton User Guide.
There are four modes for updating an environment. The
deploymentType field defines the mode.
-
NONEIn this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.
-
CURRENT_VERSIONIn this mode, the environment is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include minor or major version parameters when you use this
deployment-type. -
MINOR_VERSIONIn this mode, the environment is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.
-
MAJOR_VERSIONIn this mode, the environment is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that's higher than the major version in use and a minor version.
May throw AccessDeniedException.
May throw ConflictException.
May throw InternalServerException.
May throw ResourceNotFoundException.
May throw ThrottlingException.
May throw ValidationException.
Parameter deploymentType :
There are four modes for updating an environment. The
deploymentType field defines the mode.
-
NONEIn this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.
-
CURRENT_VERSIONIn this mode, the environment is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include major or minor version parameters when you use this
deployment-type. -
MINOR_VERSIONIn this mode, the environment is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.
-
MAJOR_VERSIONIn this mode, the environment is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that is higher than the major version in use and a minor version (optional).
Parameter name :
The name of the environment to update.
Parameter codebuildRoleArn :
The Amazon Resource Name (ARN) of the IAM service role that allows Proton
to provision infrastructure using CodeBuild-based provisioning on your
behalf.
Parameter componentRoleArn :
The Amazon Resource Name (ARN) of the IAM service role that Proton uses
when provisioning directly defined components in this environment. It
determines the scope of infrastructure that a component can provision.
The environment must have a componentRoleArn to allow
directly defined components to be associated with the environment.
For more information about components, see Proton components in the Proton User Guide.
Parameter description :
A description of the environment update.
Parameter environmentAccountConnectionId :
The ID of the environment account connection.
You can only update to a new environment account connection if it was created in the same environment account that the current environment account connection was created in and is associated with the current environment.
Parameter protonServiceRoleArn :
The Amazon Resource Name (ARN) of the Proton service role that allows
Proton to make API calls to other services your behalf.
Parameter provisioningRepository :
The linked repository that you use to host your rendered infrastructure
templates for self-managed provisioning. A linked repository is a
repository that has been registered with Proton. For more information, see
CreateRepository.
Parameter spec :
The formatted specification that defines the update.
Parameter templateMajorVersion :
The major version of the environment to update.
Parameter templateMinorVersion :
The minor version of the environment to update.
Implementation
Future<UpdateEnvironmentOutput> updateEnvironment({
required DeploymentUpdateType deploymentType,
required String name,
String? codebuildRoleArn,
String? componentRoleArn,
String? description,
String? environmentAccountConnectionId,
String? protonServiceRoleArn,
RepositoryBranchInput? provisioningRepository,
String? spec,
String? templateMajorVersion,
String? templateMinorVersion,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.0',
'X-Amz-Target': 'AwsProton20200720.UpdateEnvironment'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'deploymentType': deploymentType.value,
'name': name,
if (codebuildRoleArn != null) 'codebuildRoleArn': codebuildRoleArn,
if (componentRoleArn != null) 'componentRoleArn': componentRoleArn,
if (description != null) 'description': description,
if (environmentAccountConnectionId != null)
'environmentAccountConnectionId': environmentAccountConnectionId,
if (protonServiceRoleArn != null)
'protonServiceRoleArn': protonServiceRoleArn,
if (provisioningRepository != null)
'provisioningRepository': provisioningRepository,
if (spec != null) 'spec': spec,
if (templateMajorVersion != null)
'templateMajorVersion': templateMajorVersion,
if (templateMinorVersion != null)
'templateMinorVersion': templateMinorVersion,
},
);
return UpdateEnvironmentOutput.fromJson(jsonResponse.body);
}