@huaweicloudos/pulumi
Version:
A Pulumi package for creating and managing Huaweicloud cloud resources.
388 lines (387 loc) • 16 kB
TypeScript
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>;
}