import * as pulumi from "@pulumi/pulumi"; import * as outputs from "./types/output"; /** * Retrieves a list of files available in a datastore on a specific Proxmox VE node. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve"; * import * as std from "@pulumi/std"; * * export = async () => { * const isoFiles = await proxmoxve.getFiles({ * nodeName: "pve", * datastoreId: "local", * contentType: "iso", * }); * const imageExists = (await std.anytrue({ * input: .map(f => (f.fileName == "noble-server-cloudimg-amd64.img")), * })).result; * // Only download if the image doesn't already exist * const ubuntuNoble: proxmoxve.download.FileLegacy[] = []; * for (const range = {value: 0}; range.value < (imageExists ? 0 : 1); range.value++) { * ubuntuNoble.push(new proxmoxve.download.FileLegacy(`ubuntu_noble-${range.value}`, { * datastoreId: "local", * nodeName: "pve", * contentType: "iso", * url: "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img", * })); * } * // List all files without filtering * const allFiles = await proxmoxve.getFiles({ * nodeName: "pve", * datastoreId: "local", * }); * return { * isoFileCount: isoFiles.files.length, * allFileNames: .map(f => (f.fileName)), * }; * } * ``` */ export declare function getFiles(args: GetFilesArgs, opts?: pulumi.InvokeOptions): Promise; /** * A collection of arguments for invoking getFiles. */ export interface GetFilesArgs { /** * The content type to filter by. When set, only files of this type are returned. Valid values are `backup`, `images`, `import`, `iso`, `rootdir`, `snippets`, `vztmpl`. */ contentType?: string; /** * The identifier of the datastore. */ datastoreId: string; /** * A regular expression to filter files by name. When set, only files whose name matches the expression are returned. */ fileNameRegex?: string; /** * The name of the node. */ nodeName: string; } /** * A collection of values returned by getFiles. */ export interface GetFilesResult { /** * The content type to filter by. When set, only files of this type are returned. Valid values are `backup`, `images`, `import`, `iso`, `rootdir`, `snippets`, `vztmpl`. */ readonly contentType?: string; /** * The identifier of the datastore. */ readonly datastoreId: string; /** * A regular expression to filter files by name. When set, only files whose name matches the expression are returned. */ readonly fileNameRegex?: string; /** * The list of files in the datastore. */ readonly files: outputs.GetFilesFile[]; /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; /** * The name of the node. */ readonly nodeName: string; } /** * Retrieves a list of files available in a datastore on a specific Proxmox VE node. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve"; * import * as std from "@pulumi/std"; * * export = async () => { * const isoFiles = await proxmoxve.getFiles({ * nodeName: "pve", * datastoreId: "local", * contentType: "iso", * }); * const imageExists = (await std.anytrue({ * input: .map(f => (f.fileName == "noble-server-cloudimg-amd64.img")), * })).result; * // Only download if the image doesn't already exist * const ubuntuNoble: proxmoxve.download.FileLegacy[] = []; * for (const range = {value: 0}; range.value < (imageExists ? 0 : 1); range.value++) { * ubuntuNoble.push(new proxmoxve.download.FileLegacy(`ubuntu_noble-${range.value}`, { * datastoreId: "local", * nodeName: "pve", * contentType: "iso", * url: "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img", * })); * } * // List all files without filtering * const allFiles = await proxmoxve.getFiles({ * nodeName: "pve", * datastoreId: "local", * }); * return { * isoFileCount: isoFiles.files.length, * allFileNames: .map(f => (f.fileName)), * }; * } * ``` */ export declare function getFilesOutput(args: GetFilesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; /** * A collection of arguments for invoking getFiles. */ export interface GetFilesOutputArgs { /** * The content type to filter by. When set, only files of this type are returned. Valid values are `backup`, `images`, `import`, `iso`, `rootdir`, `snippets`, `vztmpl`. */ contentType?: pulumi.Input; /** * The identifier of the datastore. */ datastoreId: pulumi.Input; /** * A regular expression to filter files by name. When set, only files whose name matches the expression are returned. */ fileNameRegex?: pulumi.Input; /** * The name of the node. */ nodeName: pulumi.Input; } //# sourceMappingURL=getFiles.d.ts.map