import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Provides a Vultr instance resource. This can be used to create, read, modify, and delete instances on your Vultr account. * * ## Example Usage * * Create a new instance: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as vultr from "@ediri/vultr"; * * const myInstance = new vultr.Instance("myInstance", { * osId: 1743, * plan: "vc2-1c-2gb", * region: "sea", * }); * ``` * * Create a new instance with options: * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as vultr from "@ediri/vultr"; * * const myInstance = new vultr.Instance("myInstance", { * activationEmail: false, * backups: "enabled", * backupsSchedule: { * type: "daily", * }, * ddosProtection: true, * disablePublicIpv4: true, * enableIpv6: true, * hostname: "my-instance-hostname", * label: "my-instance-label", * osId: 1743, * plan: "vc2-1c-2gb", * region: "sea", * tags: ["my-instance-tag"], * }); * ``` * * ## Import * * Instances can be imported using the instance `ID`, e.g. * * ```sh * $ pulumi import vultr:index/instance:Instance my_instance b6a859c5-b299-49dd-8888-b1abbc517d08 * ``` */ export declare class Instance extends pulumi.CustomResource { /** * Get an existing Instance 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, state?: InstanceState, opts?: pulumi.CustomResourceOptions): Instance; /** * Returns true if the given object is an instance of Instance. 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 Instance; /** * Whether an activation email will be sent when the server is ready. */ readonly activationEmail: pulumi.Output; /** * The server's allowed bandwidth usage in GB. */ readonly allowedBandwidth: pulumi.Output; /** * 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; /** * 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>; /** * Whether automatic backups will be enabled for this server (these have an extra charge associated with them). Values can be enabled or disabled. */ readonly backups: pulumi.Output; /** * A block that defines the way backups should be scheduled. While this is an optional field if `backups` are `enabled` this field is mandatory. The configuration of a `backupsSchedule` is listed below. */ readonly backupsSchedule: pulumi.Output; /** * The date the server was added to your Vultr account. */ readonly dateCreated: pulumi.Output; /** * Whether DDOS protection will be enabled on the server (there is an additional charge for this). */ readonly ddosProtection: pulumi.Output; /** * The server's default password. */ readonly defaultPassword: pulumi.Output; /** * Whether the server has a public IPv4 address assigned (only possible with `enableIpv6` set to `true`) */ readonly disablePublicIpv4: pulumi.Output; /** * The description of the disk(s) on the server. */ readonly disk: pulumi.Output; /** * Whether the server has IPv6 networking activated. */ readonly enableIpv6: pulumi.Output; /** * Array of which features are enabled. */ readonly features: pulumi.Output; /** * The ID of the firewall group to assign to the server. */ readonly firewallGroupId: pulumi.Output; /** * The server's IPv4 gateway. */ readonly gatewayV4: pulumi.Output; /** * The hostname to assign to the server. */ readonly hostname: pulumi.Output; /** * 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; /** * The server's internal IP address. */ readonly internalIp: pulumi.Output; /** * The URL location of the iPXE chainloader. */ readonly ipxeChainUrl: pulumi.Output; /** * The ID of the ISO file to be installed on the server. [See List ISO](https://www.vultr.com/api/#operation/list-isos) */ readonly isoId: pulumi.Output; /** * The server's current KVM URL. This URL will change periodically. It is not advised to cache this value. */ readonly kvm: pulumi.Output; /** * A label for the server. */ readonly label: pulumi.Output; /** * The server's main IP address. */ readonly mainIp: pulumi.Output; /** * The server's IPv4 netmask. */ readonly netmaskV4: pulumi.Output; /** * The string description of the operating system installed on the server. */ readonly os: pulumi.Output; /** * 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; /** * The ID of the plan that you want the instance to subscribe to. [See List Plans](https://www.vultr.com/api/#tag/plans) */ readonly plan: pulumi.Output; /** * Whether the server is powered on or not. */ readonly powerStatus: pulumi.Output; /** * The amount of memory available on the server in MB. */ readonly ram: pulumi.Output; /** * The ID of the region that the instance is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions) */ readonly region: pulumi.Output; /** * ID of the floating IP to use as the main IP of this server. */ readonly reservedIpId: pulumi.Output; /** * The ID of the startup script you want added to the server. */ readonly scriptId: pulumi.Output; /** * A more detailed server status (none, locked, installingbooting, isomounting, ok). */ readonly serverStatus: pulumi.Output; /** * 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; /** * A list of SSH key IDs to apply to the server on install (only valid for Linux/FreeBSD). */ readonly sshKeyIds: pulumi.Output; /** * The status of the server's subscription. */ readonly status: pulumi.Output; /** * A list of tags to apply to the instance. */ readonly tags: pulumi.Output; /** * 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; /** * The scheme used for the default user. Possible values are `root` or `limited` (linux servers only). */ readonly userScheme: pulumi.Output; /** * The main IPv6 network address. */ readonly v6MainIp: pulumi.Output; /** * The IPv6 subnet. */ readonly v6Network: pulumi.Output; /** * The IPv6 network size in bits. */ readonly v6NetworkSize: pulumi.Output; /** * The number of virtual CPUs available on the server. */ readonly vcpuCount: pulumi.Output; /** * A list of VPC 2.0 IDs to be attached to the server. * * @deprecated VPC2 is deprecated and will not be supported in a future release. Use VPC instead */ readonly vpc2Ids: pulumi.Output; /** * A list of VPC IDs to be attached to the server. */ readonly vpcIds: pulumi.Output; /** * Create a Instance 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: InstanceArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Instance resources. */ export interface InstanceState { /** * Whether an activation email will be sent when the server is ready. */ activationEmail?: pulumi.Input; /** * The server's allowed bandwidth usage in GB. */ allowedBandwidth?: pulumi.Input; /** * 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; /** * 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; }>; /** * Whether automatic backups will be enabled for this server (these have an extra charge associated with them). Values can be enabled or disabled. */ backups?: pulumi.Input; /** * A block that defines the way backups should be scheduled. While this is an optional field if `backups` are `enabled` this field is mandatory. The configuration of a `backupsSchedule` is listed below. */ backupsSchedule?: pulumi.Input; /** * The date the server was added to your Vultr account. */ dateCreated?: pulumi.Input; /** * Whether DDOS protection will be enabled on the server (there is an additional charge for this). */ ddosProtection?: pulumi.Input; /** * The server's default password. */ defaultPassword?: pulumi.Input; /** * Whether the server has a public IPv4 address assigned (only possible with `enableIpv6` set to `true`) */ disablePublicIpv4?: pulumi.Input; /** * The description of the disk(s) on the server. */ disk?: pulumi.Input; /** * Whether the server has IPv6 networking activated. */ enableIpv6?: pulumi.Input; /** * Array of which features are enabled. */ features?: pulumi.Input[]>; /** * The ID of the firewall group to assign to the server. */ firewallGroupId?: pulumi.Input; /** * The server's IPv4 gateway. */ gatewayV4?: pulumi.Input; /** * The hostname to assign to the server. */ hostname?: pulumi.Input; /** * 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; /** * The server's internal IP address. */ internalIp?: pulumi.Input; /** * The URL location of the iPXE chainloader. */ ipxeChainUrl?: pulumi.Input; /** * The ID of the ISO file to be installed on the server. [See List ISO](https://www.vultr.com/api/#operation/list-isos) */ isoId?: pulumi.Input; /** * The server's current KVM URL. This URL will change periodically. It is not advised to cache this value. */ kvm?: pulumi.Input; /** * A label for the server. */ label?: pulumi.Input; /** * The server's main IP address. */ mainIp?: pulumi.Input; /** * The server's IPv4 netmask. */ netmaskV4?: pulumi.Input; /** * The string description of the operating system installed on the server. */ os?: pulumi.Input; /** * 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; /** * The ID of the plan that you want the instance to subscribe to. [See List Plans](https://www.vultr.com/api/#tag/plans) */ plan?: pulumi.Input; /** * Whether the server is powered on or not. */ powerStatus?: pulumi.Input; /** * The amount of memory available on the server in MB. */ ram?: pulumi.Input; /** * The ID of the region that the instance is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions) */ region?: pulumi.Input; /** * ID of the floating IP to use as the main IP of this server. */ reservedIpId?: pulumi.Input; /** * The ID of the startup script you want added to the server. */ scriptId?: pulumi.Input; /** * A more detailed server status (none, locked, installingbooting, isomounting, ok). */ serverStatus?: pulumi.Input; /** * 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; /** * A list of SSH key IDs to apply to the server on install (only valid for Linux/FreeBSD). */ sshKeyIds?: pulumi.Input[]>; /** * The status of the server's subscription. */ status?: pulumi.Input; /** * A list of tags to apply to the instance. */ tags?: pulumi.Input[]>; /** * 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; /** * The scheme used for the default user. Possible values are `root` or `limited` (linux servers only). */ userScheme?: pulumi.Input; /** * The main IPv6 network address. */ v6MainIp?: pulumi.Input; /** * The IPv6 subnet. */ v6Network?: pulumi.Input; /** * The IPv6 network size in bits. */ v6NetworkSize?: pulumi.Input; /** * The number of virtual CPUs available on the server. */ vcpuCount?: pulumi.Input; /** * A list of VPC 2.0 IDs to be attached to the server. * * @deprecated VPC2 is deprecated and will not be supported in a future release. Use VPC instead */ vpc2Ids?: pulumi.Input[]>; /** * A list of VPC IDs to be attached to the server. */ vpcIds?: pulumi.Input[]>; } /** * The set of arguments for constructing a Instance resource. */ export interface InstanceArgs { /** * Whether an activation email will be sent when the server is ready. */ activationEmail?: pulumi.Input; /** * 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; /** * 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; }>; /** * Whether automatic backups will be enabled for this server (these have an extra charge associated with them). Values can be enabled or disabled. */ backups?: pulumi.Input; /** * A block that defines the way backups should be scheduled. While this is an optional field if `backups` are `enabled` this field is mandatory. The configuration of a `backupsSchedule` is listed below. */ backupsSchedule?: pulumi.Input; /** * Whether DDOS protection will be enabled on the server (there is an additional charge for this). */ ddosProtection?: pulumi.Input; /** * Whether the server has a public IPv4 address assigned (only possible with `enableIpv6` set to `true`) */ disablePublicIpv4?: pulumi.Input; /** * Whether the server has IPv6 networking activated. */ enableIpv6?: pulumi.Input; /** * The ID of the firewall group to assign to the server. */ firewallGroupId?: pulumi.Input; /** * The hostname to assign to the server. */ hostname?: pulumi.Input; /** * 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; /** * The URL location of the iPXE chainloader. */ ipxeChainUrl?: pulumi.Input; /** * The ID of the ISO file to be installed on the server. [See List ISO](https://www.vultr.com/api/#operation/list-isos) */ isoId?: pulumi.Input; /** * A label for the server. */ label?: pulumi.Input; /** * 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; /** * The ID of the plan that you want the instance to subscribe to. [See List Plans](https://www.vultr.com/api/#tag/plans) */ plan: pulumi.Input; /** * The ID of the region that the instance is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions) */ region: pulumi.Input; /** * ID of the floating IP to use as the main IP of this server. */ reservedIpId?: pulumi.Input; /** * The ID of the startup script you want added to the server. */ scriptId?: pulumi.Input; /** * 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; /** * A list of SSH key IDs to apply to the server on install (only valid for Linux/FreeBSD). */ sshKeyIds?: pulumi.Input[]>; /** * A list of tags to apply to the instance. */ tags?: pulumi.Input[]>; /** * 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; /** * The scheme used for the default user. Possible values are `root` or `limited` (linux servers only). */ userScheme?: pulumi.Input; /** * A list of VPC 2.0 IDs to be attached to the server. * * @deprecated VPC2 is deprecated and will not be supported in a future release. Use VPC instead */ vpc2Ids?: pulumi.Input[]>; /** * A list of VPC IDs to be attached to the server. */ vpcIds?: pulumi.Input[]>; }