@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
293 lines (292 loc) • 10.2 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* TlsRoute defines how traffic should be routed based on SNI and other matching L3 attributes.
*
* To get more information about TlsRoute, see:
*
* * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.tlsRoutes)
*
* ## Example Usage
*
* ### Network Services Tls Route Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck("default", {
* name: "backend-service-health-check",
* requestPath: "/",
* checkIntervalSec: 1,
* timeoutSec: 1,
* });
* const _default = new gcp.compute.BackendService("default", {
* name: "my-backend-service",
* healthChecks: defaultHttpHealthCheck.id,
* });
* const defaultTlsRoute = new gcp.networkservices.TlsRoute("default", {
* name: "my-tls-route",
* description: "my description",
* rules: [{
* matches: [{
* sniHosts: ["example.com"],
* alpns: ["http/1.1"],
* }],
* action: {
* destinations: [{
* serviceName: _default.id,
* weight: 1,
* }],
* },
* }],
* });
* ```
* ### Network Services Tls Route Mesh Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck("default", {
* name: "backend-service-health-check",
* requestPath: "/",
* checkIntervalSec: 1,
* timeoutSec: 1,
* });
* const _default = new gcp.compute.BackendService("default", {
* name: "my-backend-service",
* healthChecks: defaultHttpHealthCheck.id,
* });
* const defaultMesh = new gcp.networkservices.Mesh("default", {
* name: "my-tls-route",
* labels: {
* foo: "bar",
* },
* description: "my description",
* });
* const defaultTlsRoute = new gcp.networkservices.TlsRoute("default", {
* name: "my-tls-route",
* description: "my description",
* meshes: [defaultMesh.id],
* rules: [{
* matches: [{
* sniHosts: ["example.com"],
* alpns: ["http/1.1"],
* }],
* action: {
* destinations: [{
* serviceName: _default.id,
* weight: 1,
* }],
* },
* }],
* });
* ```
* ### Network Services Tls Route Gateway Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck("default", {
* name: "backend-service-health-check",
* requestPath: "/",
* checkIntervalSec: 1,
* timeoutSec: 1,
* });
* const _default = new gcp.compute.BackendService("default", {
* name: "my-backend-service",
* healthChecks: defaultHttpHealthCheck.id,
* });
* const defaultGateway = new gcp.networkservices.Gateway("default", {
* name: "my-tls-route",
* labels: {
* foo: "bar",
* },
* description: "my description",
* scope: "my-scope",
* type: "OPEN_MESH",
* ports: [443],
* });
* const defaultTlsRoute = new gcp.networkservices.TlsRoute("default", {
* name: "my-tls-route",
* description: "my description",
* gateways: [defaultGateway.id],
* rules: [{
* matches: [{
* sniHosts: ["example.com"],
* alpns: ["http/1.1"],
* }],
* action: {
* destinations: [{
* serviceName: _default.id,
* weight: 1,
* }],
* },
* }],
* });
* ```
*
* ## Import
*
* TlsRoute can be imported using any of these accepted formats:
*
* * `projects/{{project}}/locations/global/tlsRoutes/{{name}}`
*
* * `{{project}}/{{name}}`
*
* * `{{name}}`
*
* When using the `pulumi import` command, TlsRoute can be imported using one of the formats above. For example:
*
* ```sh
* $ pulumi import gcp:networkservices/tlsRoute:TlsRoute default projects/{{project}}/locations/global/tlsRoutes/{{name}}
* ```
*
* ```sh
* $ pulumi import gcp:networkservices/tlsRoute:TlsRoute default {{project}}/{{name}}
* ```
*
* ```sh
* $ pulumi import gcp:networkservices/tlsRoute:TlsRoute default {{name}}
* ```
*/
export declare class TlsRoute extends pulumi.CustomResource {
/**
* Get an existing TlsRoute 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?: TlsRouteState, opts?: pulumi.CustomResourceOptions): TlsRoute;
/**
* Returns true if the given object is an instance of TlsRoute. 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 TlsRoute;
/**
* Time the TlsRoute was created in UTC.
*/
readonly createTime: pulumi.Output<string>;
/**
* A free-text description of the resource. Max length 1024 characters.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* Gateways defines a list of gateways this TlsRoute is attached to, as one of the routing rules to route the requests
* served by the gateway. Each gateway reference should match the pattern:
* projects/*/locations/global/gateways/<gateway_name>
*/
readonly gateways: pulumi.Output<string[] | undefined>;
/**
* Meshes defines a list of meshes this TlsRoute is attached to, as one of the routing rules to route the requests served
* by the mesh. Each mesh reference should match the pattern: projects/*/locations/global/meshes/<mesh_name> The attached
* Mesh should be of a type SIDECAR
*/
readonly meshes: pulumi.Output<string[] | undefined>;
/**
* Name of the TlsRoute resource.
*/
readonly name: pulumi.Output<string>;
readonly project: pulumi.Output<string>;
/**
* Rules that define how traffic is routed and handled.
* Structure is documented below.
*/
readonly rules: pulumi.Output<outputs.networkservices.TlsRouteRule[]>;
/**
* Server-defined URL of this resource.
*/
readonly selfLink: pulumi.Output<string>;
/**
* Time the TlsRoute was updated in UTC.
*/
readonly updateTime: pulumi.Output<string>;
/**
* Create a TlsRoute 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: TlsRouteArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering TlsRoute resources.
*/
export interface TlsRouteState {
/**
* Time the TlsRoute was created in UTC.
*/
createTime?: pulumi.Input<string>;
/**
* A free-text description of the resource. Max length 1024 characters.
*/
description?: pulumi.Input<string>;
/**
* Gateways defines a list of gateways this TlsRoute is attached to, as one of the routing rules to route the requests
* served by the gateway. Each gateway reference should match the pattern:
* projects/*/locations/global/gateways/<gateway_name>
*/
gateways?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Meshes defines a list of meshes this TlsRoute is attached to, as one of the routing rules to route the requests served
* by the mesh. Each mesh reference should match the pattern: projects/*/locations/global/meshes/<mesh_name> The attached
* Mesh should be of a type SIDECAR
*/
meshes?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Name of the TlsRoute resource.
*/
name?: pulumi.Input<string>;
project?: pulumi.Input<string>;
/**
* Rules that define how traffic is routed and handled.
* Structure is documented below.
*/
rules?: pulumi.Input<pulumi.Input<inputs.networkservices.TlsRouteRule>[]>;
/**
* Server-defined URL of this resource.
*/
selfLink?: pulumi.Input<string>;
/**
* Time the TlsRoute was updated in UTC.
*/
updateTime?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a TlsRoute resource.
*/
export interface TlsRouteArgs {
/**
* A free-text description of the resource. Max length 1024 characters.
*/
description?: pulumi.Input<string>;
/**
* Gateways defines a list of gateways this TlsRoute is attached to, as one of the routing rules to route the requests
* served by the gateway. Each gateway reference should match the pattern:
* projects/*/locations/global/gateways/<gateway_name>
*/
gateways?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Meshes defines a list of meshes this TlsRoute is attached to, as one of the routing rules to route the requests served
* by the mesh. Each mesh reference should match the pattern: projects/*/locations/global/meshes/<mesh_name> The attached
* Mesh should be of a type SIDECAR
*/
meshes?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Name of the TlsRoute resource.
*/
name?: pulumi.Input<string>;
project?: pulumi.Input<string>;
/**
* Rules that define how traffic is routed and handled.
* Structure is documented below.
*/
rules: pulumi.Input<pulumi.Input<inputs.networkservices.TlsRouteRule>[]>;
}