Skip to content

put_replication_configuration async

put_replication_configuration(
    replication_configuration: ReplicationConfiguration,
    *,
    config_overrides: Optional[AsyncECRClientConfig] = None,
) -> PutReplicationConfigurationResponse

Creates or updates the replication configuration for a registry. The existing replication configuration for a repository can be retrieved with the DescribeRegistry API action. The first time the PutReplicationConfiguration API is called, a service-linked IAM role is created in your account for the replication process. For more information, see Using service-linked roles for Amazon ECR in the Amazon Elastic Container Registry User Guide. For more information on the custom role for replication, see Creating an IAM role for replication.

When configuring cross-account replication, the destination account must grant the source account permission to replicate. This permission is controlled using a registry permissions policy. For more information, see PutRegistryPolicy.

Parameters:

  • replication_configuration (ReplicationConfiguration) –

    An object representing the replication configuration for a registry.

Raises:

Source code in docs_src/capo_ecr/_services/async_ecr.py
async def put_replication_configuration(
    self,
    replication_configuration: "capo_ecr.types.replication_configuration.ReplicationConfiguration",
    *,
    config_overrides: Optional[AsyncECRClientConfig] = None,
) -> "capo_ecr.types.put_replication_configuration_response.PutReplicationConfigurationResponse":
    """<p>Creates or updates the replication configuration for a registry. The existing replication configuration for a repository can be retrieved with the <a>DescribeRegistry</a> API action. The first time the PutReplicationConfiguration API is called, a service-linked IAM role is created in your account for the replication process. For more information, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html">Using service-linked roles for Amazon ECR</a> in the <i>Amazon Elastic Container Registry User Guide</i>. For more information on the custom role for replication, see <a href="https://docs.aws.amazon.com/AmazonECR/latest/userguide/replication-creation-templates.html#roles-creatingrole-user-console">Creating an IAM role for replication</a>.</p> <note> <p>When configuring cross-account replication, the destination account must grant the source account permission to replicate. This permission is controlled using a registry permissions policy. For more information, see <a>PutRegistryPolicy</a>.</p> </note>

    Args:
        replication_configuration: <p>An object representing the replication configuration for a registry.</p>

    Raises:
        capo_ecr.errors.invalid_parameter_exception.InvalidParameterException: <p>The specified parameter is invalid. Review the available parameters for the API request.</p>
        capo_ecr.errors.server_exception.ServerException: <p>These errors are usually caused by a server-side issue.</p>
        capo_ecr.errors.validation_exception.ValidationException: <p>There was an exception validating this request.</p>
        capo_ecr.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_ecr.types.put_replication_configuration_request.PutReplicationConfigurationRequest]",
    ) -> AsyncOperationResponse[
        "capo_ecr.types.put_replication_configuration_response.PutReplicationConfigurationResponse"
    ]:
        import capo_ecr._operations.amazon_ec2_container_registry_v20150921.put_replication_configuration

        (
            output,
            http_response,
        ) = await capo_ecr._operations.amazon_ec2_container_registry_v20150921.put_replication_configuration.async_put_replication_configuration(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("PutReplicationConfiguration")
    )
    input_: capo_ecr.types.put_replication_configuration_request.PutReplicationConfigurationRequest = {
        "replication_configuration": replication_configuration
    }

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