Skip to content

update_environment_account_connection

update_environment_account_connection(
    id: EnvironmentAccountConnectionId,
    *,
    config_overrides: Optional[ProtonClientConfig] = None,
    role_arn: Optional[RoleArn] = None,
    component_role_arn: Optional[RoleArn] = None,
    codebuild_role_arn: Optional[RoleArn] = None,
) -> UpdateEnvironmentAccountConnectionOutput

In an environment account, update an environment account connection to use a new IAM role.

For more information, see Environment account connections in the Proton User guide.

Parameters:

  • id (EnvironmentAccountConnectionId) –

    The ID of the environment account connection to update.

  • role_arn (Optional[RoleArn], default: None ) –

    The Amazon Resource Name (ARN) of the IAM service role that's associated with the environment account connection to update.

  • component_role_arn (Optional[RoleArn], default: None ) –

    The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in the associated environment account. It determines the scope of infrastructure that a component can provision in the account.

    The environment account connection must have a componentRoleArn to allow directly defined components to be associated with any environments running in the account.

    For more information about components, see Proton components in the Proton User Guide.

  • codebuild_role_arn (Optional[RoleArn], default: None ) –

    The Amazon Resource Name (ARN) of an IAM service role in the environment account. Proton uses this role to provision infrastructure resources using CodeBuild-based provisioning in the associated environment account.

Raises:

Source code in docs_src/capo_proton/_services/proton.py
def update_environment_account_connection(
    self,
    id: "capo_proton.types.environment_account_connection_id.EnvironmentAccountConnectionId",
    *,
    config_overrides: Optional[ProtonClientConfig] = None,
    role_arn: Optional["capo_proton.types.role_arn.RoleArn"] = None,
    component_role_arn: Optional["capo_proton.types.role_arn.RoleArn"] = None,
    codebuild_role_arn: Optional["capo_proton.types.role_arn.RoleArn"] = None,
) -> "capo_proton.types.update_environment_account_connection_output.UpdateEnvironmentAccountConnectionOutput":
    """<p>In an environment account, update an environment account connection to use a new IAM role.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-env-account-connections.html">Environment account connections</a> in the <i>Proton User guide</i>.</p>

    Args:
        id: <p>The ID of the environment account connection to update.</p>
        role_arn: <p>The Amazon Resource Name (ARN) of the IAM service role that's associated with the environment account connection to update.</p>
        component_role_arn: <p>The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in the associated environment account. It determines the scope of infrastructure that a component can provision in the account.</p> <p>The environment account connection must have a <code>componentRoleArn</code> to allow directly defined components to be associated with any environments running in the account.</p> <p>For more information about components, see <a href="https://docs.aws.amazon.com/proton/latest/userguide/ag-components.html">Proton components</a> in the <i>Proton User Guide</i>.</p>
        codebuild_role_arn: <p>The Amazon Resource Name (ARN) of an IAM service role in the environment account. Proton uses this role to provision infrastructure resources using CodeBuild-based provisioning in the associated environment account.</p>

    Raises:
        capo_proton.errors.access_denied_exception.AccessDeniedException: <p>There <i>isn't</i> sufficient access for performing this action.</p>
        capo_proton.errors.conflict_exception.ConflictException: <p>The request <i>couldn't</i> be made due to a conflicting operation or resource.</p>
        capo_proton.errors.internal_server_exception.InternalServerException: <p>The request failed to register with the service.</p>
        capo_proton.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource <i>wasn't</i> found.</p>
        capo_proton.errors.throttling_exception.ThrottlingException: <p>The request was denied due to request throttling.</p>
        capo_proton.errors.validation_exception.ValidationException: <p>The input is invalid or an out-of-range value was supplied for the input parameter.</p>
        capo_proton.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_proton.types.update_environment_account_connection_input.UpdateEnvironmentAccountConnectionInput]",
    ) -> OperationResponse[
        "capo_proton.types.update_environment_account_connection_output.UpdateEnvironmentAccountConnectionOutput"
    ]:
        import capo_proton._operations.aws_proton20200720.update_environment_account_connection

        output, http_response = (
            capo_proton._operations.aws_proton20200720.update_environment_account_connection.update_environment_account_connection(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateEnvironmentAccountConnection")
    )
    input_: capo_proton.types.update_environment_account_connection_input.UpdateEnvironmentAccountConnectionInput = {
        "id": id
    }
    if role_arn is not None:
        input_["role_arn"] = role_arn
    if component_role_arn is not None:
        input_["component_role_arn"] = component_role_arn
    if codebuild_role_arn is not None:
        input_["codebuild_role_arn"] = codebuild_role_arn

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output