@huaweicloudos/pulumi
Version:
A Pulumi package for creating and managing Huaweicloud cloud resources.
342 lines (341 loc) • 11.4 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import { input as inputs, output as outputs } from "../types";
/**
* Manages an EIP resource within HuaweiCloud.
*
* ## Example Usage
* ### Create an EIP with Dedicated Bandwidth
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as pulumi from "@huaweicloudos/pulumi";
*
* const dedicated = new huaweicloud.vpc.Eip("dedicated", {
* publicip: {
* type: "5_bgp",
* },
* bandwidth: {
* shareType: "PER",
* name: _var.bandwidth_name,
* size: 10,
* chargeMode: "traffic",
* },
* });
* ```
* ### Create an EIP with Shared Bandwidth
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as pulumi from "@huaweicloudos/pulumi";
*
* const test = new huaweicloud.vpc.Bandwidth("test", {size: 5});
* const shared = new huaweicloud.vpc.Eip("shared", {
* publicip: {
* type: "5_bgp",
* },
* bandwidth: {
* shareType: "WHOLE",
* id: test.id,
* },
* });
* ```
*
* ## Import
*
* EIPs can be imported using the `id`, e.g. bash
*
* ```sh
* $ pulumi import huaweicloud:Vpc/eip:Eip test 2c7f39f3-702b-48d1-940c-b50384177ee1
* ```
*/
export declare class Eip extends pulumi.CustomResource {
/**
* Get an existing Eip 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?: EipState, opts?: pulumi.CustomResourceOptions): Eip;
/**
* Returns true if the given object is an instance of Eip. 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 Eip;
/**
* The IPv4 address of the EIP.
*/
readonly address: pulumi.Output<string>;
/**
* The associate id of EIP.
*/
readonly associateId: pulumi.Output<string>;
/**
* The associate type of EIP. Values are **PORT**, **NATGW**, **ELB**, **ELBV1** and **VPN**.
*/
readonly associateType: pulumi.Output<string>;
/**
* @deprecated Deprecated
*/
readonly autoPay: pulumi.Output<string | undefined>;
/**
* Specifies whether auto renew is enabled.
* Valid values are **true** and **false**. Defaults to **false**.
*/
readonly autoRenew: pulumi.Output<string | undefined>;
/**
* Specifies the bandwidth configuration.
* The object structure is documented below.
*/
readonly bandwidth: pulumi.Output<outputs.Vpc.EipBandwidth>;
/**
* Specifies the charging mode of the EIP.
* The valid values are **prePaid** and **postPaid**, defaults to **postPaid**.
*/
readonly chargingMode: pulumi.Output<string>;
/**
* The create time of EIP.
*/
readonly createdAt: pulumi.Output<string>;
/**
* Specifies the enterprise project ID to which the EIP belongs.
*/
readonly enterpriseProjectId: pulumi.Output<string>;
/**
* The instance id to which the port belongs. Return when `associateType` is **PORT**.
*/
readonly instanceId: pulumi.Output<string>;
/**
* The instance type to which the port belongs. Return when `associateType` is **PORT**.
*/
readonly instanceType: pulumi.Output<string>;
/**
* The IPv6 address of the EIP.
*/
readonly ipv6Address: pulumi.Output<string>;
/**
* Specifies the bandwidth name.
* The name can contain `1` to `64` characters, including letters, digits, underscores (_), hyphens (-), and periods (.).
* This parameter is mandatory when `shareType` is set to **PER**.
*/
readonly name: pulumi.Output<string>;
/**
* Specifies the charging period of the EIP.
* + If `periodUnit` is set to **month**, the value ranges from `1` to `9`.
* + If `periodUnit` is set to **year**, the value ranges from `1` to `3`.
*/
readonly period: pulumi.Output<number | undefined>;
/**
* Specifies the charging period unit of the EIP.
* Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
*/
readonly periodUnit: pulumi.Output<string | undefined>;
/**
* The port ID which the EIP associated with.
*/
readonly portId: pulumi.Output<string>;
/**
* The private IP address bound to the EIP.
*/
readonly privateIp: pulumi.Output<string>;
/**
* Specifies the EIP configuration.
* The object structure is documented below.
*/
readonly publicip: pulumi.Output<outputs.Vpc.EipPublicip>;
/**
* Specifies the region in which to create the EIP resource.
* If omitted, the provider-level region will be used. Changing this will create a new resource.
*/
readonly region: pulumi.Output<string>;
/**
* The status of EIP.
*/
readonly status: pulumi.Output<string>;
/**
* Specifies the key/value pairs to associate with the EIP.
*/
readonly tags: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* The update time of EIP.
*/
readonly updatedAt: pulumi.Output<string>;
/**
* Create a Eip 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: EipArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Eip resources.
*/
export interface EipState {
/**
* The IPv4 address of the EIP.
*/
address?: pulumi.Input<string>;
/**
* The associate id of EIP.
*/
associateId?: pulumi.Input<string>;
/**
* The associate type of EIP. Values are **PORT**, **NATGW**, **ELB**, **ELBV1** and **VPN**.
*/
associateType?: pulumi.Input<string>;
/**
* @deprecated Deprecated
*/
autoPay?: pulumi.Input<string>;
/**
* Specifies whether auto renew is enabled.
* Valid values are **true** and **false**. Defaults to **false**.
*/
autoRenew?: pulumi.Input<string>;
/**
* Specifies the bandwidth configuration.
* The object structure is documented below.
*/
bandwidth?: pulumi.Input<inputs.Vpc.EipBandwidth>;
/**
* Specifies the charging mode of the EIP.
* The valid values are **prePaid** and **postPaid**, defaults to **postPaid**.
*/
chargingMode?: pulumi.Input<string>;
/**
* The create time of EIP.
*/
createdAt?: pulumi.Input<string>;
/**
* Specifies the enterprise project ID to which the EIP belongs.
*/
enterpriseProjectId?: pulumi.Input<string>;
/**
* The instance id to which the port belongs. Return when `associateType` is **PORT**.
*/
instanceId?: pulumi.Input<string>;
/**
* The instance type to which the port belongs. Return when `associateType` is **PORT**.
*/
instanceType?: pulumi.Input<string>;
/**
* The IPv6 address of the EIP.
*/
ipv6Address?: pulumi.Input<string>;
/**
* Specifies the bandwidth name.
* The name can contain `1` to `64` characters, including letters, digits, underscores (_), hyphens (-), and periods (.).
* This parameter is mandatory when `shareType` is set to **PER**.
*/
name?: pulumi.Input<string>;
/**
* Specifies the charging period of the EIP.
* + If `periodUnit` is set to **month**, the value ranges from `1` to `9`.
* + If `periodUnit` is set to **year**, the value ranges from `1` to `3`.
*/
period?: pulumi.Input<number>;
/**
* Specifies the charging period unit of the EIP.
* Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
*/
periodUnit?: pulumi.Input<string>;
/**
* The port ID which the EIP associated with.
*/
portId?: pulumi.Input<string>;
/**
* The private IP address bound to the EIP.
*/
privateIp?: pulumi.Input<string>;
/**
* Specifies the EIP configuration.
* The object structure is documented below.
*/
publicip?: pulumi.Input<inputs.Vpc.EipPublicip>;
/**
* Specifies the region in which to create the EIP resource.
* If omitted, the provider-level region will be used. Changing this will create a new resource.
*/
region?: pulumi.Input<string>;
/**
* The status of EIP.
*/
status?: pulumi.Input<string>;
/**
* Specifies the key/value pairs to associate with the EIP.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The update time of EIP.
*/
updatedAt?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a Eip resource.
*/
export interface EipArgs {
/**
* @deprecated Deprecated
*/
autoPay?: pulumi.Input<string>;
/**
* Specifies whether auto renew is enabled.
* Valid values are **true** and **false**. Defaults to **false**.
*/
autoRenew?: pulumi.Input<string>;
/**
* Specifies the bandwidth configuration.
* The object structure is documented below.
*/
bandwidth: pulumi.Input<inputs.Vpc.EipBandwidth>;
/**
* Specifies the charging mode of the EIP.
* The valid values are **prePaid** and **postPaid**, defaults to **postPaid**.
*/
chargingMode?: pulumi.Input<string>;
/**
* Specifies the enterprise project ID to which the EIP belongs.
*/
enterpriseProjectId?: pulumi.Input<string>;
/**
* Specifies the bandwidth name.
* The name can contain `1` to `64` characters, including letters, digits, underscores (_), hyphens (-), and periods (.).
* This parameter is mandatory when `shareType` is set to **PER**.
*/
name?: pulumi.Input<string>;
/**
* Specifies the charging period of the EIP.
* + If `periodUnit` is set to **month**, the value ranges from `1` to `9`.
* + If `periodUnit` is set to **year**, the value ranges from `1` to `3`.
*/
period?: pulumi.Input<number>;
/**
* Specifies the charging period unit of the EIP.
* Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**.
*/
periodUnit?: pulumi.Input<string>;
/**
* Specifies the EIP configuration.
* The object structure is documented below.
*/
publicip: pulumi.Input<inputs.Vpc.EipPublicip>;
/**
* Specifies the region in which to create the EIP resource.
* If omitted, the provider-level region will be used. Changing this will create a new resource.
*/
region?: pulumi.Input<string>;
/**
* Specifies the key/value pairs to associate with the EIP.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
}