@muhlba91/pulumi-proxmoxve
Version:
A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources.
436 lines (435 loc) • 15.7 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Manages a container.
*
* ## Import
*
* Instances can be imported using the `node_name` and the `vm_id`, e.g.,
*
* bash
*
* ```sh
* $ pulumi import proxmoxve:CT/container:Container ubuntu_container first-node/1234
* ```
*/
export declare class Container extends pulumi.CustomResource {
/**
* Get an existing Container 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: string, id: pulumi.Input<pulumi.ID>, state?: ContainerState, opts?: pulumi.CustomResourceOptions): Container;
/**
* Returns true if the given object is an instance of Container. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is Container;
/**
* The cloning configuration.
*/
readonly clone: pulumi.Output<outputs.CT.ContainerClone | undefined>;
/**
* The console configuration.
*/
readonly console: pulumi.Output<outputs.CT.ContainerConsole | undefined>;
/**
* The CPU configuration.
*/
readonly cpu: pulumi.Output<outputs.CT.ContainerCpu | undefined>;
/**
* The description.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* Device to pass through to the container (multiple blocks supported).
*/
readonly devicePassthroughs: pulumi.Output<outputs.CT.ContainerDevicePassthrough[] | undefined>;
/**
* The disk configuration.
*/
readonly disk: pulumi.Output<outputs.CT.ContainerDisk | undefined>;
/**
* The container feature flags. Changing flags (except nesting) is only allowed for `root@pam` authenticated user.
*/
readonly features: pulumi.Output<outputs.CT.ContainerFeatures | undefined>;
/**
* The identifier for a file containing a hook script (needs to be executable, e.g. by using the `proxmox_virtual_environment_file.file_mode` attribute).
*/
readonly hookScriptFileId: pulumi.Output<string | undefined>;
/**
* The initialization configuration.
*/
readonly initialization: pulumi.Output<outputs.CT.ContainerInitialization | undefined>;
/**
* The map of IPv4 addresses per network devices. Returns the first address for each network device, if multiple addresses are assigned.
*/
readonly ipv4: pulumi.Output<{
[key: string]: string;
}>;
/**
* The map of IPv6 addresses per network device. Returns the first address for each network device, if multiple addresses are assigned.
*/
readonly ipv6: pulumi.Output<{
[key: string]: string;
}>;
/**
* The memory configuration.
*/
readonly memory: pulumi.Output<outputs.CT.ContainerMemory | undefined>;
/**
* A mount point
*/
readonly mountPoints: pulumi.Output<outputs.CT.ContainerMountPoint[] | undefined>;
/**
* A network interface (multiple blocks
* supported).
*/
readonly networkInterfaces: pulumi.Output<outputs.CT.ContainerNetworkInterface[] | undefined>;
/**
* The name of the node to assign the container to.
*/
readonly nodeName: pulumi.Output<string>;
/**
* The Operating System configuration.
*/
readonly operatingSystem: pulumi.Output<outputs.CT.ContainerOperatingSystem | undefined>;
/**
* The identifier for a pool to assign the container to.
*/
readonly poolId: pulumi.Output<string | undefined>;
/**
* Whether to set the protection flag of the container (defaults to `false`). This will prevent the container itself and its disk for remove/update operations.
*/
readonly protection: pulumi.Output<boolean | undefined>;
/**
* Automatically start container when the host
* system boots (defaults to `true`).
*/
readonly startOnBoot: pulumi.Output<boolean | undefined>;
/**
* Whether to start the container (defaults to `true`).
*/
readonly started: pulumi.Output<boolean | undefined>;
/**
* Defines startup and shutdown behavior of the container.
*/
readonly startup: pulumi.Output<outputs.CT.ContainerStartup | undefined>;
/**
* A list of tags the container tags. This is only meta
* information (defaults to `[]`). Note: Proxmox always sorts the container tags and set them to lowercase.
* If tag contains capital letters, then Proxmox will always report a
* difference on the resource. You may use the `ignoreChanges` lifecycle
* meta-argument to ignore changes to this attribute.
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* Whether to create a template (defaults to `false`).
*/
readonly template: pulumi.Output<boolean | undefined>;
/**
* Timeout for cloning a container in seconds (defaults to 1800).
*/
readonly timeoutClone: pulumi.Output<number | undefined>;
/**
* Timeout for creating a container in seconds (defaults to 1800).
*/
readonly timeoutCreate: pulumi.Output<number | undefined>;
/**
* Timeout for deleting a container in seconds (defaults to 60).
*/
readonly timeoutDelete: pulumi.Output<number | undefined>;
/**
* Start container timeout
*
* @deprecated This field is deprecated and will be removed in a future release. An overall operation timeout (`timeoutCreate` / `timeoutClone`) is used instead.
*/
readonly timeoutStart: pulumi.Output<number | undefined>;
/**
* Timeout for updating a container in seconds (defaults to 1800).
*/
readonly timeoutUpdate: pulumi.Output<number | undefined>;
/**
* Whether the container runs as unprivileged on the host (defaults to `false`).
*/
readonly unprivileged: pulumi.Output<boolean | undefined>;
/**
* The container identifier
*/
readonly vmId: pulumi.Output<number>;
/**
* Create a Container resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: ContainerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Container resources.
*/
export interface ContainerState {
/**
* The cloning configuration.
*/
clone?: pulumi.Input<inputs.CT.ContainerClone>;
/**
* The console configuration.
*/
console?: pulumi.Input<inputs.CT.ContainerConsole>;
/**
* The CPU configuration.
*/
cpu?: pulumi.Input<inputs.CT.ContainerCpu>;
/**
* The description.
*/
description?: pulumi.Input<string>;
/**
* Device to pass through to the container (multiple blocks supported).
*/
devicePassthroughs?: pulumi.Input<pulumi.Input<inputs.CT.ContainerDevicePassthrough>[]>;
/**
* The disk configuration.
*/
disk?: pulumi.Input<inputs.CT.ContainerDisk>;
/**
* The container feature flags. Changing flags (except nesting) is only allowed for `root@pam` authenticated user.
*/
features?: pulumi.Input<inputs.CT.ContainerFeatures>;
/**
* The identifier for a file containing a hook script (needs to be executable, e.g. by using the `proxmox_virtual_environment_file.file_mode` attribute).
*/
hookScriptFileId?: pulumi.Input<string>;
/**
* The initialization configuration.
*/
initialization?: pulumi.Input<inputs.CT.ContainerInitialization>;
/**
* The map of IPv4 addresses per network devices. Returns the first address for each network device, if multiple addresses are assigned.
*/
ipv4?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The map of IPv6 addresses per network device. Returns the first address for each network device, if multiple addresses are assigned.
*/
ipv6?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The memory configuration.
*/
memory?: pulumi.Input<inputs.CT.ContainerMemory>;
/**
* A mount point
*/
mountPoints?: pulumi.Input<pulumi.Input<inputs.CT.ContainerMountPoint>[]>;
/**
* A network interface (multiple blocks
* supported).
*/
networkInterfaces?: pulumi.Input<pulumi.Input<inputs.CT.ContainerNetworkInterface>[]>;
/**
* The name of the node to assign the container to.
*/
nodeName?: pulumi.Input<string>;
/**
* The Operating System configuration.
*/
operatingSystem?: pulumi.Input<inputs.CT.ContainerOperatingSystem>;
/**
* The identifier for a pool to assign the container to.
*/
poolId?: pulumi.Input<string>;
/**
* Whether to set the protection flag of the container (defaults to `false`). This will prevent the container itself and its disk for remove/update operations.
*/
protection?: pulumi.Input<boolean>;
/**
* Automatically start container when the host
* system boots (defaults to `true`).
*/
startOnBoot?: pulumi.Input<boolean>;
/**
* Whether to start the container (defaults to `true`).
*/
started?: pulumi.Input<boolean>;
/**
* Defines startup and shutdown behavior of the container.
*/
startup?: pulumi.Input<inputs.CT.ContainerStartup>;
/**
* A list of tags the container tags. This is only meta
* information (defaults to `[]`). Note: Proxmox always sorts the container tags and set them to lowercase.
* If tag contains capital letters, then Proxmox will always report a
* difference on the resource. You may use the `ignoreChanges` lifecycle
* meta-argument to ignore changes to this attribute.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Whether to create a template (defaults to `false`).
*/
template?: pulumi.Input<boolean>;
/**
* Timeout for cloning a container in seconds (defaults to 1800).
*/
timeoutClone?: pulumi.Input<number>;
/**
* Timeout for creating a container in seconds (defaults to 1800).
*/
timeoutCreate?: pulumi.Input<number>;
/**
* Timeout for deleting a container in seconds (defaults to 60).
*/
timeoutDelete?: pulumi.Input<number>;
/**
* Start container timeout
*
* @deprecated This field is deprecated and will be removed in a future release. An overall operation timeout (`timeoutCreate` / `timeoutClone`) is used instead.
*/
timeoutStart?: pulumi.Input<number>;
/**
* Timeout for updating a container in seconds (defaults to 1800).
*/
timeoutUpdate?: pulumi.Input<number>;
/**
* Whether the container runs as unprivileged on the host (defaults to `false`).
*/
unprivileged?: pulumi.Input<boolean>;
/**
* The container identifier
*/
vmId?: pulumi.Input<number>;
}
/**
* The set of arguments for constructing a Container resource.
*/
export interface ContainerArgs {
/**
* The cloning configuration.
*/
clone?: pulumi.Input<inputs.CT.ContainerClone>;
/**
* The console configuration.
*/
console?: pulumi.Input<inputs.CT.ContainerConsole>;
/**
* The CPU configuration.
*/
cpu?: pulumi.Input<inputs.CT.ContainerCpu>;
/**
* The description.
*/
description?: pulumi.Input<string>;
/**
* Device to pass through to the container (multiple blocks supported).
*/
devicePassthroughs?: pulumi.Input<pulumi.Input<inputs.CT.ContainerDevicePassthrough>[]>;
/**
* The disk configuration.
*/
disk?: pulumi.Input<inputs.CT.ContainerDisk>;
/**
* The container feature flags. Changing flags (except nesting) is only allowed for `root@pam` authenticated user.
*/
features?: pulumi.Input<inputs.CT.ContainerFeatures>;
/**
* The identifier for a file containing a hook script (needs to be executable, e.g. by using the `proxmox_virtual_environment_file.file_mode` attribute).
*/
hookScriptFileId?: pulumi.Input<string>;
/**
* The initialization configuration.
*/
initialization?: pulumi.Input<inputs.CT.ContainerInitialization>;
/**
* The memory configuration.
*/
memory?: pulumi.Input<inputs.CT.ContainerMemory>;
/**
* A mount point
*/
mountPoints?: pulumi.Input<pulumi.Input<inputs.CT.ContainerMountPoint>[]>;
/**
* A network interface (multiple blocks
* supported).
*/
networkInterfaces?: pulumi.Input<pulumi.Input<inputs.CT.ContainerNetworkInterface>[]>;
/**
* The name of the node to assign the container to.
*/
nodeName: pulumi.Input<string>;
/**
* The Operating System configuration.
*/
operatingSystem?: pulumi.Input<inputs.CT.ContainerOperatingSystem>;
/**
* The identifier for a pool to assign the container to.
*/
poolId?: pulumi.Input<string>;
/**
* Whether to set the protection flag of the container (defaults to `false`). This will prevent the container itself and its disk for remove/update operations.
*/
protection?: pulumi.Input<boolean>;
/**
* Automatically start container when the host
* system boots (defaults to `true`).
*/
startOnBoot?: pulumi.Input<boolean>;
/**
* Whether to start the container (defaults to `true`).
*/
started?: pulumi.Input<boolean>;
/**
* Defines startup and shutdown behavior of the container.
*/
startup?: pulumi.Input<inputs.CT.ContainerStartup>;
/**
* A list of tags the container tags. This is only meta
* information (defaults to `[]`). Note: Proxmox always sorts the container tags and set them to lowercase.
* If tag contains capital letters, then Proxmox will always report a
* difference on the resource. You may use the `ignoreChanges` lifecycle
* meta-argument to ignore changes to this attribute.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Whether to create a template (defaults to `false`).
*/
template?: pulumi.Input<boolean>;
/**
* Timeout for cloning a container in seconds (defaults to 1800).
*/
timeoutClone?: pulumi.Input<number>;
/**
* Timeout for creating a container in seconds (defaults to 1800).
*/
timeoutCreate?: pulumi.Input<number>;
/**
* Timeout for deleting a container in seconds (defaults to 60).
*/
timeoutDelete?: pulumi.Input<number>;
/**
* Start container timeout
*
* @deprecated This field is deprecated and will be removed in a future release. An overall operation timeout (`timeoutCreate` / `timeoutClone`) is used instead.
*/
timeoutStart?: pulumi.Input<number>;
/**
* Timeout for updating a container in seconds (defaults to 1800).
*/
timeoutUpdate?: pulumi.Input<number>;
/**
* Whether the container runs as unprivileged on the host (defaults to `false`).
*/
unprivileged?: pulumi.Input<boolean>;
/**
* The container identifier
*/
vmId?: pulumi.Input<number>;
}