Skip to content

bundle_instance async

bundle_instance(
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    instance_id: Optional[InstanceId] = None,
    storage: Optional[Storage] = None,
    dry_run: Optional[Boolean] = None,
) -> BundleInstanceResult

Bundles an Amazon instance store-backed Windows instance.

During bundling, only the root device volume (C:\) is bundled. Data on other instance store volumes is not preserved.

BundleInstance is no longer supported. To create an AMI, use CreateImage instead. For more information about creating an Amazon EBS-backed AMI, see Create an Amazon EBS-backed AMI in the Amazon EC2 User Guide.

Parameters:

  • instance_id (Optional[InstanceId], default: None ) –

    The ID of the instance to bundle.

    Default: None

  • storage (Optional[Storage], default: None ) –

    The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.

  • 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 bundle_instance(
    self,
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    instance_id: Optional["capo_ec2.types.instance_id.InstanceId"] = None,
    storage: Optional["capo_ec2.types.storage.Storage"] = None,
    dry_run: Optional["capo_ec2.types.boolean.Boolean"] = None,
) -> "capo_ec2.types.bundle_instance_result.BundleInstanceResult":
    r"""<p>Bundles an Amazon instance store-backed Windows instance.</p> <p>During bundling, only the root device volume (C:\) is bundled. Data on other instance store volumes is not preserved.</p> <note> <p>BundleInstance is no longer supported. To create an AMI, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html">CreateImage</a> instead. For more information about creating an Amazon EBS-backed AMI, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html"> Create an Amazon EBS-backed AMI</a> in the <i>Amazon EC2 User Guide</i>.</p> </note>

    Args:
        instance_id: <p>The ID of the instance to bundle.</p> <p>Default: None</p>
        storage: <p>The bucket in which to store the AMI. You can specify a bucket that you already own or a new bucket that Amazon EC2 creates on your behalf. If you specify a bucket that belongs to someone else, Amazon EC2 returns an error.</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.bundle_instance_request.BundleInstanceRequest]",
    ) -> AsyncOperationResponse[
        "capo_ec2.types.bundle_instance_result.BundleInstanceResult"
    ]:
        import capo_ec2._operations.amazon_ec2.bundle_instance

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

    def _redact_input(
        input_: "capo_ec2.types.bundle_instance_request.BundleInstanceRequest",
    ) -> dict[str, Any]:
        import capo_ec2.types.bundle_instance_request

        return capo_ec2.types.bundle_instance_request.redact_sensitive(input_)

    def _redact_output(
        output: "capo_ec2.types.bundle_instance_result.BundleInstanceResult",
    ) -> dict[str, Any]:
        import capo_ec2.types.bundle_instance_result

        return capo_ec2.types.bundle_instance_result.redact_sensitive(output)

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging(
            "BundleInstance",
            redact_input=_redact_input,
            redact_output=_redact_output,
        ),
    )
    input_: capo_ec2.types.bundle_instance_request.BundleInstanceRequest = {}
    if instance_id is not None:
        input_["instance_id"] = instance_id
    if storage is not None:
        input_["storage"] = storage
    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