build nodejs

This commit is contained in:
2025-04-24 21:09:04 -04:00
parent b9ca51af01
commit b348133412
40 changed files with 6093 additions and 74 deletions

13
sdk/nodejs/types/index.ts generated Normal file
View File

@@ -0,0 +1,13 @@
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as utilities from "../utilities";
// Export sub-modules:
import * as input from "./input";
import * as output from "./output";
export {
input,
output,
};

426
sdk/nodejs/types/input.ts generated Normal file
View File

@@ -0,0 +1,426 @@
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
export interface GetProfileDevice {
/**
* **Required** - Name of the profile.
*/
name?: string;
/**
* Map of key/value pairs of
* [device properties](https://linuxcontainers.org/incus/docs/main/reference/devices/).
*/
properties?: {[key: string]: string};
/**
* Type of the device Must be one of none, disk, nic,
* unix-char, unix-block, usb, gpu, infiniband, proxy, unix-hotplug, tpm, pci.
*/
type?: string;
}
export interface GetProfileDeviceArgs {
/**
* **Required** - Name of the profile.
*/
name?: pulumi.Input<string>;
/**
* Map of key/value pairs of
* [device properties](https://linuxcontainers.org/incus/docs/main/reference/devices/).
*/
properties?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
/**
* Type of the device Must be one of none, disk, nic,
* unix-char, unix-block, usb, gpu, infiniband, proxy, unix-hotplug, tpm, pci.
*/
type?: pulumi.Input<string>;
}
export interface ImageSourceFile {
/**
* **Required** - Either the path of an [unified image](https://linuxcontainers.org/incus/docs/main/reference/image_format/#image-format-unified)
* or the rootfs tarball of a [split image](https://linuxcontainers.org/incus/docs/main/reference/image_format/#image-format-split), depending on
* `metadataPath` being provided or not.
*/
dataPath: pulumi.Input<string>;
/**
* *Optional* - Path to the metadata tarball of a [split image](https://linuxcontainers.org/incus/docs/main/reference/image_format/#image-format-split).
*/
metadataPath?: pulumi.Input<string>;
}
export interface ImageSourceImage {
/**
* *Optional* - The image architecture (e.g. x86_64, aarch64). See [Architectures](https://linuxcontainers.org/incus/docs/main/architectures/) for all possible values.
*/
architecture?: pulumi.Input<string>;
/**
* *Optional* - Whether to copy the aliases of the image from
* the remote. Valid values are `true` and `false`.
*/
copyAliases?: pulumi.Input<boolean>;
/**
* **Required** - Name of the image.
*/
name: pulumi.Input<string>;
/**
* **Required** - The remote where the image will be pulled from.
*/
remote: pulumi.Input<string>;
/**
* *Optional* - Type of image to cache. Must be one of `container` or
* `virtual-machine`. Defaults to `container`.
*/
type?: pulumi.Input<string>;
}
export interface ImageSourceInstance {
/**
* **Required** - Name of the source instance.
*/
name: pulumi.Input<string>;
/**
* *Optional* - Name of the snapshot of the source instance
*/
snapshot?: pulumi.Input<string>;
}
export interface InstanceDevice {
/**
* **Required** - Name of the device.
*/
name: pulumi.Input<string>;
/**
* **Required** - Map of key/value pairs of
* [device properties](https://linuxcontainers.org/incus/docs/main/reference/devices/).
*/
properties: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
/**
* **Required** - Type of the device Must be one of none, disk, nic,
* unix-char, unix-block, usb, gpu, infiniband, proxy, unix-hotplug, tpm, pci.
*/
type: pulumi.Input<string>;
}
export interface InstanceFile {
append?: pulumi.Input<boolean>;
/**
* **Required** unless sourcePath is used* - The *contents* of the file.
* Use the `file()` function to read in the content of a file from disk.
*/
content?: pulumi.Input<string>;
/**
* *Optional* - Whether to create the directories leading
* to the target if they do not exist.
*/
createDirectories?: pulumi.Input<boolean>;
/**
* *Optional* - The GID of the file. Must be an unquoted integer.
*/
gid?: pulumi.Input<number>;
/**
* *Optional* - The octal permissions of the file, must be quoted. Defaults to `0755`.
*/
mode?: pulumi.Input<string>;
/**
* **Required** unless content is used* - The source path to a file to
* copy to the instance.
*/
sourcePath?: pulumi.Input<string>;
/**
* **Required** - The absolute path of the file on the instance,
* including the filename.
*/
targetPath: pulumi.Input<string>;
/**
* *Optional* - The UID of the file. Must be an unquoted integer.
*/
uid?: pulumi.Input<number>;
}
export interface InstanceSourceInstance {
/**
* **Required** - Name of the source instance.
*/
name: pulumi.Input<string>;
/**
* **Required** - Name of the project in which the source instance exists.
*/
project: pulumi.Input<string>;
/**
* *Optional* - Name of the snapshot of the source instance
*/
snapshot?: pulumi.Input<string>;
}
export interface InstanceWaitFor {
/**
* *Optional* - Delay time that should be waited for when type is `delay`, e.g. `30s`.
*/
delay?: pulumi.Input<string>;
/**
* *Optional* - Network interface that should be waited for when type is `ipv4` or `ipv6`.
*/
nic?: pulumi.Input<string>;
/**
* **Required** - Type for what should be waited for. Can be `agent`, `delay`, `ipv4`, `ipv6` or `ready`.
*/
type: pulumi.Input<string>;
}
export interface NetworkAclEgress {
/**
* **Required** - Action to take for matching traffic , must be one of allow, allow-stateless, drop, reject
*/
action: pulumi.Input<string>;
/**
* *Optional* - Description of the network ACL rule.
*/
description?: pulumi.Input<string>;
/**
* *Optional* - Comma-separated list of CIDR or IP ranges, destination subject name selectors (for egress rules), or empty for any
*/
destination?: pulumi.Input<string>;
/**
* *Optional* - If protocol is `udp` or tcp, then a comma-separated list of ports or port ranges (start-end inclusive), or empty for any
*/
destinationPort?: pulumi.Input<string>;
/**
* *Optional* - If protocol is `icmp4` or `icmp6`, then ICMP code number, or empty for any
*/
icmpCode?: pulumi.Input<string>;
/**
* *Optional* - If protocol is `icmp4` or `icmp6`, then ICMP type number, or empty for any
*/
icmpType?: pulumi.Input<string>;
/**
* *Optional* - If protocol is `udp` or `tcp`, then a comma-separated list of ports or port ranges (start-end inclusive), or empty for any
*/
protocol?: pulumi.Input<string>;
/**
* *Optional* - Comma-separated list of CIDR or IP ranges, source subject name selectors (for ingress rules), or empty for any
*/
source?: pulumi.Input<string>;
/**
* *Optional* - State of the rule (enabled, disabled or logged), defaulting to enabled if not specified
*/
state: pulumi.Input<string>;
}
export interface NetworkAclIngress {
/**
* **Required** - Action to take for matching traffic , must be one of allow, allow-stateless, drop, reject
*/
action: pulumi.Input<string>;
/**
* *Optional* - Description of the network ACL rule.
*/
description?: pulumi.Input<string>;
/**
* *Optional* - Comma-separated list of CIDR or IP ranges, destination subject name selectors (for egress rules), or empty for any
*/
destination?: pulumi.Input<string>;
/**
* *Optional* - If protocol is `udp` or tcp, then a comma-separated list of ports or port ranges (start-end inclusive), or empty for any
*/
destinationPort?: pulumi.Input<string>;
/**
* *Optional* - If protocol is `icmp4` or `icmp6`, then ICMP code number, or empty for any
*/
icmpCode?: pulumi.Input<string>;
/**
* *Optional* - If protocol is `icmp4` or `icmp6`, then ICMP type number, or empty for any
*/
icmpType?: pulumi.Input<string>;
/**
* *Optional* - If protocol is `udp` or `tcp`, then a comma-separated list of ports or port ranges (start-end inclusive), or empty for any
*/
protocol?: pulumi.Input<string>;
/**
* *Optional* - Comma-separated list of CIDR or IP ranges, source subject name selectors (for ingress rules), or empty for any
*/
source?: pulumi.Input<string>;
/**
* *Optional* - State of the rule (enabled, disabled or logged), defaulting to enabled if not specified
*/
state: pulumi.Input<string>;
}
export interface NetworkForwardPort {
/**
* *Optional* - Description of port(s)
*/
description?: pulumi.Input<string>;
/**
* **Required** - Listen port(s) (e.g. `80,90-100`)
*/
listenPort: pulumi.Input<string>;
/**
* **Required** - Protocol for the port(s) (`tcp` or `udp`). If not set then `tcp` will be used.
*/
protocol?: pulumi.Input<string>;
/**
* **Required** - IP address to forward to
*/
targetAddress: pulumi.Input<string>;
/**
* *Optional* - T arget port(s) (e.g. `70,80-90` or `90`), same as listenPort if empty
*/
targetPort: pulumi.Input<string>;
}
export interface NetworkLbBackend {
/**
* LB backend description
*/
description?: pulumi.Input<string>;
/**
* LB backend name
*/
name: pulumi.Input<string>;
/**
* LB backend target address
*/
targetAddress: pulumi.Input<string>;
/**
* LB backend target port
*/
targetPort?: pulumi.Input<string>;
}
export interface NetworkLbPort {
/**
* Port description
*/
description?: pulumi.Input<string>;
/**
* Port to listen to
*/
listenPort: pulumi.Input<string>;
/**
* Port protocol
*/
protocol?: pulumi.Input<string>;
/**
* List of target LB backends
*/
targetBackends: pulumi.Input<pulumi.Input<string>[]>;
}
export interface NetworkLoadBalancerBackend {
/**
* LB backend description
*/
description?: pulumi.Input<string>;
/**
* LB backend name
*/
name: pulumi.Input<string>;
/**
* LB backend target address
*/
targetAddress: pulumi.Input<string>;
/**
* LB backend target port
*/
targetPort?: pulumi.Input<string>;
}
export interface NetworkLoadBalancerPort {
/**
* Port description
*/
description?: pulumi.Input<string>;
/**
* Port to listen to
*/
listenPort: pulumi.Input<string>;
/**
* Port protocol
*/
protocol?: pulumi.Input<string>;
/**
* List of target LB backends
*/
targetBackends: pulumi.Input<pulumi.Input<string>[]>;
}
export interface NetworkZoneRecordEntry {
/**
* *Optional* - Entry time to live (TTL).
*/
ttl?: pulumi.Input<number>;
/**
* **Required** - Entry type. Valid values are DNS record type, e.g. `A`, `AAAA`, `CNAME`, `TXT`, etc.
*/
type: pulumi.Input<string>;
/**
* **Required** - Entry value.
*/
value: pulumi.Input<string>;
}
export interface ProfileDevice {
/**
* **Required** - Name of the device.
*/
name: pulumi.Input<string>;
/**
* **Required** - Map of key/value pairs of
* [device properties](https://linuxcontainers.org/incus/docs/main/reference/devices/).
*/
properties: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
/**
* **Required** - Type of the device Must be one of none, disk, nic,
* unix-char, unix-block, usb, gpu, infiniband, proxy, unix-hotplug, tpm, pci.
*/
type: pulumi.Input<string>;
}
export interface ProviderRemote {
/**
* The FQDN or IP where the Incus daemon can be contacted. (default = "" (read from lxc config))
*/
address?: pulumi.Input<string>;
/**
* Set this remote as default.
*/
default?: pulumi.Input<boolean>;
/**
* Name of the Incus remote. Required when incusScheme set to https, to enable locating server certificate.
*/
name: pulumi.Input<string>;
/**
* Port Incus Daemon API is listening on. (default = 8443)
*/
port?: pulumi.Input<string>;
/**
* Unix (unix) or HTTPs (https). (default = unix)
*/
scheme?: pulumi.Input<string>;
/**
* The trust token for the remote.
*/
token?: pulumi.Input<string>;
}
export interface StorageVolumeSourceVolume {
/**
* **Required** - Name of the storage volume.
*/
name: pulumi.Input<string>;
/**
* **Required** - The storage pool that will receive the copy of the volume copy.
*/
pool: pulumi.Input<string>;
/**
* *Optional* - The remote in which the resource will be created. If
* not provided, the provider's default remote will be used.
*/
remote?: pulumi.Input<string>;
}
export namespace config {
}

