> ## Documentation Index
> Fetch the complete documentation index at: https://docs.edisglobal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Replace qcow2

> This endpoint uploads and replaces the current qcow2 image on the specified KVM VPS.  
**Warning:** All data on the VPS will be permanently lost if this operation is performed.  
The `api_host` parameter, obtained from the "Create AUTH-session" response,  
is dynamically set in the URL.  
Provide the `signature`, `kvm_id`, `valid_until`, and confirm data replacement by including `yes_purge_all_my_data` parameter.




## OpenAPI

````yaml post /kvm/v2/upload_qcow2
openapi: 3.0.0
info:
  title: EDIS Global Management API
  description: >
    Use the API to access and manage your VPS services, including power control,
    rDNS, and VNC management.  

    **Authentication:** Enable API access on any KVM VPS you own. Then use the
    provided credentials to authenticate your requests.
  version: 1.0.0
servers:
  - url: https://{api_host}
    description: Dynamic API host returned from the AUTH session endpoint.
    variables:
      api_host:
        default: api_host.edisglobal.com
        description: >-
          Enter the full API host exactly as returned by /kvm/v2/get/auth (for
          example: 12345.edisglobal.com)
security: []
tags:
  - name: Authentication
    description: Create an AUTH Session
  - name: Power Management
    description: KVM Power Management
  - name: Installation
    description: ISO, Turnkey, Reinstall
  - name: Settings
    description: KVM System Settings
  - name: Collect Information
    description: KVM VPS Details.
  - name: VNC Management
    description: KVM VNC Access
  - name: PTR
    description: KVM Reverse DNS
  - name: Traffic Pool
    description: Traffic Pool Management
  - name: Hooks
    description: KVM Webhook Management
paths:
  /kvm/v2/upload_qcow2:
    post:
      tags:
        - Installation
      summary: Upload and replace qcow2
      description: >
        This endpoint uploads and replaces the current qcow2 image on the
        specified KVM VPS.  

        **Warning:** All data on the VPS will be permanently lost if this
        operation is performed.  

        The `api_host` parameter, obtained from the "Create AUTH-session"
        response,  

        is dynamically set in the URL.  

        Provide the `signature`, `kvm_id`, `valid_until`, and confirm data
        replacement by including `yes_purge_all_my_data` parameter.
      operationId: uploadQCOW2
      requestBody:
        description: >
          Required parameters to upload and replace the qcow2 image.  

          All parameters must be passed in the request body as
          `application/x-www-form-urlencoded` or as file upload where specified.
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/v2_upload_qcow2_body'
        required: true
      responses:
        '200':
          description: The qcow2 image was successfully uploaded and replaced on the VPS.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_200_3'
        '400':
          description: Bad Request - Invalid parameters or missing fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400_4'
        '401':
          description: Unauthorized - The session signature is invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_401_4'
        '403':
          description: >-
            Forbidden - The client does not have permission to access this
            resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_403_3'
        '500':
          description: Internal Server Error - An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_500_4'
components:
  schemas:
    v2_upload_qcow2_body:
      type: object
      properties:
        signature:
          type: string
          description: The session signature obtained from the "Create AUTH-session" call.
          example: session_signature_12345
        kvm_id:
          type: string
          description: >
            The unique identifier of the KVM VPS where the qcow2 image will be
            replaced.  

            This value is specific to your VPS.
          example: kvm_xxxxx_yyyyy
        valid_until:
          type: string
          description: >
            The expiration timestamp for the session, as obtained from the
            "Create AUTH-session" call.  

            Ensure that the session is valid and has not expired.
          example: '1737476000'
        yes_purge_all_my_data:
          type: integer
          description: |
            Confirmation to purge all data on the VPS.  
            This parameter must be set to `1` to proceed.
          example: 1
        file:
          type: string
          description: |
            The qcow2 file to upload.  
            Provide the full path to the file.
          format: binary
          example: '@/path/to/your_cloudinit.qcow2'
        pw:
          type: string
          description: |
            The new root password for the VPS.  
            Used if cloud-init is enabled.
          example: new-root-password
        cloudinit_user_data:
          type: string
          description: >
            Optional cloud-init configuration for the VPS.  

            See [Cloud-init
            Documentation](https://cloudinit.readthedocs.io/en/latest/reference/examples.html)
            for examples.
          example: |
            #cloud-config
            user: root
            password: "new-root-password"
            ssh_pwauth: True
    inline_response_200_3:
      type: object
      properties:
        status:
          type: string
          description: The status of the operation.
          example: success
    inline_response_400_4:
      type: object
      properties:
        error:
          type: string
          description: Description of the error.
          example: Invalid parameters provided.
        code:
          type: integer
          example: 400
    inline_response_401_4:
      type: object
      properties:
        error:
          type: string
          description: Description of the error.
          example: Invalid or expired session signature.
        code:
          type: integer
          example: 401
    inline_response_403_3:
      type: object
      properties:
        error:
          type: string
          description: Description of the error.
          example: Access to this resource is denied.
        code:
          type: integer
          example: 403
    inline_response_500_4:
      type: object
      properties:
        error:
          type: string
          description: Description of the error.
          example: An unexpected error occurred on the server.
        code:
          type: integer
          example: 500

````