@ediri/vultr
Version:
A Pulumi package for creating and managing Vultr cloud resources.
440 lines (439 loc) • 16.4 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
/**
* Provides a Vultr bare metal server resource. This can be used to create, read, modify, and delete bare metal servers on your Vultr account.
*
* ## Example Usage
*
* Create a new bare metal server:
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as vultr from "@ediri/vultr";
*
* const myServer = new vultr.BareMetalServer("myServer", {
* osId: 1743,
* plan: "vbm-4c-32gb",
* region: "ewr",
* });
* ```
*
* Create a new bare metal server with options:
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as vultr from "@ediri/vultr";
*
* const myServer = new vultr.BareMetalServer("myServer", {
* activationEmail: false,
* enableIpv6: true,
* hostname: "my-server-hostname",
* label: "my-server-label",
* osId: 1743,
* plan: "vbm-4c-32gb",
* region: "ewr",
* tags: ["my-server-tag"],
* userData: "this is my user data",
* });
* ```
*
* ## Import
*
* Bare Metal Servers can be imported using the server `ID`, e.g.
*
* ```sh
* $ pulumi import vultr:index/bareMetalServer:BareMetalServer my_server b6a859c5-b299-49dd-8888-b1abbc517d08
* ```
*/
export declare class BareMetalServer extends pulumi.CustomResource {
/**
* Get an existing BareMetalServer 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?: BareMetalServerState, opts?: pulumi.CustomResourceOptions): BareMetalServer;
/**
* Returns true if the given object is an instance of BareMetalServer. 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 BareMetalServer;
/**
* Whether an activation email will be sent when the server is ready.
*/
readonly activationEmail: pulumi.Output<boolean | undefined>;
/**
* The ID of the Vultr application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications)
*/
readonly appId: pulumi.Output<number>;
/**
* A map of user-supplied variable keys and values for Vultr Marketplace apps. [See List Marketplace App Variables](https://www.vultr.com/api/#tag/marketplace/operation/list-marketplace-app-variables)
*/
readonly appVariables: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* The number of CPUs available on the server.
*/
readonly cpuCount: pulumi.Output<number>;
/**
* The date the server was added to your Vultr account.
*/
readonly dateCreated: pulumi.Output<string>;
/**
* The server's default password.
*/
readonly defaultPassword: pulumi.Output<string>;
/**
* The description of the disk(s) on the server.
*/
readonly disk: pulumi.Output<string>;
/**
* Whether the server has IPv6 networking activated.
*/
readonly enableIpv6: pulumi.Output<boolean | undefined>;
/**
* The server's IPv4 gateway.
*/
readonly gatewayV4: pulumi.Output<string>;
/**
* The hostname to assign to the server.
*/
readonly hostname: pulumi.Output<string | undefined>;
/**
* The ID of the Vultr marketplace application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications) Note marketplace applications are denoted by type: `marketplace` and you must use the `imageId` not the id.
*/
readonly imageId: pulumi.Output<string>;
/**
* A label for the server.
*/
readonly label: pulumi.Output<string | undefined>;
/**
* The MAC address associated with the server.
*/
readonly macAddress: pulumi.Output<number>;
/**
* The server's main IP address.
*/
readonly mainIp: pulumi.Output<string>;
readonly mdiskMode: pulumi.Output<string | undefined>;
/**
* The server's IPv4 netmask.
*/
readonly netmaskV4: pulumi.Output<string>;
/**
* The string description of the operating system installed on the server.
*/
readonly os: pulumi.Output<string>;
/**
* The ID of the operating system to be installed on the server. [See List OS](https://www.vultr.com/api/#operation/list-os)
*/
readonly osId: pulumi.Output<number>;
readonly persistentPxe: pulumi.Output<boolean | undefined>;
/**
* The ID of the plan that you want the server to subscribe to. [See List Plans](https://www.vultr.com/api/#tag/plans)
*/
readonly plan: pulumi.Output<string>;
/**
* The amount of memory available on the server in MB.
*/
readonly ram: pulumi.Output<string>;
/**
* The ID of the region that the server is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions)
*/
readonly region: pulumi.Output<string>;
/**
* The ID of the floating IP to use as the main IP of this server. [See Reserved IPs](https://www.vultr.com/api/#operation/list-reserved-ips)
*/
readonly reservedIpv4: pulumi.Output<string>;
/**
* The ID of the startup script you want added to the server.
*/
readonly scriptId: pulumi.Output<string | undefined>;
/**
* The ID of the Vultr snapshot that the server will restore for the initial installation. [See List Snapshots](https://www.vultr.com/api/#operation/list-snapshots)
*/
readonly snapshotId: pulumi.Output<string | undefined>;
/**
* A list of SSH key IDs to apply to the server on install (only valid for Linux/FreeBSD).
*/
readonly sshKeyIds: pulumi.Output<string[] | undefined>;
/**
* The status of the server's subscription.
*/
readonly status: pulumi.Output<string>;
/**
* A list of tags to apply to the servier.
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* Generic data store, which some provisioning tools and cloud operating systems use as a configuration file. It is generally consumed only once after an instance has been launched, but individual needs may vary.
*/
readonly userData: pulumi.Output<string>;
/**
* The scheme used for the default user. Possible values are `root` or `limited` (linux servers only).
*/
readonly userScheme: pulumi.Output<string | undefined>;
/**
* The main IPv6 network address.
*/
readonly v6MainIp: pulumi.Output<string>;
/**
* The IPv6 subnet.
*/
readonly v6Network: pulumi.Output<string>;
/**
* The IPv6 network size in bits.
*/
readonly v6NetworkSize: pulumi.Output<number>;
/**
* A list of VPC 2.0 IDs to be attached to the server.
*
* @deprecated VPC2 is deprecated and will be removed in a future release. Use VPC instead
*/
readonly vpc2Ids: pulumi.Output<string[] | undefined>;
/**
* The VPC ID to use when creating the server.
*/
readonly vpcId: pulumi.Output<string | undefined>;
/**
* Create a BareMetalServer 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: BareMetalServerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering BareMetalServer resources.
*/
export interface BareMetalServerState {
/**
* Whether an activation email will be sent when the server is ready.
*/
activationEmail?: pulumi.Input<boolean>;
/**
* The ID of the Vultr application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications)
*/
appId?: pulumi.Input<number>;
/**
* A map of user-supplied variable keys and values for Vultr Marketplace apps. [See List Marketplace App Variables](https://www.vultr.com/api/#tag/marketplace/operation/list-marketplace-app-variables)
*/
appVariables?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The number of CPUs available on the server.
*/
cpuCount?: pulumi.Input<number>;
/**
* The date the server was added to your Vultr account.
*/
dateCreated?: pulumi.Input<string>;
/**
* The server's default password.
*/
defaultPassword?: pulumi.Input<string>;
/**
* The description of the disk(s) on the server.
*/
disk?: pulumi.Input<string>;
/**
* Whether the server has IPv6 networking activated.
*/
enableIpv6?: pulumi.Input<boolean>;
/**
* The server's IPv4 gateway.
*/
gatewayV4?: pulumi.Input<string>;
/**
* The hostname to assign to the server.
*/
hostname?: pulumi.Input<string>;
/**
* The ID of the Vultr marketplace application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications) Note marketplace applications are denoted by type: `marketplace` and you must use the `imageId` not the id.
*/
imageId?: pulumi.Input<string>;
/**
* A label for the server.
*/
label?: pulumi.Input<string>;
/**
* The MAC address associated with the server.
*/
macAddress?: pulumi.Input<number>;
/**
* The server's main IP address.
*/
mainIp?: pulumi.Input<string>;
mdiskMode?: pulumi.Input<string>;
/**
* The server's IPv4 netmask.
*/
netmaskV4?: pulumi.Input<string>;
/**
* The string description of the operating system installed on the server.
*/
os?: pulumi.Input<string>;
/**
* The ID of the operating system to be installed on the server. [See List OS](https://www.vultr.com/api/#operation/list-os)
*/
osId?: pulumi.Input<number>;
persistentPxe?: pulumi.Input<boolean>;
/**
* The ID of the plan that you want the server to subscribe to. [See List Plans](https://www.vultr.com/api/#tag/plans)
*/
plan?: pulumi.Input<string>;
/**
* The amount of memory available on the server in MB.
*/
ram?: pulumi.Input<string>;
/**
* The ID of the region that the server is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions)
*/
region?: pulumi.Input<string>;
/**
* The ID of the floating IP to use as the main IP of this server. [See Reserved IPs](https://www.vultr.com/api/#operation/list-reserved-ips)
*/
reservedIpv4?: pulumi.Input<string>;
/**
* The ID of the startup script you want added to the server.
*/
scriptId?: pulumi.Input<string>;
/**
* The ID of the Vultr snapshot that the server will restore for the initial installation. [See List Snapshots](https://www.vultr.com/api/#operation/list-snapshots)
*/
snapshotId?: pulumi.Input<string>;
/**
* A list of SSH key IDs to apply to the server on install (only valid for Linux/FreeBSD).
*/
sshKeyIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The status of the server's subscription.
*/
status?: pulumi.Input<string>;
/**
* A list of tags to apply to the servier.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Generic data store, which some provisioning tools and cloud operating systems use as a configuration file. It is generally consumed only once after an instance has been launched, but individual needs may vary.
*/
userData?: pulumi.Input<string>;
/**
* The scheme used for the default user. Possible values are `root` or `limited` (linux servers only).
*/
userScheme?: pulumi.Input<string>;
/**
* The main IPv6 network address.
*/
v6MainIp?: pulumi.Input<string>;
/**
* The IPv6 subnet.
*/
v6Network?: pulumi.Input<string>;
/**
* The IPv6 network size in bits.
*/
v6NetworkSize?: pulumi.Input<number>;
/**
* A list of VPC 2.0 IDs to be attached to the server.
*
* @deprecated VPC2 is deprecated and will be removed in a future release. Use VPC instead
*/
vpc2Ids?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The VPC ID to use when creating the server.
*/
vpcId?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a BareMetalServer resource.
*/
export interface BareMetalServerArgs {
/**
* Whether an activation email will be sent when the server is ready.
*/
activationEmail?: pulumi.Input<boolean>;
/**
* The ID of the Vultr application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications)
*/
appId?: pulumi.Input<number>;
/**
* A map of user-supplied variable keys and values for Vultr Marketplace apps. [See List Marketplace App Variables](https://www.vultr.com/api/#tag/marketplace/operation/list-marketplace-app-variables)
*/
appVariables?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Whether the server has IPv6 networking activated.
*/
enableIpv6?: pulumi.Input<boolean>;
/**
* The hostname to assign to the server.
*/
hostname?: pulumi.Input<string>;
/**
* The ID of the Vultr marketplace application to be installed on the server. [See List Applications](https://www.vultr.com/api/#operation/list-applications) Note marketplace applications are denoted by type: `marketplace` and you must use the `imageId` not the id.
*/
imageId?: pulumi.Input<string>;
/**
* A label for the server.
*/
label?: pulumi.Input<string>;
mdiskMode?: pulumi.Input<string>;
/**
* The ID of the operating system to be installed on the server. [See List OS](https://www.vultr.com/api/#operation/list-os)
*/
osId?: pulumi.Input<number>;
persistentPxe?: pulumi.Input<boolean>;
/**
* The ID of the plan that you want the server to subscribe to. [See List Plans](https://www.vultr.com/api/#tag/plans)
*/
plan: pulumi.Input<string>;
/**
* The ID of the region that the server is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions)
*/
region: pulumi.Input<string>;
/**
* The ID of the floating IP to use as the main IP of this server. [See Reserved IPs](https://www.vultr.com/api/#operation/list-reserved-ips)
*/
reservedIpv4?: pulumi.Input<string>;
/**
* The ID of the startup script you want added to the server.
*/
scriptId?: pulumi.Input<string>;
/**
* The ID of the Vultr snapshot that the server will restore for the initial installation. [See List Snapshots](https://www.vultr.com/api/#operation/list-snapshots)
*/
snapshotId?: pulumi.Input<string>;
/**
* A list of SSH key IDs to apply to the server on install (only valid for Linux/FreeBSD).
*/
sshKeyIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* A list of tags to apply to the servier.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Generic data store, which some provisioning tools and cloud operating systems use as a configuration file. It is generally consumed only once after an instance has been launched, but individual needs may vary.
*/
userData?: pulumi.Input<string>;
/**
* The scheme used for the default user. Possible values are `root` or `limited` (linux servers only).
*/
userScheme?: pulumi.Input<string>;
/**
* A list of VPC 2.0 IDs to be attached to the server.
*
* @deprecated VPC2 is deprecated and will be removed in a future release. Use VPC instead
*/
vpc2Ids?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The VPC ID to use when creating the server.
*/
vpcId?: pulumi.Input<string>;
}