import * as pulumi from "@pulumi/pulumi"; /** * Creates and manages Scaleway flexible IPs. * For more information, see [the documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip). * * ## Example Usage * * ### Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@ediri/scaleway"; * * const main = new scaleway.FlexibleIp("main", {reverse: "my-reverse.com"}); * ``` * * ### With zone * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@ediri/scaleway"; * * const main = new scaleway.FlexibleIp("main", {zone: "fr-par-2"}); * ``` * * ### With IPv6 * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@ediri/scaleway"; * * const main = new scaleway.FlexibleIp("main", {isIpv6: true}); * ``` * * ### With baremetal server * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@ediri/scaleway"; * import * as scaleway from "@pulumi/scaleway"; * * const mainAccountSshKey = new scaleway.AccountSshKey("mainAccountSshKey", {publicKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com"}); * const byId = scaleway.getBaremetalOs({ * zone: "fr-par-2", * name: "Ubuntu", * version: "20.04 LTS (Focal Fossa)", * }); * const myOffer = scaleway.getBaremetalOffer({ * zone: "fr-par-2", * name: "EM-A210R-HDD", * }); * const base = new scaleway.BaremetalServer("base", { * zone: "fr-par-2", * offer: myOffer.then(myOffer => myOffer.offerId), * os: byId.then(byId => byId.osId), * sshKeyIds: mainAccountSshKey.id, * }); * const mainFlexibleIp = new scaleway.FlexibleIp("mainFlexibleIp", { * serverId: base.id, * zone: "fr-par-2", * }); * ``` * * ## Import * * Flexible IPs can be imported using the `{zone}/{id}`, e.g. * * bash * * ```sh * $ pulumi import scaleway:index/flexibleIp:FlexibleIp main fr-par-1/11111111-1111-1111-1111-111111111111 * ``` */ export declare class FlexibleIp extends pulumi.CustomResource { /** * Get an existing FlexibleIp 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?: FlexibleIpState, opts?: pulumi.CustomResourceOptions): FlexibleIp; /** * Returns true if the given object is an instance of FlexibleIp. 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 FlexibleIp; /** * The date and time of the creation of the Flexible IP (Format ISO 8601). */ readonly createdAt: pulumi.Output; /** * A description of the flexible IP. */ readonly description: pulumi.Output; /** * The IP address of the Flexible IP. */ readonly ipAddress: pulumi.Output; /** * Defines whether the flexible IP has an IPv6 address. */ readonly isIpv6: pulumi.Output; /** * The organization of the Flexible IP. */ readonly organizationId: pulumi.Output; /** * The project of the Flexible IP. */ readonly projectId: pulumi.Output; /** * The reverse domain associated with this flexible IP. */ readonly reverse: pulumi.Output; /** * The ID of the associated server. */ readonly serverId: pulumi.Output; /** * The status of the flexible IP. */ readonly status: pulumi.Output; /** * A list of tags to apply to the flexible IP. */ readonly tags: pulumi.Output; /** * The date and time of the last update of the Flexible IP (Format ISO 8601). */ readonly updatedAt: pulumi.Output; /** * The zone of the Flexible IP. */ readonly zone: pulumi.Output; /** * Create a FlexibleIp 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?: FlexibleIpArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering FlexibleIp resources. */ export interface FlexibleIpState { /** * The date and time of the creation of the Flexible IP (Format ISO 8601). */ createdAt?: pulumi.Input; /** * A description of the flexible IP. */ description?: pulumi.Input; /** * The IP address of the Flexible IP. */ ipAddress?: pulumi.Input; /** * Defines whether the flexible IP has an IPv6 address. */ isIpv6?: pulumi.Input; /** * The organization of the Flexible IP. */ organizationId?: pulumi.Input; /** * The project of the Flexible IP. */ projectId?: pulumi.Input; /** * The reverse domain associated with this flexible IP. */ reverse?: pulumi.Input; /** * The ID of the associated server. */ serverId?: pulumi.Input; /** * The status of the flexible IP. */ status?: pulumi.Input; /** * A list of tags to apply to the flexible IP. */ tags?: pulumi.Input[]>; /** * The date and time of the last update of the Flexible IP (Format ISO 8601). */ updatedAt?: pulumi.Input; /** * The zone of the Flexible IP. */ zone?: pulumi.Input; } /** * The set of arguments for constructing a FlexibleIp resource. */ export interface FlexibleIpArgs { /** * A description of the flexible IP. */ description?: pulumi.Input; /** * Defines whether the flexible IP has an IPv6 address. */ isIpv6?: pulumi.Input; /** * The project of the Flexible IP. */ projectId?: pulumi.Input; /** * The reverse domain associated with this flexible IP. */ reverse?: pulumi.Input; /** * The ID of the associated server. */ serverId?: pulumi.Input; /** * A list of tags to apply to the flexible IP. */ tags?: pulumi.Input[]>; /** * The zone of the Flexible IP. */ zone?: pulumi.Input; }