410
sdk/nodejs/types/output.ts generated Normal file
View File

@@ -0,0 +1,410 @@
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
export interface GetProfileDevice {
/**
* **Required** - Name of the profile.
*/
name: string;
/**
* Map of key/value pairs of
* [device properties](https://linuxcontainers.org/incus/docs/main/reference/devices/).
*/
properties: {[key: string]: string};
/**
* Type of the device Must be one of none, disk, nic,
* unix-char, unix-block, usb, gpu, infiniband, proxy, unix-hotplug, tpm, pci.
*/
type: string;
}
export interface ImageSourceFile {
/**
* **Required** - Either the path of an [unified image](https://linuxcontainers.org/incus/docs/main/reference/image_format/#image-format-unified)
* or the rootfs tarball of a [split image](https://linuxcontainers.org/incus/docs/main/reference/image_format/#image-format-split), depending on
* `metadataPath` being provided or not.
*/
dataPath: string;
/**
* *Optional* - Path to the metadata tarball of a [split image](https://linuxcontainers.org/incus/docs/main/reference/image_format/#image-format-split).
*/
metadataPath?: string;
}
export interface ImageSourceImage {
/**
* *Optional* - The image architecture (e.g. x86_64, aarch64). See [Architectures](https://linuxcontainers.org/incus/docs/main/architectures/) for all possible values.
*/
architecture: string;
/**
* *Optional* - Whether to copy the aliases of the image from
* the remote. Valid values are `true` and `false`.
*/
copyAliases?: boolean;
/**
* **Required** - Name of the image.
*/
name: string;
/**
* **Required** - The remote where the image will be pulled from.
*/
remote: string;
/**
* *Optional* - Type of image to cache. Must be one of `container` or
* `virtual-machine`. Defaults to `container`.
*/
type: string;
}
export interface ImageSourceInstance {
/**
* **Required** - Name of the source instance.
*/
name: string;
/**
* *Optional* - Name of the snapshot of the source instance
*/
snapshot?: string;
}
export interface InstanceDevice {
/**
* **Required** - Name of the device.
*/
name: string;
/**
* **Required** - Map of key/value pairs of
* [device properties](https://linuxcontainers.org/incus/docs/main/reference/devices/).
*/
properties: {[key: string]: string};
/**
* **Required** - Type of the device Must be one of none, disk, nic,
* unix-char, unix-block, usb, gpu, infiniband, proxy, unix-hotplug, tpm, pci.
*/
type: string;
}
export interface InstanceFile {
append: boolean;
/**
* **Required** unless sourcePath is used* - The *contents* of the file.
* Use the `file()` function to read in the content of a file from disk.
*/
content?: string;
/**
* *Optional* - Whether to create the directories leading
* to the target if they do not exist.
*/
createDirectories?: boolean;
/**
* *Optional* - The GID of the file. Must be an unquoted integer.
*/
gid?: number;
/**
* *Optional* - The octal permissions of the file, must be quoted. Defaults to `0755`.
*/
mode: string;
/**
* **Required** unless content is used* - The source path to a file to
* copy to the instance.
*/
sourcePath?: string;
/**
* **Required** - The absolute path of the file on the instance,
* including the filename.
*/
targetPath: string;
/**
* *Optional* - The UID of the file. Must be an unquoted integer.
*/
uid?: number;
}
export interface InstanceSourceInstance {
/**
* **Required** - Name of the source instance.
*/
name: string;
/**
* **Required** - Name of the project in which the source instance exists.
*/
project: string;
/**
* *Optional* - Name of the snapshot of the source instance
*/
snapshot?: string;
}
export interface InstanceWaitFor {
/**
* *Optional* - Delay time that should be waited for when type is `delay`, e.g. `30s`.
*/
delay?: string;
/**
* *Optional* - Network interface that should be waited for when type is `ipv4` or `ipv6`.
*/
nic?: string;
/**
* **Required** - Type for what should be waited for. Can be `agent`, `delay`, `ipv4`, `ipv6` or `ready`.
*/
type: string;
}
export interface NetworkAclEgress {
/**
* **Required** - Action to take for matching traffic , must be one of allow, allow-stateless, drop, reject
*/
action: string;
/**
* *Optional* - Description of the network ACL rule.
*/
description: string;
/**
* *Optional* - Comma-separated list of CIDR or IP ranges, destination subject name selectors (for egress rules), or empty for any
*/
destination: string;
/**
* *Optional* - If protocol is `udp` or tcp, then a comma-separated list of ports or port ranges (start-end inclusive), or empty for any
*/
destinationPort: string;
/**
* *Optional* - If protocol is `icmp4` or `icmp6`, then ICMP code number, or empty for any
*/
icmpCode: string;
/**
* *Optional* - If protocol is `icmp4` or `icmp6`, then ICMP type number, or empty for any
*/
icmpType: string;
/**
* *Optional* - If protocol is `udp` or `tcp`, then a comma-separated list of ports or port ranges (start-end inclusive), or empty for any
*/
protocol: string;
/**
* *Optional* - Comma-separated list of CIDR or IP ranges, source subject name selectors (for ingress rules), or empty for any
*/
source: string;
/**
* *Optional* - State of the rule (enabled, disabled or logged), defaulting to enabled if not specified
*/
state: string;
}
export interface NetworkAclIngress {
/**
* **Required** - Action to take for matching traffic , must be one of allow, allow-stateless, drop, reject
*/
action: string;
/**
* *Optional* - Description of the network ACL rule.
*/
description: string;
/**
* *Optional* - Comma-separated list of CIDR or IP ranges, destination subject name selectors (for egress rules), or empty for any
*/
destination: string;
/**
* *Optional* - If protocol is `udp` or tcp, then a comma-separated list of ports or port ranges (start-end inclusive), or empty for any
*/
destinationPort: string;
/**
* *Optional* - If protocol is `icmp4` or `icmp6`, then ICMP code number, or empty for any
*/
icmpCode: string;
/**
* *Optional* - If protocol is `icmp4` or `icmp6`, then ICMP type number, or empty for any
*/
icmpType: string;
/**
* *Optional* - If protocol is `udp` or `tcp`, then a comma-separated list of ports or port ranges (start-end inclusive), or empty for any
*/
protocol: string;
/**
* *Optional* - Comma-separated list of CIDR or IP ranges, source subject name selectors (for ingress rules), or empty for any
*/
source: string;
/**
* *Optional* - State of the rule (enabled, disabled or logged), defaulting to enabled if not specified
*/
state: string;
}
export interface NetworkForwardPort {
/**
* *Optional* - Description of port(s)
*/
description?: string;
/**
* **Required** - Listen port(s) (e.g. `80,90-100`)
*/
listenPort: string;
/**
* **Required** - Protocol for the port(s) (`tcp` or `udp`). If not set then `tcp` will be used.
*/
protocol: string;
/**
* **Required** - IP address to forward to
*/
targetAddress: string;
/**
* *Optional* - T arget port(s) (e.g. `70,80-90` or `90`), same as listenPort if empty
*/
targetPort: string;
}
export interface NetworkLbBackend {
/**
* LB backend description
*/
description: string;
/**
* LB backend name
*/
name: string;
/**
* LB backend target address
*/
targetAddress: string;
/**
* LB backend target port
*/
targetPort: string;
}
export interface NetworkLbPort {
/**
* Port description
*/
description: string;
/**
* Port to listen to
*/
listenPort: string;
/**
* Port protocol
*/
protocol: string;
/**
* List of target LB backends
*/
targetBackends: string[];
}
export interface NetworkLoadBalancerBackend {
/**
* LB backend description
*/
description: string;
/**
* LB backend name
*/
name: string;
/**
* LB backend target address
*/
targetAddress: string;
/**
* LB backend target port
*/
targetPort: string;
}
export interface NetworkLoadBalancerPort {
/**
* Port description
*/
description: string;
/**
* Port to listen to
*/
listenPort: string;
/**
* Port protocol
*/
protocol: string;
/**
* List of target LB backends
*/
targetBackends: string[];
}
export interface NetworkZoneRecordEntry {
/**
* *Optional* - Entry time to live (TTL).
*/
ttl: number;
/**
* **Required** - Entry type. Valid values are DNS record type, e.g. `A`, `AAAA`, `CNAME`, `TXT`, etc.
*/
type: string;
/**
* **Required** - Entry value.
*/
value: string;
}
export interface ProfileDevice {
/**
* **Required** - Name of the device.
*/
name: string;
/**
* **Required** - Map of key/value pairs of
* [device properties](https://linuxcontainers.org/incus/docs/main/reference/devices/).
*/
properties: {[key: string]: string};
/**
* **Required** - Type of the device Must be one of none, disk, nic,
* unix-char, unix-block, usb, gpu, infiniband, proxy, unix-hotplug, tpm, pci.
*/
type: string;
}
export interface StorageVolumeSourceVolume {
/**
* **Required** - Name of the storage volume.
*/
name: string;
/**
* **Required** - The storage pool that will receive the copy of the volume copy.
*/
pool: string;
/**
* *Optional* - The remote in which the resource will be created. If
* not provided, the provider's default remote will be used.
*/
remote?: string;
}
export namespace config {
export interface Remotes {
/**
* The FQDN or IP where the Incus daemon can be contacted. (default = "" (read from lxc config))
*/
address?: string;
/**
* Set this remote as default.
*/
default?: boolean;
/**
* Name of the Incus remote. Required when incusScheme set to https, to enable locating server certificate.
*/
name: string;
/**
* Port Incus Daemon API is listening on. (default = 8443)
*/
port?: string;
/**
* Unix (unix) or HTTPs (https). (default = unix)
*/
scheme?: string;
/**
* The trust token for the remote.
*/
token?: string;
}
}