UNPKG

@equinix-labs/pulumi-equinix

Version:

A Pulumi package for creating and managing equinix cloud resources.

172 lines (171 loc) 7.58 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Provides an Equinix Metal Spot Market Request resource to allow you to manage spot market requests on your account. For more detail on Spot Market, see [this article in Equinix Metal documentation](https://metal.equinix.com/developers/docs/deploy/spot-market/). * * ## Example Usage * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as equinix from "@equinix-labs/pulumi-equinix"; * * const req = new equinix.metal.SpotMarketRequest("req", { * projectId: projectId, * maxBidPrice: 0.03, * metro: "ny", * devicesMin: 1, * devicesMax: 1, * instanceParameters: { * hostname: "testspot", * billingCycle: "hourly", * operatingSystem: "ubuntu_20_04", * plan: "c3.small.x86", * }, * }); * ``` * * ## Import * * This resource can be imported using an existing spot market request ID: * * ```sh * $ pulumi import equinix:metal/spotMarketRequest:SpotMarketRequest equinix_metal_spot_market_request {existing_spot_market_request_id} * ``` */ export declare class SpotMarketRequest extends pulumi.CustomResource { /** * Get an existing SpotMarketRequest 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?: SpotMarketRequestState, opts?: pulumi.CustomResourceOptions): SpotMarketRequest; /** * Returns true if the given object is an instance of SpotMarketRequest. 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 SpotMarketRequest; /** * Maximum number devices to be created. */ readonly devicesMax: pulumi.Output<number>; /** * Miniumum number devices to be created. */ readonly devicesMin: pulumi.Output<number>; /** * Facility IDs where devices should be created. Use metro instead; read the facility to metro migration guide * * @deprecated Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices */ readonly facilities: pulumi.Output<string[]>; /** * Key/Value pairs of parameters for devices provisioned from this request. Valid keys are: `billingCycle`, `plan`, `operatingSystem`, `hostname`, `terminationTime`, `alwaysPxe`, `description`, `features`, `locked`, `projectSshKeys`, `userSshKeys`, `userdata`, `customdata`, `ipxeScriptUrl`, `tags`. You can find each parameter description in equinix.metal.Device docs. */ readonly instanceParameters: pulumi.Output<outputs.metal.SpotMarketRequestInstanceParameters>; /** * Maximum price user is willing to pay per hour per device. */ readonly maxBidPrice: pulumi.Output<number>; /** * Metro where devices should be created. */ readonly metro: pulumi.Output<string | undefined>; /** * Project ID. */ readonly projectId: pulumi.Output<string>; /** * On resource creation wait until all desired devices are active. On resource destruction wait until devices are removed. */ readonly waitForDevices: pulumi.Output<boolean | undefined>; /** * Create a SpotMarketRequest 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: SpotMarketRequestArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering SpotMarketRequest resources. */ export interface SpotMarketRequestState { /** * Maximum number devices to be created. */ devicesMax?: pulumi.Input<number>; /** * Miniumum number devices to be created. */ devicesMin?: pulumi.Input<number>; /** * Facility IDs where devices should be created. Use metro instead; read the facility to metro migration guide * * @deprecated Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices */ facilities?: pulumi.Input<pulumi.Input<string>[]>; /** * Key/Value pairs of parameters for devices provisioned from this request. Valid keys are: `billingCycle`, `plan`, `operatingSystem`, `hostname`, `terminationTime`, `alwaysPxe`, `description`, `features`, `locked`, `projectSshKeys`, `userSshKeys`, `userdata`, `customdata`, `ipxeScriptUrl`, `tags`. You can find each parameter description in equinix.metal.Device docs. */ instanceParameters?: pulumi.Input<inputs.metal.SpotMarketRequestInstanceParameters>; /** * Maximum price user is willing to pay per hour per device. */ maxBidPrice?: pulumi.Input<number>; /** * Metro where devices should be created. */ metro?: pulumi.Input<string>; /** * Project ID. */ projectId?: pulumi.Input<string>; /** * On resource creation wait until all desired devices are active. On resource destruction wait until devices are removed. */ waitForDevices?: pulumi.Input<boolean>; } /** * The set of arguments for constructing a SpotMarketRequest resource. */ export interface SpotMarketRequestArgs { /** * Maximum number devices to be created. */ devicesMax: pulumi.Input<number>; /** * Miniumum number devices to be created. */ devicesMin: pulumi.Input<number>; /** * Facility IDs where devices should be created. Use metro instead; read the facility to metro migration guide * * @deprecated Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices */ facilities?: pulumi.Input<pulumi.Input<string>[]>; /** * Key/Value pairs of parameters for devices provisioned from this request. Valid keys are: `billingCycle`, `plan`, `operatingSystem`, `hostname`, `terminationTime`, `alwaysPxe`, `description`, `features`, `locked`, `projectSshKeys`, `userSshKeys`, `userdata`, `customdata`, `ipxeScriptUrl`, `tags`. You can find each parameter description in equinix.metal.Device docs. */ instanceParameters: pulumi.Input<inputs.metal.SpotMarketRequestInstanceParameters>; /** * Maximum price user is willing to pay per hour per device. */ maxBidPrice: pulumi.Input<number>; /** * Metro where devices should be created. */ metro?: pulumi.Input<string>; /** * Project ID. */ projectId: pulumi.Input<string>; /** * On resource creation wait until all desired devices are active. On resource destruction wait until devices are removed. */ waitForDevices?: pulumi.Input<boolean>; }