Skip to content

modify_volume_attribute async

modify_volume_attribute(
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    auto_enable_io: Optional[AttributeBooleanValue] = None,
    volume_id: Optional[VolumeId] = None,
    dry_run: Optional[Boolean] = None,
) -> None

Modifies a volume attribute.

By default, all I/O operations for the volume are suspended when the data on the volume is determined to be potentially inconsistent, to prevent undetectable, latent data corruption. The I/O access to the volume can be resumed by first enabling I/O access and then checking the data consistency on your volume.

You can change the default behavior to resume I/O operations. We recommend that you change this only for boot volumes or for volumes that are stateless or disposable.

Parameters:

  • auto_enable_io (Optional[AttributeBooleanValue], default: None ) –

    Indicates whether the volume should be auto-enabled for I/O operations.

  • volume_id (Optional[VolumeId], default: None ) –

    The ID of the volume.

  • 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:

Examples:

To modify a volume attribute This example sets the autoEnableIo attribute of the volume with the ID vol-1234567890abcdef0 to true. If the command succeeds, no output is returned.

>>> await client.modify_volume_attribute(dry_run=True, volume_id='vol-1234567890abcdef0', auto_enable_io={'Value': True})
Source code in docs_src/capo_ec2/_services/async_ec2.py
async def modify_volume_attribute(
    self,
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    auto_enable_io: Optional[
        "capo_ec2.types.attribute_boolean_value.AttributeBooleanValue"
    ] = None,
    volume_id: Optional["capo_ec2.types.volume_id.VolumeId"] = None,
    dry_run: Optional["capo_ec2.types.boolean.Boolean"] = None,
) -> None:
    """<p>Modifies a volume attribute.</p> <p>By default, all I/O operations for the volume are suspended when the data on the volume is determined to be potentially inconsistent, to prevent undetectable, latent data corruption. The I/O access to the volume can be resumed by first enabling I/O access and then checking the data consistency on your volume.</p> <p>You can change the default behavior to resume I/O operations. We recommend that you change this only for boot volumes or for volumes that are stateless or disposable.</p>

    Args:
        auto_enable_io: <p>Indicates whether the volume should be auto-enabled for I/O operations.</p>
        volume_id: <p>The ID of the volume.</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.

    Examples:
        To modify a volume attribute
        This example sets the ``autoEnableIo`` attribute of the volume with the ID ``vol-1234567890abcdef0`` to ``true``. If the command succeeds, no output is returned.

        >>> await client.modify_volume_attribute(dry_run=True, volume_id='vol-1234567890abcdef0', auto_enable_io={'Value': True})
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_ec2.types.modify_volume_attribute_request.ModifyVolumeAttributeRequest]",
    ) -> AsyncOperationResponse[None]:
        import capo_ec2._operations.amazon_ec2.modify_volume_attribute

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

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("ModifyVolumeAttribute")
    )
    input_: capo_ec2.types.modify_volume_attribute_request.ModifyVolumeAttributeRequest = {}
    if auto_enable_io is not None:
        input_["auto_enable_io"] = auto_enable_io
    if volume_id is not None:
        input_["volume_id"] = volume_id
    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