Skip to content

create_volume async

create_volume(
    availability_zone: String64,
    *,
    config_overrides: Optional[AsyncWorkspacesInstancesClientConfig] = None,
    client_token: Optional[ClientToken] = None,
    encrypted: Optional[bool] = None,
    iops: Optional[NonNegativeInteger] = None,
    kms_key_id: Optional[KmsKeyId] = None,
    size_in_gb: Optional[NonNegativeInteger] = None,
    snapshot_id: Optional[SnapshotId] = None,
    tag_specifications: Optional[TagSpecifications] = None,
    throughput: Optional[NonNegativeInteger] = None,
    volume_type: Optional[VolumeTypeEnum] = None,
) -> CreateVolumeResponse

Creates a new volume for WorkSpace Instances.

Parameters:

Raises:

Source code in docs_src/capo_workspaces_instances/_services/async_workspaces_instances.py
async def create_volume(
    self,
    availability_zone: "capo_workspaces_instances.types.string64.String64",
    *,
    config_overrides: Optional[AsyncWorkspacesInstancesClientConfig] = None,
    client_token: Optional[
        "capo_workspaces_instances.types.client_token.ClientToken"
    ] = None,
    encrypted: Optional[bool] = None,
    iops: Optional[
        "capo_workspaces_instances.types.non_negative_integer.NonNegativeInteger"
    ] = None,
    kms_key_id: Optional[
        "capo_workspaces_instances.types.kms_key_id.KmsKeyId"
    ] = None,
    size_in_gb: Optional[
        "capo_workspaces_instances.types.non_negative_integer.NonNegativeInteger"
    ] = None,
    snapshot_id: Optional[
        "capo_workspaces_instances.types.snapshot_id.SnapshotId"
    ] = None,
    tag_specifications: Optional[
        "capo_workspaces_instances.types.tag_specifications.TagSpecifications"
    ] = None,
    throughput: Optional[
        "capo_workspaces_instances.types.non_negative_integer.NonNegativeInteger"
    ] = None,
    volume_type: Optional[
        "capo_workspaces_instances.types.volume_type_enum.VolumeTypeEnum"
    ] = None,
) -> "capo_workspaces_instances.types.create_volume_response.CreateVolumeResponse":
    """<p>Creates a new volume for WorkSpace Instances.</p>

    Args:
        availability_zone: <p>Availability zone for the volume.</p>
        client_token: <p>Unique token to prevent duplicate volume creation.</p>
        encrypted: <p>Indicates if the volume should be encrypted.</p>
        iops: <p>Input/output operations per second for the volume.</p>
        kms_key_id: <p>KMS key for volume encryption.</p>
        size_in_gb: <p>Volume size in gigabytes.</p>
        snapshot_id: <p>Source snapshot for volume creation.</p>
        tag_specifications: <p>Metadata tags for the volume.</p>
        throughput: <p>Volume throughput performance.</p>
        volume_type: <p>Type of EBS volume.</p>

    Raises:
        capo_workspaces_instances.errors.access_denied_exception.AccessDeniedException: <p>Indicates insufficient permissions to perform the requested action.</p>
        capo_workspaces_instances.errors.conflict_exception.ConflictException: <p>Signals a conflict with the current state of the resource.</p>
        capo_workspaces_instances.errors.internal_server_exception.InternalServerException: <p>Indicates an unexpected server-side error occurred.</p>
        capo_workspaces_instances.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>Indicates that a service quota has been exceeded.</p>
        capo_workspaces_instances.errors.throttling_exception.ThrottlingException: <p>Indicates the request rate has exceeded limits.</p>
        capo_workspaces_instances.errors.validation_exception.ValidationException: <p>Indicates invalid input parameters in the request.</p>
        capo_workspaces_instances.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_workspaces_instances.types.create_volume_request.CreateVolumeRequest]",
    ) -> AsyncOperationResponse[
        "capo_workspaces_instances.types.create_volume_response.CreateVolumeResponse"
    ]:
        import capo_workspaces_instances._operations.eucmi_frontend_api_service.create_volume

        (
            output,
            http_response,
        ) = await capo_workspaces_instances._operations.eucmi_frontend_api_service.create_volume.async_create_volume(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_workspaces_instances.types.create_volume_request.CreateVolumeRequest",
    ) -> dict[str, Any]:
        import capo_workspaces_instances.types.create_volume_request

        return (
            capo_workspaces_instances.types.create_volume_request.redact_sensitive(
                input_
            )
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging("CreateVolume", redact_input=_redact_input),
    )
    input_: capo_workspaces_instances.types.create_volume_request.CreateVolumeRequest = {
        "availability_zone": availability_zone
    }
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if encrypted is not None:
        input_["encrypted"] = encrypted
    if iops is not None:
        input_["iops"] = iops
    if kms_key_id is not None:
        input_["kms_key_id"] = kms_key_id
    if size_in_gb is not None:
        input_["size_in_gb"] = size_in_gb
    if snapshot_id is not None:
        input_["snapshot_id"] = snapshot_id
    if tag_specifications is not None:
        input_["tag_specifications"] = tag_specifications
    if throughput is not None:
        input_["throughput"] = throughput
    if volume_type is not None:
        input_["volume_type"] = volume_type

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