UNPKG

@volcengine/pulumi

Version:

A Pulumi package for creating and managing volcengine cloud resources.

483 lines (482 loc) 19.4 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as volcengine from "@pulumi/volcengine"; * import * as volcengine from "@volcengine/pulumi"; * * const fooZones = volcengine.ecs.getZones({}); * // create vpc * const fooVpc = new volcengine.vpc.Vpc("fooVpc", { * vpcName: "acc-test-vpc", * cidrBlock: "172.16.0.0/16", * }); * // create subnet * const fooSubnet = new volcengine.vpc.Subnet("fooSubnet", { * subnetName: "acc-test-subnet", * cidrBlock: "172.16.0.0/24", * zoneId: fooZones.then(fooZones => fooZones.zones?.[0]?.id), * vpcId: fooVpc.id, * }); * // create ipv4 public clb * const publicClb = new volcengine.clb.Clb("publicClb", { * type: "public", * subnetId: fooSubnet.id, * loadBalancerName: "acc-test-clb-public", * loadBalancerSpec: "small_1", * description: "acc-test-demo", * projectName: "default", * eipBillingConfig: { * isp: "BGP", * eipBillingType: "PostPaidByBandwidth", * bandwidth: 1, * }, * tags: [{ * key: "k1", * value: "v1", * }], * }); * // create ipv4 private clb * const privateClb = new volcengine.clb.Clb("privateClb", { * type: "private", * subnetId: fooSubnet.id, * loadBalancerName: "acc-test-clb-private", * loadBalancerSpec: "small_1", * description: "acc-test-demo", * projectName: "default", * }); * // create eip * const eip = new volcengine.eip.Address("eip", { * billingType: "PostPaidByBandwidth", * bandwidth: 1, * isp: "BGP", * description: "tf-test", * projectName: "default", * }); * // associate eip to clb * const associate = new volcengine.eip.Associate("associate", { * allocationId: eip.id, * instanceId: privateClb.id, * instanceType: "ClbInstance", * }); * // create ipv6 vpc * const vpcIpv6 = new volcengine.vpc.Vpc("vpcIpv6", { * vpcName: "acc-test-vpc-ipv6", * cidrBlock: "172.16.0.0/16", * enableIpv6: true, * }); * // create ipv6 subnet * const subnetIpv6 = new volcengine.vpc.Subnet("subnetIpv6", { * subnetName: "acc-test-subnet-ipv6", * cidrBlock: "172.16.0.0/24", * zoneId: fooZones.then(fooZones => fooZones.zones?.[1]?.id), * vpcId: vpcIpv6.id, * ipv6CidrBlock: 1, * }); * // create ipv6 private clb * const privateClbIpv6 = new volcengine.clb.Clb("privateClbIpv6", { * type: "private", * subnetId: subnetIpv6.id, * loadBalancerName: "acc-test-clb-ipv6", * loadBalancerSpec: "small_1", * description: "acc-test-demo", * projectName: "default", * addressIpVersion: "DualStack", * }); * // create ipv6 gateway * const ipv6Gateway = new volcengine.vpc.Ipv6Gateway("ipv6Gateway", {vpcId: vpcIpv6.id}); * const fooIpv6AddressBandwidth = new volcengine.vpc.Ipv6AddressBandwidth("fooIpv6AddressBandwidth", { * ipv6Address: privateClbIpv6.eniIpv6Address, * billingType: "PostPaidByBandwidth", * bandwidth: 5, * }, { * dependsOn: [ipv6Gateway], * }); * ``` * * ## Import * * CLB can be imported using the id, e.g. * * ```sh * $ pulumi import volcengine:clb/clb:Clb default clb-273y2ok6ets007fap8txvf6us * ``` */ export declare class Clb extends pulumi.CustomResource { /** * Get an existing Clb 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?: ClbState, opts?: pulumi.CustomResourceOptions): Clb; /** * Returns true if the given object is an instance of Clb. 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 Clb; /** * The address ip version of the Clb. Valid values: `ipv4`, `DualStack`. Default is `ipv4`. * When the value of this field is `DualStack`, the type of the CLB must be `private`, and suggest using a combination of resource `volcengine.vpc.Ipv6Gateway` and `volcengine.vpc.Ipv6AddressBandwidth` to achieve ipv6 public network access function. */ readonly addressIpVersion: pulumi.Output<string | undefined>; /** * Whether the CLB instance enables the "Allow Backend Security Group" function. value range: `on`, `off`. */ readonly bypassSecurityGroupEnabled: pulumi.Output<string>; /** * The description of the CLB. */ readonly description: pulumi.Output<string | undefined>; /** * The Eip address of the Clb. */ readonly eipAddress: pulumi.Output<string>; /** * The billing configuration of the EIP which automatically associated to CLB. This field is valid when the type of CLB is `public`.When the type of the CLB is `private`, suggest using a combination of resource `volcengine.eip.Address` and `volcengine.eip.Associate` to achieve public network access function. */ readonly eipBillingConfig: pulumi.Output<outputs.clb.ClbEipBillingConfig>; /** * The Eip ID of the Clb. */ readonly eipId: pulumi.Output<string>; /** * The eni address of the CLB. */ readonly eniAddress: pulumi.Output<string>; /** * The number of private IPv4 addresses for the CLB instance. This parameter is valid only when the type parameter is set to private and eniAddress is not passed in. */ readonly eniAddressNum: pulumi.Output<number | undefined>; /** * The eni ipv6 address of the Clb. */ readonly eniIpv6Address: pulumi.Output<string>; /** * The Ipv6 Eip ID of the Clb. */ readonly ipv6EipId: pulumi.Output<string>; /** * The billing type of the CLB, valid values: `PostPaid`, `PrePaid`, `PostPaidByLCU`. Default is `PostPaid`. */ readonly loadBalancerBillingType: pulumi.Output<string>; /** * The name of the CLB. */ readonly loadBalancerName: pulumi.Output<string>; /** * The specification of the CLB, the value can be `small1`, `small2`, `medium1`, `medium2`, `large1`, `large2`. When the value of the `loadBalancerBillingType` is `PostPaidByLCU`, this field does not need to be specified. */ readonly loadBalancerSpec: pulumi.Output<string | undefined>; /** * The master zone ID of the CLB. */ readonly masterZoneId: pulumi.Output<string>; /** * The reason of the console modification protection. */ readonly modificationProtectionReason: pulumi.Output<string | undefined>; /** * The status of the console modification protection, the value can be `NonProtection` or `ConsoleProtection`. */ readonly modificationProtectionStatus: pulumi.Output<string | undefined>; /** * The period of the NatGateway, the valid value range in 1~9 or 12 or 24 or 36. Default value is 12. The period unit defaults to `Month`.This field is only effective when creating a PrePaid NatGateway. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields. */ readonly period: pulumi.Output<number | undefined>; /** * The ProjectName of the CLB. */ readonly projectName: pulumi.Output<string>; /** * The region of the request. */ readonly regionId: pulumi.Output<string>; /** * The remain renew times of the CLB. When the value of the renewType is `AutoRenew`, this field is effective. Valid values: `-1`, `1~100`. The `-1` indicates unlimited automatic renewals. */ readonly remainRenewTimes: pulumi.Output<number>; /** * The renew period times of the CLB. When the value of the renewType is `AutoRenew`, this field is effective. Valid values: `1`, `2`, `3`, `6`, `12`. */ readonly renewPeriodTimes: pulumi.Output<number>; /** * The renew type of the CLB. When the value of the loadBalancerBillingType is `PrePaid`, the query returns this field. Valid values: `AutoRenew`, `ManualRenew`. */ readonly renewType: pulumi.Output<string>; /** * The slave zone ID of the CLB. */ readonly slaveZoneId: pulumi.Output<string>; /** * The id of the Subnet. */ readonly subnetId: pulumi.Output<string>; /** * Tags. */ readonly tags: pulumi.Output<outputs.clb.ClbTag[] | undefined>; /** * Whether to enable the function of clearing the timestamp of TCP/HTTP/HTTPS packets (i.e., the time stamp). value range: `on`, `off`. */ readonly timestampRemoveEnabled: pulumi.Output<string>; /** * The type of the CLB. And optional choice contains `public` or `private`. */ readonly type: pulumi.Output<string>; /** * The id of the VPC. */ readonly vpcId: pulumi.Output<string>; /** * The zone type of the CLB. And optional choice contains `single` or `active-standby`. */ readonly zoneType: pulumi.Output<string | undefined>; /** * Create a Clb 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: ClbArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Clb resources. */ export interface ClbState { /** * The address ip version of the Clb. Valid values: `ipv4`, `DualStack`. Default is `ipv4`. * When the value of this field is `DualStack`, the type of the CLB must be `private`, and suggest using a combination of resource `volcengine.vpc.Ipv6Gateway` and `volcengine.vpc.Ipv6AddressBandwidth` to achieve ipv6 public network access function. */ addressIpVersion?: pulumi.Input<string>; /** * Whether the CLB instance enables the "Allow Backend Security Group" function. value range: `on`, `off`. */ bypassSecurityGroupEnabled?: pulumi.Input<string>; /** * The description of the CLB. */ description?: pulumi.Input<string>; /** * The Eip address of the Clb. */ eipAddress?: pulumi.Input<string>; /** * The billing configuration of the EIP which automatically associated to CLB. This field is valid when the type of CLB is `public`.When the type of the CLB is `private`, suggest using a combination of resource `volcengine.eip.Address` and `volcengine.eip.Associate` to achieve public network access function. */ eipBillingConfig?: pulumi.Input<inputs.clb.ClbEipBillingConfig>; /** * The Eip ID of the Clb. */ eipId?: pulumi.Input<string>; /** * The eni address of the CLB. */ eniAddress?: pulumi.Input<string>; /** * The number of private IPv4 addresses for the CLB instance. This parameter is valid only when the type parameter is set to private and eniAddress is not passed in. */ eniAddressNum?: pulumi.Input<number>; /** * The eni ipv6 address of the Clb. */ eniIpv6Address?: pulumi.Input<string>; /** * The Ipv6 Eip ID of the Clb. */ ipv6EipId?: pulumi.Input<string>; /** * The billing type of the CLB, valid values: `PostPaid`, `PrePaid`, `PostPaidByLCU`. Default is `PostPaid`. */ loadBalancerBillingType?: pulumi.Input<string>; /** * The name of the CLB. */ loadBalancerName?: pulumi.Input<string>; /** * The specification of the CLB, the value can be `small1`, `small2`, `medium1`, `medium2`, `large1`, `large2`. When the value of the `loadBalancerBillingType` is `PostPaidByLCU`, this field does not need to be specified. */ loadBalancerSpec?: pulumi.Input<string>; /** * The master zone ID of the CLB. */ masterZoneId?: pulumi.Input<string>; /** * The reason of the console modification protection. */ modificationProtectionReason?: pulumi.Input<string>; /** * The status of the console modification protection, the value can be `NonProtection` or `ConsoleProtection`. */ modificationProtectionStatus?: pulumi.Input<string>; /** * The period of the NatGateway, the valid value range in 1~9 or 12 or 24 or 36. Default value is 12. The period unit defaults to `Month`.This field is only effective when creating a PrePaid NatGateway. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields. */ period?: pulumi.Input<number>; /** * The ProjectName of the CLB. */ projectName?: pulumi.Input<string>; /** * The region of the request. */ regionId?: pulumi.Input<string>; /** * The remain renew times of the CLB. When the value of the renewType is `AutoRenew`, this field is effective. Valid values: `-1`, `1~100`. The `-1` indicates unlimited automatic renewals. */ remainRenewTimes?: pulumi.Input<number>; /** * The renew period times of the CLB. When the value of the renewType is `AutoRenew`, this field is effective. Valid values: `1`, `2`, `3`, `6`, `12`. */ renewPeriodTimes?: pulumi.Input<number>; /** * The renew type of the CLB. When the value of the loadBalancerBillingType is `PrePaid`, the query returns this field. Valid values: `AutoRenew`, `ManualRenew`. */ renewType?: pulumi.Input<string>; /** * The slave zone ID of the CLB. */ slaveZoneId?: pulumi.Input<string>; /** * The id of the Subnet. */ subnetId?: pulumi.Input<string>; /** * Tags. */ tags?: pulumi.Input<pulumi.Input<inputs.clb.ClbTag>[]>; /** * Whether to enable the function of clearing the timestamp of TCP/HTTP/HTTPS packets (i.e., the time stamp). value range: `on`, `off`. */ timestampRemoveEnabled?: pulumi.Input<string>; /** * The type of the CLB. And optional choice contains `public` or `private`. */ type?: pulumi.Input<string>; /** * The id of the VPC. */ vpcId?: pulumi.Input<string>; /** * The zone type of the CLB. And optional choice contains `single` or `active-standby`. */ zoneType?: pulumi.Input<string>; } /** * The set of arguments for constructing a Clb resource. */ export interface ClbArgs { /** * The address ip version of the Clb. Valid values: `ipv4`, `DualStack`. Default is `ipv4`. * When the value of this field is `DualStack`, the type of the CLB must be `private`, and suggest using a combination of resource `volcengine.vpc.Ipv6Gateway` and `volcengine.vpc.Ipv6AddressBandwidth` to achieve ipv6 public network access function. */ addressIpVersion?: pulumi.Input<string>; /** * Whether the CLB instance enables the "Allow Backend Security Group" function. value range: `on`, `off`. */ bypassSecurityGroupEnabled?: pulumi.Input<string>; /** * The description of the CLB. */ description?: pulumi.Input<string>; /** * The billing configuration of the EIP which automatically associated to CLB. This field is valid when the type of CLB is `public`.When the type of the CLB is `private`, suggest using a combination of resource `volcengine.eip.Address` and `volcengine.eip.Associate` to achieve public network access function. */ eipBillingConfig?: pulumi.Input<inputs.clb.ClbEipBillingConfig>; /** * The eni address of the CLB. */ eniAddress?: pulumi.Input<string>; /** * The number of private IPv4 addresses for the CLB instance. This parameter is valid only when the type parameter is set to private and eniAddress is not passed in. */ eniAddressNum?: pulumi.Input<number>; /** * The eni ipv6 address of the Clb. */ eniIpv6Address?: pulumi.Input<string>; /** * The billing type of the CLB, valid values: `PostPaid`, `PrePaid`, `PostPaidByLCU`. Default is `PostPaid`. */ loadBalancerBillingType?: pulumi.Input<string>; /** * The name of the CLB. */ loadBalancerName?: pulumi.Input<string>; /** * The specification of the CLB, the value can be `small1`, `small2`, `medium1`, `medium2`, `large1`, `large2`. When the value of the `loadBalancerBillingType` is `PostPaidByLCU`, this field does not need to be specified. */ loadBalancerSpec?: pulumi.Input<string>; /** * The master zone ID of the CLB. */ masterZoneId?: pulumi.Input<string>; /** * The reason of the console modification protection. */ modificationProtectionReason?: pulumi.Input<string>; /** * The status of the console modification protection, the value can be `NonProtection` or `ConsoleProtection`. */ modificationProtectionStatus?: pulumi.Input<string>; /** * The period of the NatGateway, the valid value range in 1~9 or 12 or 24 or 36. Default value is 12. The period unit defaults to `Month`.This field is only effective when creating a PrePaid NatGateway. When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields. */ period?: pulumi.Input<number>; /** * The ProjectName of the CLB. */ projectName?: pulumi.Input<string>; /** * The region of the request. */ regionId?: pulumi.Input<string>; /** * The remain renew times of the CLB. When the value of the renewType is `AutoRenew`, this field is effective. Valid values: `-1`, `1~100`. The `-1` indicates unlimited automatic renewals. */ remainRenewTimes?: pulumi.Input<number>; /** * The renew period times of the CLB. When the value of the renewType is `AutoRenew`, this field is effective. Valid values: `1`, `2`, `3`, `6`, `12`. */ renewPeriodTimes?: pulumi.Input<number>; /** * The renew type of the CLB. When the value of the loadBalancerBillingType is `PrePaid`, the query returns this field. Valid values: `AutoRenew`, `ManualRenew`. */ renewType?: pulumi.Input<string>; /** * The slave zone ID of the CLB. */ slaveZoneId?: pulumi.Input<string>; /** * The id of the Subnet. */ subnetId: pulumi.Input<string>; /** * Tags. */ tags?: pulumi.Input<pulumi.Input<inputs.clb.ClbTag>[]>; /** * Whether to enable the function of clearing the timestamp of TCP/HTTP/HTTPS packets (i.e., the time stamp). value range: `on`, `off`. */ timestampRemoveEnabled?: pulumi.Input<string>; /** * The type of the CLB. And optional choice contains `public` or `private`. */ type: pulumi.Input<string>; /** * The id of the VPC. */ vpcId?: pulumi.Input<string>; /** * The zone type of the CLB. And optional choice contains `single` or `active-standby`. */ zoneType?: pulumi.Input<string>; }