Skip to content

enable_image_block_public_access async

enable_image_block_public_access(
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    image_block_public_access_state: Optional[
        ImageBlockPublicAccessEnabledState
    ] = None,
    dry_run: Optional[Boolean] = None,
) -> EnableImageBlockPublicAccessResult

Enables block public access for AMIs at the account level in the specified Amazon Web Services Region. This prevents the public sharing of your AMIs. However, if you already have public AMIs, they will remain publicly available.

The API can take up to 10 minutes to configure this setting. During this time, if you run GetImageBlockPublicAccessState, the response will be unblocked. When the API has completed the configuration, the response will be block-new-sharing.

For more information, see Block public access to your AMIs in the Amazon EC2 User Guide.

Parameters:

  • image_block_public_access_state (Optional[ImageBlockPublicAccessEnabledState], default: None ) –

    Specify block-new-sharing to enable block public access for AMIs at the account level in the specified Region. This will block any attempt to publicly share your AMIs in the specified Region.

  • dry_run (Optional[Boolean], default: None ) –

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

Raises:

Source code in docs_src/capo_ec2/_services/async_ec2.py
async def enable_image_block_public_access(
    self,
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    image_block_public_access_state: Optional[
        "capo_ec2.types.image_block_public_access_enabled_state.ImageBlockPublicAccessEnabledState"
    ] = None,
    dry_run: Optional["capo_ec2.types.boolean.Boolean"] = None,
) -> "capo_ec2.types.enable_image_block_public_access_result.EnableImageBlockPublicAccessResult":
    """<p>Enables <i>block public access for AMIs</i> at the account level in the specified Amazon Web Services Region. This prevents the public sharing of your AMIs. However, if you already have public AMIs, they will remain publicly available.</p> <p>The API can take up to 10 minutes to configure this setting. During this time, if you run <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetImageBlockPublicAccessState.html">GetImageBlockPublicAccessState</a>, the response will be <code>unblocked</code>. When the API has completed the configuration, the response will be <code>block-new-sharing</code>.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-to-amis.html">Block public access to your AMIs</a> in the <i>Amazon EC2 User Guide</i>.</p>

    Args:
        image_block_public_access_state: <p>Specify <code>block-new-sharing</code> to enable block public access for AMIs at the account level in the specified Region. This will block any attempt to publicly share your AMIs in the specified Region.</p>
        dry_run: <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>

    Raises:
        capo_ec2.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_ec2.types.enable_image_block_public_access_request.EnableImageBlockPublicAccessRequest]",
    ) -> AsyncOperationResponse[
        "capo_ec2.types.enable_image_block_public_access_result.EnableImageBlockPublicAccessResult"
    ]:
        import capo_ec2._operations.amazon_ec2.enable_image_block_public_access

        (
            output,
            http_response,
        ) = await capo_ec2._operations.amazon_ec2.enable_image_block_public_access.async_enable_image_block_public_access(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("EnableImageBlockPublicAccess")
    )
    input_: capo_ec2.types.enable_image_block_public_access_request.EnableImageBlockPublicAccessRequest = {}
    if image_block_public_access_state is not None:
        input_["image_block_public_access_state"] = image_block_public_access_state
    if dry_run is not None:
        input_["dry_run"] = dry_run

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