UNPKG

@muhlba91/pulumi-proxmoxve

Version:

A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.

159 lines 8.51 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.File = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("../utilities"); /** * Manages files upload using PVE download-url API. It can be fully compatible and faster replacement for image files created using `proxmoxve.Storage.File`. Supports images for VMs (ISO and disk images) and LXC (CT Templates). * * > Besides the `Datastore.AllocateTemplate` privilege, this resource requires both the `Sys.Audit` and `Sys.Modify` privileges.<br><br> * For more details, see the [`download-url`](https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/storage/{storage}/download-url) API documentation under the "Required permissions" section. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve"; * * const release20231228Debian12BookwormQcow2Img = new proxmoxve.download.File("release20231228Debian12BookwormQcow2Img", { * checksum: "d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b", * checksumAlgorithm: "sha512", * contentType: "iso", * datastoreId: "local", * fileName: "debian-12-generic-amd64-20231228-1609.img", * nodeName: "pve", * url: "https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2", * }); * const release20231228Debian12BookwormQcow2 = new proxmoxve.download.File("release20231228Debian12BookwormQcow2", { * checksum: "d2fbcf11fb28795842e91364d8c7b69f1870db09ff299eb94e4fbbfa510eb78d141e74c1f4bf6dfa0b7e33d0c3b66e6751886feadb4e9916f778bab1776bdf1b", * checksumAlgorithm: "sha512", * contentType: "import", * datastoreId: "local", * fileName: "debian-12-generic-amd64-20231228-1609.qcow2", * nodeName: "pve", * url: "https://cloud.debian.org/images/cloud/bookworm/20231228-1609/debian-12-generic-amd64-20231228-1609.qcow2", * }); * const latestDebian12BookwormQcow2Img = new proxmoxve.download.File("latestDebian12BookwormQcow2Img", { * contentType: "iso", * datastoreId: "local", * fileName: "debian-12-generic-amd64.qcow2.img", * nodeName: "pve", * url: "https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2", * }); * const latestDebian12BookwormQcow2 = new proxmoxve.download.File("latestDebian12BookwormQcow2", { * contentType: "import", * datastoreId: "local", * fileName: "debian-12-generic-amd64.qcow2", * nodeName: "pve", * url: "https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2", * }); * const latestUbuntu22JammyQcow2Img = new proxmoxve.download.File("latestUbuntu22JammyQcow2Img", { * contentType: "iso", * datastoreId: "local", * nodeName: "pve", * url: "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img", * }); * const latestStaticUbuntu24NobleQcow2Img = new proxmoxve.download.File("latestStaticUbuntu24NobleQcow2Img", { * contentType: "iso", * datastoreId: "local", * nodeName: "pve", * overwrite: false, * url: "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img", * }); * const release20231211Ubuntu22JammyLxcImg = new proxmoxve.download.File("release20231211Ubuntu22JammyLxcImg", { * checksum: "c9997dcfea5d826fd04871f960c513665f2e87dd7450bba99f68a97e60e4586e", * checksumAlgorithm: "sha256", * contentType: "vztmpl", * datastoreId: "local", * nodeName: "pve", * uploadTimeout: 4444, * url: "https://cloud-images.ubuntu.com/releases/22.04/release-20231211/ubuntu-22.04-server-cloudimg-amd64-root.tar.xz", * }); * const latestUbuntu22JammyLxcImg = new proxmoxve.download.File("latestUbuntu22JammyLxcImg", { * contentType: "vztmpl", * datastoreId: "local", * nodeName: "pve", * url: "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.tar.gz", * }); * ``` */ class File extends pulumi.CustomResource { /** * Get an existing File resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name, id, state, opts) { return new File(name, state, Object.assign(Object.assign({}, opts), { id: id })); } /** * Returns true if the given object is an instance of File. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj) { if (obj === undefined || obj === null) { return false; } return obj['__pulumiType'] === File.__pulumiType; } constructor(name, argsOrState, opts) { let resourceInputs = {}; opts = opts || {}; if (opts.id) { const state = argsOrState; resourceInputs["checksum"] = state ? state.checksum : undefined; resourceInputs["checksumAlgorithm"] = state ? state.checksumAlgorithm : undefined; resourceInputs["contentType"] = state ? state.contentType : undefined; resourceInputs["datastoreId"] = state ? state.datastoreId : undefined; resourceInputs["decompressionAlgorithm"] = state ? state.decompressionAlgorithm : undefined; resourceInputs["fileName"] = state ? state.fileName : undefined; resourceInputs["nodeName"] = state ? state.nodeName : undefined; resourceInputs["overwrite"] = state ? state.overwrite : undefined; resourceInputs["overwriteUnmanaged"] = state ? state.overwriteUnmanaged : undefined; resourceInputs["size"] = state ? state.size : undefined; resourceInputs["uploadTimeout"] = state ? state.uploadTimeout : undefined; resourceInputs["url"] = state ? state.url : undefined; resourceInputs["verify"] = state ? state.verify : undefined; } else { const args = argsOrState; if ((!args || args.contentType === undefined) && !opts.urn) { throw new Error("Missing required property 'contentType'"); } if ((!args || args.datastoreId === undefined) && !opts.urn) { throw new Error("Missing required property 'datastoreId'"); } if ((!args || args.nodeName === undefined) && !opts.urn) { throw new Error("Missing required property 'nodeName'"); } if ((!args || args.url === undefined) && !opts.urn) { throw new Error("Missing required property 'url'"); } resourceInputs["checksum"] = args ? args.checksum : undefined; resourceInputs["checksumAlgorithm"] = args ? args.checksumAlgorithm : undefined; resourceInputs["contentType"] = args ? args.contentType : undefined; resourceInputs["datastoreId"] = args ? args.datastoreId : undefined; resourceInputs["decompressionAlgorithm"] = args ? args.decompressionAlgorithm : undefined; resourceInputs["fileName"] = args ? args.fileName : undefined; resourceInputs["nodeName"] = args ? args.nodeName : undefined; resourceInputs["overwrite"] = args ? args.overwrite : undefined; resourceInputs["overwriteUnmanaged"] = args ? args.overwriteUnmanaged : undefined; resourceInputs["uploadTimeout"] = args ? args.uploadTimeout : undefined; resourceInputs["url"] = args ? args.url : undefined; resourceInputs["verify"] = args ? args.verify : undefined; resourceInputs["size"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(File.__pulumiType, name, resourceInputs, opts); } } exports.File = File; /** @internal */ File.__pulumiType = 'proxmoxve:Download/file:File'; //# sourceMappingURL=file.js.map