import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Public IP (Elastic IP Address, EIP) and its public outbound bandwidth are IP connectivity services provided by Volcano Engine for cloud resources, which can be purchased and held independently. Public IP supports direct binding to cloud servers (including ECS cloud servers, EBM bare metal servers, GPU cloud servers), and also supports binding to public NAT gateways, load balancers, and secondary network interfaces, providing public network connectivity for cloud servers. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as volcenginecc from "@volcengine/pulumi-volcenginecc"; * * const eipDemo = new volcenginecc.vpc.Eip("EipDemo", { * name: "EipDemo", * description: "EipDemo description", * isp: "BGP", * billingType: 2, * bandwidth: 3, * period: 5, * projectName: "default", * bandwidthPackageId: "bwp-ij5gz1lf66m874o8cth*****", * tags: [{ * key: "env", * value: "test", * }], * instanceId: "i-ye48ymyy9s5i3z4*****", * instanceType: "EcsInstance", * directMode: true, * }); * ``` * * ## Import * * ```sh * $ pulumi import volcenginecc:vpc/eip:Eip example "allocation_id" * ``` */ 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, 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; /** * Public IP ID. */ readonly allocationId: pulumi.Output; /** * Maximum bandwidth of the public IP. Default is '1', unit: Mbps. If BillingType is 1: range is 1~500. If BillingType is 2: range is 1~500. If BillingType is 3: range is 1~200. */ readonly bandwidth: pulumi.Output; /** * Shared bandwidth package ID, indicating the public IP is added to a shared bandwidth package. To add a public IP to a shared bandwidth package, the following conditions must be met: Both have the same security protection type. Both are in the same region. The public IP must use pay-as-you-go billing. The shared bandwidth package must be IPv4 type. */ readonly bandwidthPackageId: pulumi.Output; /** * Billing method for public IP. Values: 1: annual/monthly. 2: pay-as-you-go - based on bandwidth cap. 3: pay-as-you-go - based on actual traffic. */ readonly billingType: pulumi.Output; /** * Whether the public IP is locked. Normal: normal. FinancialLocked: locked. */ readonly businessStatus: pulumi.Output; /** * Creation time of the public IP. */ readonly createdTime: pulumi.Output; /** * Expected forced resource recycle time. For subscription public IPs, this parameter returns a value. For pay-as-you-go public IPs, this parameter returns a value only when frozen due to overdue payment. */ readonly deletedTime: pulumi.Output; /** * Description of the public IP. */ readonly description: pulumi.Output; /** * Whether to enable passthrough mode when binding public IP. Enter the following enum values exactly as shown; do not use other values. false (default): passthrough mode not enabled. true: passthrough mode enabled. */ readonly directMode: pulumi.Output; /** * Public IP address. */ readonly eipAddress: pulumi.Output; /** * Expiration time of the public IP. For subscription billing, the return value is the expiration time. For pay-as-you-go billing, the return value is empty. */ readonly expiredTime: pulumi.Output; /** * Currently bound instance ID. */ readonly instanceId: pulumi.Output; /** * Current bound instance type. Nat: public NAT gateway. NetworkInterface: elastic network interface. ClbInstance: load balancer. EcsInstance: cloud server. HaVip: high availability virtual IP. */ readonly instanceType: pulumi.Output; /** * Apply for a specified public IP address. Only supports entering IP addresses that have been released after use; if not specified, the IP address is assigned automatically. Specified public IP address */ readonly ipAddress: pulumi.Output; /** * IP address pool ID. */ readonly ipAddressPoolId: pulumi.Output; /** * Whether it is blocked. true: yes. false: no. */ readonly isBlocked: pulumi.Output; /** * Line type. BGP: BGP (multi-line). ChinaMobile: China Mobile static single line. ChinaTelecom: China Telecom static single line. ChinaUnicom: China Unicom static single line. SingleLine*BGP: BGP single line. Fusion*BGP: Fusion BGP. ChinaMobile*Value: China Mobile Value static single line. ChinaUnicom*Value: China Unicom Value static single line. ChinaTelecom_Value: China Telecom Value static single line. */ readonly isp: pulumi.Output; /** * Reason for public IP lock. financial: locked due to overdue payment. unlock: restoring after recharge following suspension for overdue payment. Empty value: not locked. */ readonly lockReason: pulumi.Output; /** * Name of the public IP. */ readonly name: pulumi.Output; /** * Resource freeze time. This parameter returns a value only when the resource is frozen due to overdue payment. */ readonly overdueTime: pulumi.Output; /** * When representing the duration for purchasing a subscription public IP, the default is '1'. If PeriodUnit is set to 1, Period can be 1~9, 12, 24, 36, 48, or 60. If PeriodUnit is set to 2, Period can be 1~5. When representing the duration for temporary upgrade, the unit is hours, and the range is 1~720. */ readonly period: pulumi.Output; /** * Unit for the duration when purchasing annual/monthly public IP. Values: 1 (default): month. 2: year. */ readonly periodUnit: pulumi.Output; /** * Private IP address of the instance to bind the public IP to. Only ECS primary network interface private IP addresses and secondary network interface IP addresses are supported. If not specified: If InstanceType is EcsInstance, binds to the primary private IP address of the ECS primary network interface. If InstanceType is NetworkInterface, binds to the primary private IP address of the secondary network interface. */ readonly privateIpAddress: pulumi.Output; /** * Name of the project to which the public IP belongs. */ readonly projectName: pulumi.Output; /** * Whether to release the public IP when the cloud server instance is deleted. Only valid for pay-as-you-go public IPs. When enabled, the public IP is released together with the instance when the system automatically recycles the instance (24 hours after unsubscription, upon expiration, or due to overdue payment) or when the DeleteInstances API is called. true: yes. false: no. */ readonly releaseWithInstance: pulumi.Output; /** * Duration for automatic renewal. Valid values: 1, 2, 3, 6, 12. Unit: month. If RenewType is 2, RenewPeriodTimes must be specified. */ readonly renewPeriodTimes: pulumi.Output; /** * Renewal method for annual/monthly public IP. Values: 1 (default): manual renewal. 2: automatic renewal. 3: do not renew upon expiration. */ readonly renewType: pulumi.Output; /** * DDoS native protection (Enterprise Edition) ID. You can call the DescInstanceList API to query the ID of DDoS native protection (Enterprise Edition). When SecurityProtectionTypes is set to AntiDDoS_Enhanced, this parameter is required. */ readonly securityProtectionInstanceId: pulumi.Output; /** * Protection type. AntiDDoS_Enhanced: Public IPs with enhanced protection can be added to DDoS Native Protection (Enterprise Edition) instances. Null value: Public IPs with default protection type. */ readonly securityProtectionTypes: pulumi.Output; /** * Managed by service */ readonly serviceManaged: pulumi.Output; /** * Status of the public IP. Attaching: binding in progress. Detaching: unbinding in progress. Attached: bound. Available: available. Deleting: deleting. */ readonly status: pulumi.Output; readonly tags: pulumi.Output; /** * Time when the public IP was updated. */ readonly updatedTime: pulumi.Output; /** * 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 { /** * Public IP ID. */ allocationId?: pulumi.Input; /** * Maximum bandwidth of the public IP. Default is '1', unit: Mbps. If BillingType is 1: range is 1~500. If BillingType is 2: range is 1~500. If BillingType is 3: range is 1~200. */ bandwidth?: pulumi.Input; /** * Shared bandwidth package ID, indicating the public IP is added to a shared bandwidth package. To add a public IP to a shared bandwidth package, the following conditions must be met: Both have the same security protection type. Both are in the same region. The public IP must use pay-as-you-go billing. The shared bandwidth package must be IPv4 type. */ bandwidthPackageId?: pulumi.Input; /** * Billing method for public IP. Values: 1: annual/monthly. 2: pay-as-you-go - based on bandwidth cap. 3: pay-as-you-go - based on actual traffic. */ billingType?: pulumi.Input; /** * Whether the public IP is locked. Normal: normal. FinancialLocked: locked. */ businessStatus?: pulumi.Input; /** * Creation time of the public IP. */ createdTime?: pulumi.Input; /** * Expected forced resource recycle time. For subscription public IPs, this parameter returns a value. For pay-as-you-go public IPs, this parameter returns a value only when frozen due to overdue payment. */ deletedTime?: pulumi.Input; /** * Description of the public IP. */ description?: pulumi.Input; /** * Whether to enable passthrough mode when binding public IP. Enter the following enum values exactly as shown; do not use other values. false (default): passthrough mode not enabled. true: passthrough mode enabled. */ directMode?: pulumi.Input; /** * Public IP address. */ eipAddress?: pulumi.Input; /** * Expiration time of the public IP. For subscription billing, the return value is the expiration time. For pay-as-you-go billing, the return value is empty. */ expiredTime?: pulumi.Input; /** * Currently bound instance ID. */ instanceId?: pulumi.Input; /** * Current bound instance type. Nat: public NAT gateway. NetworkInterface: elastic network interface. ClbInstance: load balancer. EcsInstance: cloud server. HaVip: high availability virtual IP. */ instanceType?: pulumi.Input; /** * Apply for a specified public IP address. Only supports entering IP addresses that have been released after use; if not specified, the IP address is assigned automatically. Specified public IP address */ ipAddress?: pulumi.Input; /** * IP address pool ID. */ ipAddressPoolId?: pulumi.Input; /** * Whether it is blocked. true: yes. false: no. */ isBlocked?: pulumi.Input; /** * Line type. BGP: BGP (multi-line). ChinaMobile: China Mobile static single line. ChinaTelecom: China Telecom static single line. ChinaUnicom: China Unicom static single line. SingleLine*BGP: BGP single line. Fusion*BGP: Fusion BGP. ChinaMobile*Value: China Mobile Value static single line. ChinaUnicom*Value: China Unicom Value static single line. ChinaTelecom_Value: China Telecom Value static single line. */ isp?: pulumi.Input; /** * Reason for public IP lock. financial: locked due to overdue payment. unlock: restoring after recharge following suspension for overdue payment. Empty value: not locked. */ lockReason?: pulumi.Input; /** * Name of the public IP. */ name?: pulumi.Input; /** * Resource freeze time. This parameter returns a value only when the resource is frozen due to overdue payment. */ overdueTime?: pulumi.Input; /** * When representing the duration for purchasing a subscription public IP, the default is '1'. If PeriodUnit is set to 1, Period can be 1~9, 12, 24, 36, 48, or 60. If PeriodUnit is set to 2, Period can be 1~5. When representing the duration for temporary upgrade, the unit is hours, and the range is 1~720. */ period?: pulumi.Input; /** * Unit for the duration when purchasing annual/monthly public IP. Values: 1 (default): month. 2: year. */ periodUnit?: pulumi.Input; /** * Private IP address of the instance to bind the public IP to. Only ECS primary network interface private IP addresses and secondary network interface IP addresses are supported. If not specified: If InstanceType is EcsInstance, binds to the primary private IP address of the ECS primary network interface. If InstanceType is NetworkInterface, binds to the primary private IP address of the secondary network interface. */ privateIpAddress?: pulumi.Input; /** * Name of the project to which the public IP belongs. */ projectName?: pulumi.Input; /** * Whether to release the public IP when the cloud server instance is deleted. Only valid for pay-as-you-go public IPs. When enabled, the public IP is released together with the instance when the system automatically recycles the instance (24 hours after unsubscription, upon expiration, or due to overdue payment) or when the DeleteInstances API is called. true: yes. false: no. */ releaseWithInstance?: pulumi.Input; /** * Duration for automatic renewal. Valid values: 1, 2, 3, 6, 12. Unit: month. If RenewType is 2, RenewPeriodTimes must be specified. */ renewPeriodTimes?: pulumi.Input; /** * Renewal method for annual/monthly public IP. Values: 1 (default): manual renewal. 2: automatic renewal. 3: do not renew upon expiration. */ renewType?: pulumi.Input; /** * DDoS native protection (Enterprise Edition) ID. You can call the DescInstanceList API to query the ID of DDoS native protection (Enterprise Edition). When SecurityProtectionTypes is set to AntiDDoS_Enhanced, this parameter is required. */ securityProtectionInstanceId?: pulumi.Input; /** * Protection type. AntiDDoS_Enhanced: Public IPs with enhanced protection can be added to DDoS Native Protection (Enterprise Edition) instances. Null value: Public IPs with default protection type. */ securityProtectionTypes?: pulumi.Input[]>; /** * Managed by service */ serviceManaged?: pulumi.Input; /** * Status of the public IP. Attaching: binding in progress. Detaching: unbinding in progress. Attached: bound. Available: available. Deleting: deleting. */ status?: pulumi.Input; tags?: pulumi.Input[]>; /** * Time when the public IP was updated. */ updatedTime?: pulumi.Input; } /** * The set of arguments for constructing a Eip resource. */ export interface EipArgs { /** * Maximum bandwidth of the public IP. Default is '1', unit: Mbps. If BillingType is 1: range is 1~500. If BillingType is 2: range is 1~500. If BillingType is 3: range is 1~200. */ bandwidth?: pulumi.Input; /** * Shared bandwidth package ID, indicating the public IP is added to a shared bandwidth package. To add a public IP to a shared bandwidth package, the following conditions must be met: Both have the same security protection type. Both are in the same region. The public IP must use pay-as-you-go billing. The shared bandwidth package must be IPv4 type. */ bandwidthPackageId?: pulumi.Input; /** * Billing method for public IP. Values: 1: annual/monthly. 2: pay-as-you-go - based on bandwidth cap. 3: pay-as-you-go - based on actual traffic. */ billingType: pulumi.Input; /** * Description of the public IP. */ description?: pulumi.Input; /** * Whether to enable passthrough mode when binding public IP. Enter the following enum values exactly as shown; do not use other values. false (default): passthrough mode not enabled. true: passthrough mode enabled. */ directMode?: pulumi.Input; /** * Currently bound instance ID. */ instanceId?: pulumi.Input; /** * Current bound instance type. Nat: public NAT gateway. NetworkInterface: elastic network interface. ClbInstance: load balancer. EcsInstance: cloud server. HaVip: high availability virtual IP. */ instanceType?: pulumi.Input; /** * Apply for a specified public IP address. Only supports entering IP addresses that have been released after use; if not specified, the IP address is assigned automatically. Specified public IP address */ ipAddress?: pulumi.Input; /** * IP address pool ID. */ ipAddressPoolId?: pulumi.Input; /** * Line type. BGP: BGP (multi-line). ChinaMobile: China Mobile static single line. ChinaTelecom: China Telecom static single line. ChinaUnicom: China Unicom static single line. SingleLine*BGP: BGP single line. Fusion*BGP: Fusion BGP. ChinaMobile*Value: China Mobile Value static single line. ChinaUnicom*Value: China Unicom Value static single line. ChinaTelecom_Value: China Telecom Value static single line. */ isp?: pulumi.Input; /** * Name of the public IP. */ name?: pulumi.Input; /** * When representing the duration for purchasing a subscription public IP, the default is '1'. If PeriodUnit is set to 1, Period can be 1~9, 12, 24, 36, 48, or 60. If PeriodUnit is set to 2, Period can be 1~5. When representing the duration for temporary upgrade, the unit is hours, and the range is 1~720. */ period?: pulumi.Input; /** * Unit for the duration when purchasing annual/monthly public IP. Values: 1 (default): month. 2: year. */ periodUnit?: pulumi.Input; /** * Private IP address of the instance to bind the public IP to. Only ECS primary network interface private IP addresses and secondary network interface IP addresses are supported. If not specified: If InstanceType is EcsInstance, binds to the primary private IP address of the ECS primary network interface. If InstanceType is NetworkInterface, binds to the primary private IP address of the secondary network interface. */ privateIpAddress?: pulumi.Input; /** * Name of the project to which the public IP belongs. */ projectName?: pulumi.Input; /** * Whether to release the public IP when the cloud server instance is deleted. Only valid for pay-as-you-go public IPs. When enabled, the public IP is released together with the instance when the system automatically recycles the instance (24 hours after unsubscription, upon expiration, or due to overdue payment) or when the DeleteInstances API is called. true: yes. false: no. */ releaseWithInstance?: pulumi.Input; /** * Duration for automatic renewal. Valid values: 1, 2, 3, 6, 12. Unit: month. If RenewType is 2, RenewPeriodTimes must be specified. */ renewPeriodTimes?: pulumi.Input; /** * Renewal method for annual/monthly public IP. Values: 1 (default): manual renewal. 2: automatic renewal. 3: do not renew upon expiration. */ renewType?: pulumi.Input; /** * DDoS native protection (Enterprise Edition) ID. You can call the DescInstanceList API to query the ID of DDoS native protection (Enterprise Edition). When SecurityProtectionTypes is set to AntiDDoS_Enhanced, this parameter is required. */ securityProtectionInstanceId?: pulumi.Input; /** * Protection type. AntiDDoS_Enhanced: Public IPs with enhanced protection can be added to DDoS Native Protection (Enterprise Edition) instances. Null value: Public IPs with default protection type. */ securityProtectionTypes?: pulumi.Input[]>; tags?: pulumi.Input[]>; }