Skip to content

update_integration async

update_integration(
    integration_id: IntegrationId,
    provider_configuration: UpdateProviderConfiguration,
    *,
    config_overrides: Optional[AsyncContinuumClientConfig] = None,
) -> UpdateIntegrationOutput

Rotates the credentials used by an Amazon S3 integration. Only S3 integrations can be updated; GitHub integrations cannot be modified. The integration's name, provider type, and bucket remain fixed. The caller must have iam:PassRole permission for the supplied role, including when only the external ID changes. Continuum verifies that the role can be assumed with the requested external ID and can access the existing bucket before saving both credentials atomically. Omitting externalId preserves its current value. Repeating both current credentials leaves updatedAt unchanged, but still requires authorization and access validation.

Parameters:

  • integration_id (IntegrationId) –

    The unique identifier of the S3 integration to update.

  • provider_configuration (UpdateProviderConfiguration) –

    The provider-specific changes to apply. The member must match the integration's provider type, and only S3 integrations can be updated.

Raises:

  • AccessDeniedException –

    The request is not authorized. Verify that your credentials and request signature are valid and that you have permission to perform this action.

  • ConflictException –

    The request could not be completed due to a conflict with the current state of the resource.

  • InternalServerException –

    The request couldn't be processed because of an internal server issue. Try again later. If the problem persists, contact AWS Support.

  • ResourceNotFoundException –

    The specified resource was not found. Verify that the resource identifier is correct and that the resource exists.

  • ThrottlingException –

    The request was denied due to request throttling.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_continuum/_services/async_continuum.py
async def update_integration(
    self,
    integration_id: "capo_continuum.types.integration_id.IntegrationId",
    provider_configuration: "capo_continuum.types.update_provider_configuration.UpdateProviderConfiguration",
    *,
    config_overrides: Optional[AsyncContinuumClientConfig] = None,
) -> "capo_continuum.types.update_integration_output.UpdateIntegrationOutput":
    """Rotates the credentials used by an Amazon S3 integration. Only S3 integrations can be updated; GitHub integrations cannot be modified. The integration's name, provider type, and bucket remain fixed. The caller must have iam:PassRole permission for the supplied role, including when only the external ID changes. Continuum verifies that the role can be assumed with the requested external ID and can access the existing bucket before saving both credentials atomically. Omitting externalId preserves its current value. Repeating both current credentials leaves updatedAt unchanged, but still requires authorization and access validation.

    Args:
        integration_id: The unique identifier of the S3 integration to update.
        provider_configuration: The provider-specific changes to apply. The member must match the integration's provider type, and only S3 integrations can be updated.

    Raises:
        capo_continuum.errors.access_denied_exception.AccessDeniedException: The request is not authorized. Verify that your credentials and request signature are valid and that you have permission to perform this action.
        capo_continuum.errors.conflict_exception.ConflictException: The request could not be completed due to a conflict with the current state of the resource.
        capo_continuum.errors.internal_server_exception.InternalServerException: The request couldn't be processed because of an internal server issue. Try again later. If the problem persists, contact AWS Support.
        capo_continuum.errors.resource_not_found_exception.ResourceNotFoundException: The specified resource was not found. Verify that the resource identifier is correct and that the resource exists.
        capo_continuum.errors.throttling_exception.ThrottlingException: The request was denied due to request throttling.
        capo_continuum.errors.validation_exception.ValidationException
        capo_continuum.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_continuum.types.update_integration_input.UpdateIntegrationInput]",
    ) -> AsyncOperationResponse[
        "capo_continuum.types.update_integration_output.UpdateIntegrationOutput"
    ]:
        import capo_continuum._operations.continuum_control_plane.update_integration

        (
            output,
            http_response,
        ) = await capo_continuum._operations.continuum_control_plane.update_integration.async_update_integration(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_continuum.types.update_integration_input.UpdateIntegrationInput",
    ) -> dict[str, Any]:
        import capo_continuum.types.update_integration_input

        return capo_continuum.types.update_integration_input.redact_sensitive(
            input_
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging("UpdateIntegration", redact_input=_redact_input),
    )
    input_: capo_continuum.types.update_integration_input.UpdateIntegrationInput = {
        "integration_id": integration_id,
        "provider_configuration": provider_configuration,
    }

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output