UNPKG

@huaweicloudos/pulumi

Version:

A Pulumi package for creating and managing Huaweicloud cloud resources.

388 lines (387 loc) 16 kB
import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "../types"; /** * Manages a VPC endpoint service resource within HuaweiCloud. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const config = new pulumi.Config(); * const vpcId = config.requireObject("vpcId"); * const vmPort = config.requireObject("vmPort"); * const demo = new huaweicloud.vpcep.Service("demo", { * serverType: "VM", * vpcId: vpcId, * portId: vmPort, * description: "test description", * portMappings: [{ * servicePort: 8080, * terminalPort: 80, * }], * }); * ``` * * ## Import * * VPC endpoint services can be imported using the `id`, e.g. bash * * ```sh * $ pulumi import huaweicloud:Vpcep/service:Service test_service <id> * ``` */ export declare class Service extends pulumi.CustomResource { /** * Get an existing Service 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?: ServiceState, opts?: pulumi.CustomResourceOptions): Service; /** * Returns true if the given object is an instance of Service. 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 Service; /** * Specifies whether connection approval is required. The default value is false. */ readonly approval: pulumi.Output<boolean>; /** * An array of VPC endpoints connect to the VPC endpoint service. Structure is documented below. */ readonly connections: pulumi.Output<outputs.Vpcep.ServiceConnection[]>; /** * Specifies the description of the VPC endpoint service. */ readonly description: pulumi.Output<string>; /** * Specifies whether the VPC endpoint policy is enabled. Defaults to **false**. * Changing this creates a new VPC endpoint service resource. */ readonly enablePolicy: pulumi.Output<boolean>; /** * The IPv4 address or domain name of the server in the interface type VLAN scenario. */ readonly ipAddress: pulumi.Output<string>; /** * Specifies the IP version of the VPC endpoint service. * The valid values are as follows: * + **ipv4** (Default value) * + **ipv6** */ readonly ipVersion: pulumi.Output<string>; /** * Specifies the name of the VPC endpoint service. The value contains a maximum of 16 * characters, including letters, digits, underscores (_), and hyphens (-). */ readonly name: pulumi.Output<string>; /** * Specifies the list of organizations to access the VPC endpoint service. * The record is in the `organizations:orgPath::org_path` format, while `organizations:orgPath::*` allows all users in * organizations to access the VPC endpoint service. */ readonly organizationPermissions: pulumi.Output<string[]>; /** * Specifies the list of accounts to access the VPC endpoint service. * The record is in the `iam:domain::domain_id` format, while `*` allows all users to access the VPC endpoint service. */ readonly permissions: pulumi.Output<string[] | undefined>; /** * The dedicated cluster ID associated with the VPC endpoint service. */ readonly poolId: pulumi.Output<string>; /** * Specifies the ID for identifying the backend resource of the VPC endpoint service. * + If the `serverType` is **VM**, the value is the NIC ID of the ECS where the VPC endpoint service is deployed. * + If the `serverType` is **LB**, the value is the ID of the port bound to the private IP address of the load * balancer. */ readonly portId: pulumi.Output<string>; /** * Specifies the port mappings opened to the VPC endpoint service. Structure is * documented below. */ readonly portMappings: pulumi.Output<outputs.Vpcep.ServicePortMapping[]>; /** * The region in which to create the VPC endpoint service. If omitted, the * provider-level region will be used. Changing this creates a new VPC endpoint service resource. */ readonly region: pulumi.Output<string>; /** * Specifies the backend resource type. The valid values are as follows: * + **VM**: Indicates the cloud server, which can be used as a server. * + **LB**: Indicates the shared load balancer, which is applicable to services with high access traffic and services * that require high reliability and disaster recovery. */ readonly serverType: pulumi.Output<string>; /** * The full name of the VPC endpoint service in the format: *region.name.id* or *region.id*. */ readonly serviceName: pulumi.Output<string>; /** * The type of the VPC endpoint service. */ readonly serviceType: pulumi.Output<string | undefined>; /** * Specifies the network ID of any subnet within the VPC used to create * the VPC endpoint service. */ readonly snatNetworkId: pulumi.Output<string>; /** * The connection status of the VPC endpoint. */ readonly status: pulumi.Output<string>; /** * The key/value pairs to associate with the VPC endpoint service. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Specifies whether to transfer client information (such as source IP address, * source port number and packet ID) to the server. * The valid values are as follows: * + **close**: Neither **TCP TOA** nor **Proxy Protocol** information is carried. Default value. * + **toa_open**: **TCP TOA** information is carried. * + **proxy_open**: **Proxy Protocol** information is carried. * + **open**: Both **TCP TOA** and **Proxy Protocol** information are carried. */ readonly tcpProxy: pulumi.Output<string>; /** * Specifies the ID of the VPC to which the backend resource of the VPC endpoint * service belongs. Changing this creates a new VPC endpoint service. */ readonly vpcId: pulumi.Output<string>; /** * Create a Service 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: ServiceArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Service resources. */ export interface ServiceState { /** * Specifies whether connection approval is required. The default value is false. */ approval?: pulumi.Input<boolean>; /** * An array of VPC endpoints connect to the VPC endpoint service. Structure is documented below. */ connections?: pulumi.Input<pulumi.Input<inputs.Vpcep.ServiceConnection>[]>; /** * Specifies the description of the VPC endpoint service. */ description?: pulumi.Input<string>; /** * Specifies whether the VPC endpoint policy is enabled. Defaults to **false**. * Changing this creates a new VPC endpoint service resource. */ enablePolicy?: pulumi.Input<boolean>; /** * The IPv4 address or domain name of the server in the interface type VLAN scenario. */ ipAddress?: pulumi.Input<string>; /** * Specifies the IP version of the VPC endpoint service. * The valid values are as follows: * + **ipv4** (Default value) * + **ipv6** */ ipVersion?: pulumi.Input<string>; /** * Specifies the name of the VPC endpoint service. The value contains a maximum of 16 * characters, including letters, digits, underscores (_), and hyphens (-). */ name?: pulumi.Input<string>; /** * Specifies the list of organizations to access the VPC endpoint service. * The record is in the `organizations:orgPath::org_path` format, while `organizations:orgPath::*` allows all users in * organizations to access the VPC endpoint service. */ organizationPermissions?: pulumi.Input<pulumi.Input<string>[]>; /** * Specifies the list of accounts to access the VPC endpoint service. * The record is in the `iam:domain::domain_id` format, while `*` allows all users to access the VPC endpoint service. */ permissions?: pulumi.Input<pulumi.Input<string>[]>; /** * The dedicated cluster ID associated with the VPC endpoint service. */ poolId?: pulumi.Input<string>; /** * Specifies the ID for identifying the backend resource of the VPC endpoint service. * + If the `serverType` is **VM**, the value is the NIC ID of the ECS where the VPC endpoint service is deployed. * + If the `serverType` is **LB**, the value is the ID of the port bound to the private IP address of the load * balancer. */ portId?: pulumi.Input<string>; /** * Specifies the port mappings opened to the VPC endpoint service. Structure is * documented below. */ portMappings?: pulumi.Input<pulumi.Input<inputs.Vpcep.ServicePortMapping>[]>; /** * The region in which to create the VPC endpoint service. If omitted, the * provider-level region will be used. Changing this creates a new VPC endpoint service resource. */ region?: pulumi.Input<string>; /** * Specifies the backend resource type. The valid values are as follows: * + **VM**: Indicates the cloud server, which can be used as a server. * + **LB**: Indicates the shared load balancer, which is applicable to services with high access traffic and services * that require high reliability and disaster recovery. */ serverType?: pulumi.Input<string>; /** * The full name of the VPC endpoint service in the format: *region.name.id* or *region.id*. */ serviceName?: pulumi.Input<string>; /** * The type of the VPC endpoint service. */ serviceType?: pulumi.Input<string>; /** * Specifies the network ID of any subnet within the VPC used to create * the VPC endpoint service. */ snatNetworkId?: pulumi.Input<string>; /** * The connection status of the VPC endpoint. */ status?: pulumi.Input<string>; /** * The key/value pairs to associate with the VPC endpoint service. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Specifies whether to transfer client information (such as source IP address, * source port number and packet ID) to the server. * The valid values are as follows: * + **close**: Neither **TCP TOA** nor **Proxy Protocol** information is carried. Default value. * + **toa_open**: **TCP TOA** information is carried. * + **proxy_open**: **Proxy Protocol** information is carried. * + **open**: Both **TCP TOA** and **Proxy Protocol** information are carried. */ tcpProxy?: pulumi.Input<string>; /** * Specifies the ID of the VPC to which the backend resource of the VPC endpoint * service belongs. Changing this creates a new VPC endpoint service. */ vpcId?: pulumi.Input<string>; } /** * The set of arguments for constructing a Service resource. */ export interface ServiceArgs { /** * Specifies whether connection approval is required. The default value is false. */ approval?: pulumi.Input<boolean>; /** * Specifies the description of the VPC endpoint service. */ description?: pulumi.Input<string>; /** * Specifies whether the VPC endpoint policy is enabled. Defaults to **false**. * Changing this creates a new VPC endpoint service resource. */ enablePolicy?: pulumi.Input<boolean>; /** * The IPv4 address or domain name of the server in the interface type VLAN scenario. */ ipAddress?: pulumi.Input<string>; /** * Specifies the IP version of the VPC endpoint service. * The valid values are as follows: * + **ipv4** (Default value) * + **ipv6** */ ipVersion?: pulumi.Input<string>; /** * Specifies the name of the VPC endpoint service. The value contains a maximum of 16 * characters, including letters, digits, underscores (_), and hyphens (-). */ name?: pulumi.Input<string>; /** * Specifies the list of organizations to access the VPC endpoint service. * The record is in the `organizations:orgPath::org_path` format, while `organizations:orgPath::*` allows all users in * organizations to access the VPC endpoint service. */ organizationPermissions?: pulumi.Input<pulumi.Input<string>[]>; /** * Specifies the list of accounts to access the VPC endpoint service. * The record is in the `iam:domain::domain_id` format, while `*` allows all users to access the VPC endpoint service. */ permissions?: pulumi.Input<pulumi.Input<string>[]>; /** * The dedicated cluster ID associated with the VPC endpoint service. */ poolId?: pulumi.Input<string>; /** * Specifies the ID for identifying the backend resource of the VPC endpoint service. * + If the `serverType` is **VM**, the value is the NIC ID of the ECS where the VPC endpoint service is deployed. * + If the `serverType` is **LB**, the value is the ID of the port bound to the private IP address of the load * balancer. */ portId: pulumi.Input<string>; /** * Specifies the port mappings opened to the VPC endpoint service. Structure is * documented below. */ portMappings: pulumi.Input<pulumi.Input<inputs.Vpcep.ServicePortMapping>[]>; /** * The region in which to create the VPC endpoint service. If omitted, the * provider-level region will be used. Changing this creates a new VPC endpoint service resource. */ region?: pulumi.Input<string>; /** * Specifies the backend resource type. The valid values are as follows: * + **VM**: Indicates the cloud server, which can be used as a server. * + **LB**: Indicates the shared load balancer, which is applicable to services with high access traffic and services * that require high reliability and disaster recovery. */ serverType: pulumi.Input<string>; /** * The type of the VPC endpoint service. */ serviceType?: pulumi.Input<string>; /** * Specifies the network ID of any subnet within the VPC used to create * the VPC endpoint service. */ snatNetworkId?: pulumi.Input<string>; /** * The key/value pairs to associate with the VPC endpoint service. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Specifies whether to transfer client information (such as source IP address, * source port number and packet ID) to the server. * The valid values are as follows: * + **close**: Neither **TCP TOA** nor **Proxy Protocol** information is carried. Default value. * + **toa_open**: **TCP TOA** information is carried. * + **proxy_open**: **Proxy Protocol** information is carried. * + **open**: Both **TCP TOA** and **Proxy Protocol** information are carried. */ tcpProxy?: pulumi.Input<string>; /** * Specifies the ID of the VPC to which the backend resource of the VPC endpoint * service belongs. Changing this creates a new VPC endpoint service. */ vpcId: pulumi.Input<string>; }