1. Packages
  2. Packages
  3. Proxmox Virtual Environment (Proxmox VE)
  4. API Docs
  5. FileLegacy
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.1.0
published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
proxmoxve logo
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.1.0
published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski

    Use this resource to upload files to a Proxmox VE node. The file can be a backup, an ISO image, a Disk Image, a snippet, or a container template depending on the contentType attribute.

    Example Usage

    Backups (backup)

    The resource with this content type uses SSH access to the node. You might need to configure the ssh option in the provider section.

    The provider currently does not support restoring backups. You can use the Proxmox VE web interface or the qmrestore / pct restore command to restore VM / Container from a backup.

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    const backup = new proxmoxve.FileLegacy("backup", {
        contentType: "backup",
        datastoreId: "local",
        nodeName: "pve",
        sourceFile: {
            path: "vzdump-lxc-100-2023_11_08-23_10_05.tar.zst",
        },
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    backup = proxmoxve.FileLegacy("backup",
        content_type="backup",
        datastore_id="local",
        node_name="pve",
        source_file={
            "path": "vzdump-lxc-100-2023_11_08-23_10_05.tar.zst",
        })
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := proxmoxve.NewFileLegacy(ctx, "backup", &proxmoxve.FileLegacyArgs{
    			ContentType: pulumi.String("backup"),
    			DatastoreId: pulumi.String("local"),
    			NodeName:    pulumi.String("pve"),
    			SourceFile: &proxmoxve.FileLegacySourceFileArgs{
    				Path: pulumi.String("vzdump-lxc-100-2023_11_08-23_10_05.tar.zst"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        var backup = new ProxmoxVE.Index.FileLegacy("backup", new()
        {
            ContentType = "backup",
            DatastoreId = "local",
            NodeName = "pve",
            SourceFile = new ProxmoxVE.Inputs.FileLegacySourceFileArgs
            {
                Path = "vzdump-lxc-100-2023_11_08-23_10_05.tar.zst",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacy;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacyArgs;
    import com.pulumi.proxmoxve.inputs.FileLegacySourceFileArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var backup = new FileLegacy("backup", FileLegacyArgs.builder()
                .contentType("backup")
                .datastoreId("local")
                .nodeName("pve")
                .sourceFile(FileLegacySourceFileArgs.builder()
                    .path("vzdump-lxc-100-2023_11_08-23_10_05.tar.zst")
                    .build())
                .build());
    
        }
    }
    
    resources:
      backup:
        type: proxmoxve:FileLegacy
        properties:
          contentType: backup
          datastoreId: local
          nodeName: pve
          sourceFile:
            path: vzdump-lxc-100-2023_11_08-23_10_05.tar.zst
    
    Example coming soon!
    

    Images

    Consider using proxmoxve.download.FileLegacy resource instead. Using this resource for images is less efficient (requires to transfer uploaded image to node) though still supported.

    The import content type is not enabled by default on Proxmox VE storages. To use this resource with contentType = "import", first add Import to the allowed content types on the target storage under ‘Datacenter > Storage’ in the Proxmox web interface.

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    const ubuntuContainerTemplate = new proxmoxve.FileLegacy("ubuntu_container_template", {
        contentType: "iso",
        datastoreId: "local",
        nodeName: "pve",
        sourceFile: {
            path: "https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img",
        },
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    ubuntu_container_template = proxmoxve.FileLegacy("ubuntu_container_template",
        content_type="iso",
        datastore_id="local",
        node_name="pve",
        source_file={
            "path": "https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img",
        })
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := proxmoxve.NewFileLegacy(ctx, "ubuntu_container_template", &proxmoxve.FileLegacyArgs{
    			ContentType: pulumi.String("iso"),
    			DatastoreId: pulumi.String("local"),
    			NodeName:    pulumi.String("pve"),
    			SourceFile: &proxmoxve.FileLegacySourceFileArgs{
    				Path: pulumi.String("https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        var ubuntuContainerTemplate = new ProxmoxVE.Index.FileLegacy("ubuntu_container_template", new()
        {
            ContentType = "iso",
            DatastoreId = "local",
            NodeName = "pve",
            SourceFile = new ProxmoxVE.Inputs.FileLegacySourceFileArgs
            {
                Path = "https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacy;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacyArgs;
    import com.pulumi.proxmoxve.inputs.FileLegacySourceFileArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var ubuntuContainerTemplate = new FileLegacy("ubuntuContainerTemplate", FileLegacyArgs.builder()
                .contentType("iso")
                .datastoreId("local")
                .nodeName("pve")
                .sourceFile(FileLegacySourceFileArgs.builder()
                    .path("https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img")
                    .build())
                .build());
    
        }
    }
    
    resources:
      ubuntuContainerTemplate:
        type: proxmoxve:FileLegacy
        name: ubuntu_container_template
        properties:
          contentType: iso
          datastoreId: local
          nodeName: pve
          sourceFile:
            path: https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img
    
    Example coming soon!
    
    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    const ubuntuContainerTemplate = new proxmoxve.FileLegacy("ubuntu_container_template", {
        contentType: "import",
        datastoreId: "local",
        nodeName: "pve",
        sourceFile: {
            path: "https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img",
        },
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    ubuntu_container_template = proxmoxve.FileLegacy("ubuntu_container_template",
        content_type="import",
        datastore_id="local",
        node_name="pve",
        source_file={
            "path": "https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img",
        })
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := proxmoxve.NewFileLegacy(ctx, "ubuntu_container_template", &proxmoxve.FileLegacyArgs{
    			ContentType: pulumi.String("import"),
    			DatastoreId: pulumi.String("local"),
    			NodeName:    pulumi.String("pve"),
    			SourceFile: &proxmoxve.FileLegacySourceFileArgs{
    				Path: pulumi.String("https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        var ubuntuContainerTemplate = new ProxmoxVE.Index.FileLegacy("ubuntu_container_template", new()
        {
            ContentType = "import",
            DatastoreId = "local",
            NodeName = "pve",
            SourceFile = new ProxmoxVE.Inputs.FileLegacySourceFileArgs
            {
                Path = "https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacy;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacyArgs;
    import com.pulumi.proxmoxve.inputs.FileLegacySourceFileArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var ubuntuContainerTemplate = new FileLegacy("ubuntuContainerTemplate", FileLegacyArgs.builder()
                .contentType("import")
                .datastoreId("local")
                .nodeName("pve")
                .sourceFile(FileLegacySourceFileArgs.builder()
                    .path("https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img")
                    .build())
                .build());
    
        }
    }
    
    resources:
      ubuntuContainerTemplate:
        type: proxmoxve:FileLegacy
        name: ubuntu_container_template
        properties:
          contentType: import
          datastoreId: local
          nodeName: pve
          sourceFile:
            path: https://cloud-images.ubuntu.com/jammy/20230929/jammy-server-cloudimg-amd64-disk-kvm.img
    
    Example coming soon!
    

    Snippets

    Snippets are not enabled by default in new Proxmox installations. You need to enable them in the ‘Datacenter>Storage’ section of the proxmox interface before first using this resource.

    The resource with this content type uses SSH access to the node. You might need to configure the ssh option in the provider section.

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    import * as std from "@pulumi/std";
    
    const cloudConfig = new proxmoxve.FileLegacy("cloud_config", {
        contentType: "snippets",
        datastoreId: "local",
        nodeName: "pve",
        sourceRaw: {
            data: std.trimspace({
                input: example.publicKeyOpenssh,
            }).then(invoke => `#cloud-config
    chpasswd:
      list: |
        ubuntu:example
      expire: false
    hostname: example-hostname
    packages:
      - qemu-guest-agent
    users:
      - default
      - name: ubuntu
        groups: sudo
        shell: /bin/bash
        ssh-authorized-keys:
          - ${invoke.result}
        sudo: ALL=(ALL) NOPASSWD:ALL
    `),
            fileName: "example.cloud-config.yaml",
        },
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    import pulumi_std as std
    
    cloud_config = proxmoxve.FileLegacy("cloud_config",
        content_type="snippets",
        datastore_id="local",
        node_name="pve",
        source_raw={
            "data": f"""#cloud-config
    chpasswd:
      list: |
        ubuntu:example
      expire: false
    hostname: example-hostname
    packages:
      - qemu-guest-agent
    users:
      - default
      - name: ubuntu
        groups: sudo
        shell: /bin/bash
        ssh-authorized-keys:
          - {std.trimspace(input=example["publicKeyOpenssh"]).result}
        sudo: ALL=(ALL) NOPASSWD:ALL
    """,
            "file_name": "example.cloud-config.yaml",
        })
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve"
    	"github.com/pulumi/pulumi-std/sdk/v2/go/std"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		invokeTrimspace, err := std.Trimspace(ctx, &std.TrimspaceArgs{
    			Input: example.PublicKeyOpenssh,
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = proxmoxve.NewFileLegacy(ctx, "cloud_config", &proxmoxve.FileLegacyArgs{
    			ContentType: pulumi.String("snippets"),
    			DatastoreId: pulumi.String("local"),
    			NodeName:    pulumi.String("pve"),
    			SourceRaw: &proxmoxve.FileLegacySourceRawArgs{
    				Data: pulumi.Sprintf(`#cloud-config
    chpasswd:
      list: |
        ubuntu:example
      expire: false
    hostname: example-hostname
    packages:
      - qemu-guest-agent
    users:
      - default
      - name: ubuntu
        groups: sudo
        shell: /bin/bash
        ssh-authorized-keys:
          - %v
        sudo: ALL=(ALL) NOPASSWD:ALL
    `, invokeTrimspace.Result),
    				FileName: pulumi.String("example.cloud-config.yaml"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    using Std = Pulumi.Std;
    
    return await Deployment.RunAsync(() => 
    {
        var cloudConfig = new ProxmoxVE.Index.FileLegacy("cloud_config", new()
        {
            ContentType = "snippets",
            DatastoreId = "local",
            NodeName = "pve",
            SourceRaw = new ProxmoxVE.Inputs.FileLegacySourceRawArgs
            {
                Data = Std.Index.Trimspace.Invoke(new()
                {
                    Input = example.PublicKeyOpenssh,
                }).Apply(invoke => @$"#cloud-config
    chpasswd:
      list: |
        ubuntu:example
      expire: false
    hostname: example-hostname
    packages:
      - qemu-guest-agent
    users:
      - default
      - name: ubuntu
        groups: sudo
        shell: /bin/bash
        ssh-authorized-keys:
          - {invoke.Result}
        sudo: ALL=(ALL) NOPASSWD:ALL
    "),
                FileName = "example.cloud-config.yaml",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacy;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacyArgs;
    import com.pulumi.proxmoxve.inputs.FileLegacySourceRawArgs;
    import com.pulumi.std.StdFunctions;
    import com.pulumi.std.inputs.TrimspaceArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var cloudConfig = new FileLegacy("cloudConfig", FileLegacyArgs.builder()
                .contentType("snippets")
                .datastoreId("local")
                .nodeName("pve")
                .sourceRaw(FileLegacySourceRawArgs.builder()
                    .data("""
    #cloud-config
    chpasswd:
      list: |
        ubuntu:example
      expire: false
    hostname: example-hostname
    packages:
      - qemu-guest-agent
    users:
      - default
      - name: ubuntu
        groups: sudo
        shell: /bin/bash
        ssh-authorized-keys:
          - %s
        sudo: ALL=(ALL) NOPASSWD:ALL
    ", StdFunctions.trimspace(TrimspaceArgs.builder()
                        .input(example.publicKeyOpenssh())
                        .build()).result()))
                    .fileName("example.cloud-config.yaml")
                    .build())
                .build());
    
        }
    }
    
    resources:
      cloudConfig:
        type: proxmoxve:FileLegacy
        name: cloud_config
        properties:
          contentType: snippets
          datastoreId: local
          nodeName: pve
          sourceRaw:
            data:
              fn::join:
                - ""
                - - "#cloud-config\nchpasswd:\n  list: |\n    ubuntu:example\n  expire: false\nhostname: example-hostname\npackages:\n  - qemu-guest-agent\nusers:\n  - default\n  - name: ubuntu\n    groups: sudo\n    shell: /bin/bash\n    ssh-authorized-keys:\n      - "
                  - fn::invoke:
                      function: std:trimspace
                      arguments:
                        input: ${example.publicKeyOpenssh}
                      return: result
                  - |2
                        sudo: ALL=(ALL) NOPASSWD:ALL
            fileName: example.cloud-config.yaml
    
    Example coming soon!
    

    The fileMode attribute can be used to make a script file executable, e.g. when referencing the file in the hookScriptFileId attribute of a container or a VM resource which is a requirement enforced by the Proxmox VE API.

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    const hookScript = new proxmoxve.FileLegacy("hook_script", {
        contentType: "snippets",
        datastoreId: "local",
        nodeName: "pve",
        fileMode: "0700",
        sourceRaw: {
            data: `#!/usr/bin/env bash
    
    echo \\"Running hook script\\"
    `,
            fileName: "prepare-hook.sh",
        },
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    hook_script = proxmoxve.FileLegacy("hook_script",
        content_type="snippets",
        datastore_id="local",
        node_name="pve",
        file_mode="0700",
        source_raw={
            "data": """#!/usr/bin/env bash
    
    echo \"Running hook script\"
    """,
            "file_name": "prepare-hook.sh",
        })
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := proxmoxve.NewFileLegacy(ctx, "hook_script", &proxmoxve.FileLegacyArgs{
    			ContentType: pulumi.String("snippets"),
    			DatastoreId: pulumi.String("local"),
    			NodeName:    pulumi.String("pve"),
    			FileMode:    pulumi.String("0700"),
    			SourceRaw: &proxmoxve.FileLegacySourceRawArgs{
    				Data:     pulumi.String("#!/usr/bin/env bash\n\necho \\\"Running hook script\\\"\n"),
    				FileName: pulumi.String("prepare-hook.sh"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        var hookScript = new ProxmoxVE.Index.FileLegacy("hook_script", new()
        {
            ContentType = "snippets",
            DatastoreId = "local",
            NodeName = "pve",
            FileMode = "0700",
            SourceRaw = new ProxmoxVE.Inputs.FileLegacySourceRawArgs
            {
                Data = @"#!/usr/bin/env bash
    
    echo \""Running hook script\""
    ",
                FileName = "prepare-hook.sh",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacy;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacyArgs;
    import com.pulumi.proxmoxve.inputs.FileLegacySourceRawArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var hookScript = new FileLegacy("hookScript", FileLegacyArgs.builder()
                .contentType("snippets")
                .datastoreId("local")
                .nodeName("pve")
                .fileMode("0700")
                .sourceRaw(FileLegacySourceRawArgs.builder()
                    .data("""
    #!/usr/bin/env bash
    
    echo \"Running hook script\"
                    """)
                    .fileName("prepare-hook.sh")
                    .build())
                .build());
    
        }
    }
    
    resources:
      hookScript:
        type: proxmoxve:FileLegacy
        name: hook_script
        properties:
          contentType: snippets
          datastoreId: local
          nodeName: pve
          fileMode: '0700'
          sourceRaw:
            data: |
              #!/usr/bin/env bash
    
              echo \"Running hook script\"
            fileName: prepare-hook.sh
    
    Example coming soon!
    

    Container Template (vztmpl)

    Consider using proxmoxve.download.FileLegacy resource instead. Using this resource for container images is less efficient (requires to transfer uploaded image to node) though still supported.

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    const ubuntuContainerTemplate = new proxmoxve.FileLegacy("ubuntu_container_template", {
        contentType: "vztmpl",
        datastoreId: "local",
        nodeName: "first-node",
        sourceFile: {
            path: "http://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz",
        },
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    ubuntu_container_template = proxmoxve.FileLegacy("ubuntu_container_template",
        content_type="vztmpl",
        datastore_id="local",
        node_name="first-node",
        source_file={
            "path": "http://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz",
        })
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := proxmoxve.NewFileLegacy(ctx, "ubuntu_container_template", &proxmoxve.FileLegacyArgs{
    			ContentType: pulumi.String("vztmpl"),
    			DatastoreId: pulumi.String("local"),
    			NodeName:    pulumi.String("first-node"),
    			SourceFile: &proxmoxve.FileLegacySourceFileArgs{
    				Path: pulumi.String("http://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        var ubuntuContainerTemplate = new ProxmoxVE.Index.FileLegacy("ubuntu_container_template", new()
        {
            ContentType = "vztmpl",
            DatastoreId = "local",
            NodeName = "first-node",
            SourceFile = new ProxmoxVE.Inputs.FileLegacySourceFileArgs
            {
                Path = "http://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacy;
    import io.muehlbachler.pulumi.proxmoxve.FileLegacyArgs;
    import com.pulumi.proxmoxve.inputs.FileLegacySourceFileArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var ubuntuContainerTemplate = new FileLegacy("ubuntuContainerTemplate", FileLegacyArgs.builder()
                .contentType("vztmpl")
                .datastoreId("local")
                .nodeName("first-node")
                .sourceFile(FileLegacySourceFileArgs.builder()
                    .path("http://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz")
                    .build())
                .build());
    
        }
    }
    
    resources:
      ubuntuContainerTemplate:
        type: proxmoxve:FileLegacy
        name: ubuntu_container_template
        properties:
          contentType: vztmpl
          datastoreId: local
          nodeName: first-node
          sourceFile:
            path: http://download.proxmox.com/images/system/ubuntu-20.04-standard_20.04-1_amd64.tar.gz
    
    Example coming soon!
    

    Create FileLegacy Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new FileLegacy(name: string, args: FileLegacyArgs, opts?: CustomResourceOptions);
    @overload
    def FileLegacy(resource_name: str,
                   args: FileLegacyArgs,
                   opts: Optional[ResourceOptions] = None)
    
    @overload
    def FileLegacy(resource_name: str,
                   opts: Optional[ResourceOptions] = None,
                   datastore_id: Optional[str] = None,
                   node_name: Optional[str] = None,
                   content_type: Optional[str] = None,
                   file_mode: Optional[str] = None,
                   overwrite: Optional[bool] = None,
                   source_file: Optional[FileLegacySourceFileArgs] = None,
                   source_raw: Optional[FileLegacySourceRawArgs] = None,
                   timeout_upload: Optional[int] = None)
    func NewFileLegacy(ctx *Context, name string, args FileLegacyArgs, opts ...ResourceOption) (*FileLegacy, error)
    public FileLegacy(string name, FileLegacyArgs args, CustomResourceOptions? opts = null)
    public FileLegacy(String name, FileLegacyArgs args)
    public FileLegacy(String name, FileLegacyArgs args, CustomResourceOptions options)
    
    type: proxmoxve:FileLegacy
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "proxmoxve_filelegacy" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args FileLegacyArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args FileLegacyArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args FileLegacyArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args FileLegacyArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args FileLegacyArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var proxmoxveFileLegacyResource = new ProxmoxVE.FileLegacy("proxmoxveFileLegacyResource", new()
    {
        DatastoreId = "string",
        NodeName = "string",
        ContentType = "string",
        FileMode = "string",
        Overwrite = false,
        SourceFile = new ProxmoxVE.Inputs.FileLegacySourceFileArgs
        {
            Path = "string",
            Changed = false,
            Checksum = "string",
            FileName = "string",
            Insecure = false,
            MinTls = "string",
        },
        SourceRaw = new ProxmoxVE.Inputs.FileLegacySourceRawArgs
        {
            Data = "string",
            FileName = "string",
            Resize = 0,
        },
        TimeoutUpload = 0,
    });
    
    example, err := proxmoxve.NewFileLegacy(ctx, "proxmoxveFileLegacyResource", &proxmoxve.FileLegacyArgs{
    	DatastoreId: pulumi.String("string"),
    	NodeName:    pulumi.String("string"),
    	ContentType: pulumi.String("string"),
    	FileMode:    pulumi.String("string"),
    	Overwrite:   pulumi.Bool(false),
    	SourceFile: &proxmoxve.FileLegacySourceFileArgs{
    		Path:     pulumi.String("string"),
    		Changed:  pulumi.Bool(false),
    		Checksum: pulumi.String("string"),
    		FileName: pulumi.String("string"),
    		Insecure: pulumi.Bool(false),
    		MinTls:   pulumi.String("string"),
    	},
    	SourceRaw: &proxmoxve.FileLegacySourceRawArgs{
    		Data:     pulumi.String("string"),
    		FileName: pulumi.String("string"),
    		Resize:   pulumi.Int(0),
    	},
    	TimeoutUpload: pulumi.Int(0),
    })
    
    resource "proxmoxve_filelegacy" "proxmoxveFileLegacyResource" {
      datastore_id = "string"
      node_name    = "string"
      content_type = "string"
      file_mode    = "string"
      overwrite    = false
      source_file = {
        path      = "string"
        changed   = false
        checksum  = "string"
        file_name = "string"
        insecure  = false
        min_tls   = "string"
      }
      source_raw = {
        data      = "string"
        file_name = "string"
        resize    = 0
      }
      timeout_upload = 0
    }
    
    var proxmoxveFileLegacyResource = new io.muehlbachler.pulumi.proxmoxve.FileLegacy("proxmoxveFileLegacyResource", io.muehlbachler.pulumi.proxmoxve.FileLegacyArgs.builder()
        .datastoreId("string")
        .nodeName("string")
        .contentType("string")
        .fileMode("string")
        .overwrite(false)
        .sourceFile(FileLegacySourceFileArgs.builder()
            .path("string")
            .changed(false)
            .checksum("string")
            .fileName("string")
            .insecure(false)
            .minTls("string")
            .build())
        .sourceRaw(FileLegacySourceRawArgs.builder()
            .data("string")
            .fileName("string")
            .resize(0)
            .build())
        .timeoutUpload(0)
        .build());
    
    proxmoxve_file_legacy_resource = proxmoxve.FileLegacy("proxmoxveFileLegacyResource",
        datastore_id="string",
        node_name="string",
        content_type="string",
        file_mode="string",
        overwrite=False,
        source_file={
            "path": "string",
            "changed": False,
            "checksum": "string",
            "file_name": "string",
            "insecure": False,
            "min_tls": "string",
        },
        source_raw={
            "data": "string",
            "file_name": "string",
            "resize": 0,
        },
        timeout_upload=0)
    
    const proxmoxveFileLegacyResource = new proxmoxve.FileLegacy("proxmoxveFileLegacyResource", {
        datastoreId: "string",
        nodeName: "string",
        contentType: "string",
        fileMode: "string",
        overwrite: false,
        sourceFile: {
            path: "string",
            changed: false,
            checksum: "string",
            fileName: "string",
            insecure: false,
            minTls: "string",
        },
        sourceRaw: {
            data: "string",
            fileName: "string",
            resize: 0,
        },
        timeoutUpload: 0,
    });
    
    type: proxmoxve:FileLegacy
    properties:
        contentType: string
        datastoreId: string
        fileMode: string
        nodeName: string
        overwrite: false
        sourceFile:
            changed: false
            checksum: string
            fileName: string
            insecure: false
            minTls: string
            path: string
        sourceRaw:
            data: string
            fileName: string
            resize: 0
        timeoutUpload: 0
    

    FileLegacy Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The FileLegacy resource accepts the following input properties:

    DatastoreId string
    The datastore id.
    NodeName string
    The node name.
    ContentType string
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    FileMode string
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    Overwrite bool
    Whether to overwrite an existing file (defaults to true).
    SourceFile Pulumi.ProxmoxVE.Inputs.FileLegacySourceFile
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    SourceRaw Pulumi.ProxmoxVE.Inputs.FileLegacySourceRaw
    The raw source (conflicts with sourceFile).
    TimeoutUpload int
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    DatastoreId string
    The datastore id.
    NodeName string
    The node name.
    ContentType string
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    FileMode string
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    Overwrite bool
    Whether to overwrite an existing file (defaults to true).
    SourceFile FileLegacySourceFileArgs
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    SourceRaw FileLegacySourceRawArgs
    The raw source (conflicts with sourceFile).
    TimeoutUpload int
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    datastore_id string
    The datastore id.
    node_name string
    The node name.
    content_type string
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    file_mode string
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    overwrite bool
    Whether to overwrite an existing file (defaults to true).
    source_file object
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    source_raw object
    The raw source (conflicts with sourceFile).
    timeout_upload number
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    datastoreId String
    The datastore id.
    nodeName String
    The node name.
    contentType String
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    fileMode String
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    overwrite Boolean
    Whether to overwrite an existing file (defaults to true).
    sourceFile FileLegacySourceFile
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    sourceRaw FileLegacySourceRaw
    The raw source (conflicts with sourceFile).
    timeoutUpload Integer
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    datastoreId string
    The datastore id.
    nodeName string
    The node name.
    contentType string
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    fileMode string
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    overwrite boolean
    Whether to overwrite an existing file (defaults to true).
    sourceFile FileLegacySourceFile
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    sourceRaw FileLegacySourceRaw
    The raw source (conflicts with sourceFile).
    timeoutUpload number
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    datastore_id str
    The datastore id.
    node_name str
    The node name.
    content_type str
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    file_mode str
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    overwrite bool
    Whether to overwrite an existing file (defaults to true).
    source_file FileLegacySourceFileArgs
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    source_raw FileLegacySourceRawArgs
    The raw source (conflicts with sourceFile).
    timeout_upload int
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    datastoreId String
    The datastore id.
    nodeName String
    The node name.
    contentType String
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    fileMode String
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    overwrite Boolean
    Whether to overwrite an existing file (defaults to true).
    sourceFile Property Map
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    sourceRaw Property Map
    The raw source (conflicts with sourceFile).
    timeoutUpload Number
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).

    Outputs

    All input properties are implicitly available as output properties. Additionally, the FileLegacy resource produces the following output properties:

    FileModificationDate string
    The file modification date (RFC 3339).
    FileName string
    The file name.
    FileSize int
    The file size in bytes.
    FileTag string
    The file tag.
    Id string
    The provider-assigned unique ID for this managed resource.
    FileModificationDate string
    The file modification date (RFC 3339).
    FileName string
    The file name.
    FileSize int
    The file size in bytes.
    FileTag string
    The file tag.
    Id string
    The provider-assigned unique ID for this managed resource.
    file_modification_date string
    The file modification date (RFC 3339).
    file_name string
    The file name.
    file_size number
    The file size in bytes.
    file_tag string
    The file tag.
    id string
    The provider-assigned unique ID for this managed resource.
    fileModificationDate String
    The file modification date (RFC 3339).
    fileName String
    The file name.
    fileSize Integer
    The file size in bytes.
    fileTag String
    The file tag.
    id String
    The provider-assigned unique ID for this managed resource.
    fileModificationDate string
    The file modification date (RFC 3339).
    fileName string
    The file name.
    fileSize number
    The file size in bytes.
    fileTag string
    The file tag.
    id string
    The provider-assigned unique ID for this managed resource.
    file_modification_date str
    The file modification date (RFC 3339).
    file_name str
    The file name.
    file_size int
    The file size in bytes.
    file_tag str
    The file tag.
    id str
    The provider-assigned unique ID for this managed resource.
    fileModificationDate String
    The file modification date (RFC 3339).
    fileName String
    The file name.
    fileSize Number
    The file size in bytes.
    fileTag String
    The file tag.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing FileLegacy Resource

    Get an existing FileLegacy resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: FileLegacyState, opts?: CustomResourceOptions): FileLegacy
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            content_type: Optional[str] = None,
            datastore_id: Optional[str] = None,
            file_mode: Optional[str] = None,
            file_modification_date: Optional[str] = None,
            file_name: Optional[str] = None,
            file_size: Optional[int] = None,
            file_tag: Optional[str] = None,
            node_name: Optional[str] = None,
            overwrite: Optional[bool] = None,
            source_file: Optional[FileLegacySourceFileArgs] = None,
            source_raw: Optional[FileLegacySourceRawArgs] = None,
            timeout_upload: Optional[int] = None) -> FileLegacy
    func GetFileLegacy(ctx *Context, name string, id IDInput, state *FileLegacyState, opts ...ResourceOption) (*FileLegacy, error)
    public static FileLegacy Get(string name, Input<string> id, FileLegacyState? state, CustomResourceOptions? opts = null)
    public static FileLegacy get(String name, Output<String> id, FileLegacyState state, CustomResourceOptions options)
    resources:  _:    type: proxmoxve:FileLegacy    get:      id: ${id}
    import {
      to = proxmoxve_filelegacy.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    ContentType string
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    DatastoreId string
    The datastore id.
    FileMode string
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    FileModificationDate string
    The file modification date (RFC 3339).
    FileName string
    The file name.
    FileSize int
    The file size in bytes.
    FileTag string
    The file tag.
    NodeName string
    The node name.
    Overwrite bool
    Whether to overwrite an existing file (defaults to true).
    SourceFile Pulumi.ProxmoxVE.Inputs.FileLegacySourceFile
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    SourceRaw Pulumi.ProxmoxVE.Inputs.FileLegacySourceRaw
    The raw source (conflicts with sourceFile).
    TimeoutUpload int
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    ContentType string
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    DatastoreId string
    The datastore id.
    FileMode string
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    FileModificationDate string
    The file modification date (RFC 3339).
    FileName string
    The file name.
    FileSize int
    The file size in bytes.
    FileTag string
    The file tag.
    NodeName string
    The node name.
    Overwrite bool
    Whether to overwrite an existing file (defaults to true).
    SourceFile FileLegacySourceFileArgs
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    SourceRaw FileLegacySourceRawArgs
    The raw source (conflicts with sourceFile).
    TimeoutUpload int
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    content_type string
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    datastore_id string
    The datastore id.
    file_mode string
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    file_modification_date string
    The file modification date (RFC 3339).
    file_name string
    The file name.
    file_size number
    The file size in bytes.
    file_tag string
    The file tag.
    node_name string
    The node name.
    overwrite bool
    Whether to overwrite an existing file (defaults to true).
    source_file object
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    source_raw object
    The raw source (conflicts with sourceFile).
    timeout_upload number
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    contentType String
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    datastoreId String
    The datastore id.
    fileMode String
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    fileModificationDate String
    The file modification date (RFC 3339).
    fileName String
    The file name.
    fileSize Integer
    The file size in bytes.
    fileTag String
    The file tag.
    nodeName String
    The node name.
    overwrite Boolean
    Whether to overwrite an existing file (defaults to true).
    sourceFile FileLegacySourceFile
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    sourceRaw FileLegacySourceRaw
    The raw source (conflicts with sourceFile).
    timeoutUpload Integer
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    contentType string
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    datastoreId string
    The datastore id.
    fileMode string
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    fileModificationDate string
    The file modification date (RFC 3339).
    fileName string
    The file name.
    fileSize number
    The file size in bytes.
    fileTag string
    The file tag.
    nodeName string
    The node name.
    overwrite boolean
    Whether to overwrite an existing file (defaults to true).
    sourceFile FileLegacySourceFile
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    sourceRaw FileLegacySourceRaw
    The raw source (conflicts with sourceFile).
    timeoutUpload number
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    content_type str
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    datastore_id str
    The datastore id.
    file_mode str
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    file_modification_date str
    The file modification date (RFC 3339).
    file_name str
    The file name.
    file_size int
    The file size in bytes.
    file_tag str
    The file tag.
    node_name str
    The node name.
    overwrite bool
    Whether to overwrite an existing file (defaults to true).
    source_file FileLegacySourceFileArgs
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    source_raw FileLegacySourceRawArgs
    The raw source (conflicts with sourceFile).
    timeout_upload int
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).
    contentType String
    The content type. If not specified, the content type will be inferred from the file extension. Valid values are:
    datastoreId String
    The datastore id.
    fileMode String
    The file mode in octal format, e.g. 0700 or 600. Note that the prefixes 0o and 0x is not supported! Setting this attribute is also only allowed for root@pam authenticated user.
    fileModificationDate String
    The file modification date (RFC 3339).
    fileName String
    The file name.
    fileSize Number
    The file size in bytes.
    fileTag String
    The file tag.
    nodeName String
    The node name.
    overwrite Boolean
    Whether to overwrite an existing file (defaults to true).
    sourceFile Property Map
    The source file (conflicts with sourceRaw), could be a local file or a URL. If the source file is a URL, the file will be downloaded and stored locally before uploading it to Proxmox VE.
    sourceRaw Property Map
    The raw source (conflicts with sourceFile).
    timeoutUpload Number
    Timeout for uploading ISO/VSTMPL files in seconds (defaults to 1800).

    Supporting Types

    FileLegacySourceFile, FileLegacySourceFileArgs

    Path string
    A path to a local file or a URL.
    Changed bool
    Whether the source file has changed since the last run
    Checksum string
    The SHA256 checksum of the source file.
    FileName string
    The file name to use instead of the source file name. Useful when the source file does not have a valid file extension, for example when the source file is a URL referencing a .qcow2 image.
    Insecure bool
    Whether to skip the TLS verification step for HTTPS sources (defaults to false).
    MinTls string
    The minimum required TLS version for HTTPS sources. "Supported values: 1.0|1.1|1.2|1.3 (defaults to 1.3).
    Path string
    A path to a local file or a URL.
    Changed bool
    Whether the source file has changed since the last run
    Checksum string
    The SHA256 checksum of the source file.
    FileName string
    The file name to use instead of the source file name. Useful when the source file does not have a valid file extension, for example when the source file is a URL referencing a .qcow2 image.
    Insecure bool
    Whether to skip the TLS verification step for HTTPS sources (defaults to false).
    MinTls string
    The minimum required TLS version for HTTPS sources. "Supported values: 1.0|1.1|1.2|1.3 (defaults to 1.3).
    path string
    A path to a local file or a URL.
    changed bool
    Whether the source file has changed since the last run
    checksum string
    The SHA256 checksum of the source file.
    file_name string
    The file name to use instead of the source file name. Useful when the source file does not have a valid file extension, for example when the source file is a URL referencing a .qcow2 image.
    insecure bool
    Whether to skip the TLS verification step for HTTPS sources (defaults to false).
    min_tls string
    The minimum required TLS version for HTTPS sources. "Supported values: 1.0|1.1|1.2|1.3 (defaults to 1.3).
    path String
    A path to a local file or a URL.
    changed Boolean
    Whether the source file has changed since the last run
    checksum String
    The SHA256 checksum of the source file.
    fileName String
    The file name to use instead of the source file name. Useful when the source file does not have a valid file extension, for example when the source file is a URL referencing a .qcow2 image.
    insecure Boolean
    Whether to skip the TLS verification step for HTTPS sources (defaults to false).
    minTls String
    The minimum required TLS version for HTTPS sources. "Supported values: 1.0|1.1|1.2|1.3 (defaults to 1.3).
    path string
    A path to a local file or a URL.
    changed boolean
    Whether the source file has changed since the last run
    checksum string
    The SHA256 checksum of the source file.
    fileName string
    The file name to use instead of the source file name. Useful when the source file does not have a valid file extension, for example when the source file is a URL referencing a .qcow2 image.
    insecure boolean
    Whether to skip the TLS verification step for HTTPS sources (defaults to false).
    minTls string
    The minimum required TLS version for HTTPS sources. "Supported values: 1.0|1.1|1.2|1.3 (defaults to 1.3).
    path str
    A path to a local file or a URL.
    changed bool
    Whether the source file has changed since the last run
    checksum str
    The SHA256 checksum of the source file.
    file_name str
    The file name to use instead of the source file name. Useful when the source file does not have a valid file extension, for example when the source file is a URL referencing a .qcow2 image.
    insecure bool
    Whether to skip the TLS verification step for HTTPS sources (defaults to false).
    min_tls str
    The minimum required TLS version for HTTPS sources. "Supported values: 1.0|1.1|1.2|1.3 (defaults to 1.3).
    path String
    A path to a local file or a URL.
    changed Boolean
    Whether the source file has changed since the last run
    checksum String
    The SHA256 checksum of the source file.
    fileName String
    The file name to use instead of the source file name. Useful when the source file does not have a valid file extension, for example when the source file is a URL referencing a .qcow2 image.
    insecure Boolean
    Whether to skip the TLS verification step for HTTPS sources (defaults to false).
    minTls String
    The minimum required TLS version for HTTPS sources. "Supported values: 1.0|1.1|1.2|1.3 (defaults to 1.3).

    FileLegacySourceRaw, FileLegacySourceRawArgs

    Data string
    The raw data.
    FileName string
    The file name.
    Resize int
    The number of bytes to resize the file to.
    Data string
    The raw data.
    FileName string
    The file name.
    Resize int
    The number of bytes to resize the file to.
    data string
    The raw data.
    file_name string
    The file name.
    resize number
    The number of bytes to resize the file to.
    data String
    The raw data.
    fileName String
    The file name.
    resize Integer
    The number of bytes to resize the file to.
    data string
    The raw data.
    fileName string
    The file name.
    resize number
    The number of bytes to resize the file to.
    data str
    The raw data.
    file_name str
    The file name.
    resize int
    The number of bytes to resize the file to.
    data String
    The raw data.
    fileName String
    The file name.
    resize Number
    The number of bytes to resize the file to.

    Import

    ant Notes

    The Proxmox VE API endpoint for file uploads does not support chunked transfer encoding, which means that we must first store the source file as a temporary file locally before uploading it.

    You must ensure that you have at least Size-in-MB * 2 + 1 MB of storage space available (twice the size plus overhead because a multipart payload needs to be created as another temporary file).

    By default, if the specified file already exists, the resource will unconditionally replace it and take ownership of the resource. On destruction, the file will be deleted as if it did not exist before. If you want to prevent the resource from replacing the file, set overwrite to false.

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    proxmoxve muhlba91/pulumi-proxmoxve
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the proxmox Terraform Provider.
    proxmoxve logo
    Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.1.0
    published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
      Try Pulumi Cloud free. Your team will thank you.