import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../../types/input"; import * as outputs from "../../types/output"; /** * Creates a new HttpRoute in a given project and location. */ export declare class HttpRoute extends pulumi.CustomResource { /** * Get an existing HttpRoute 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 opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): HttpRoute; /** * Returns true if the given object is an instance of HttpRoute. 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 HttpRoute; /** * The timestamp when the resource was created. */ readonly createTime: pulumi.Output; /** * Optional. A free-text description of the resource. Max length 1024 characters. */ readonly description: pulumi.Output; /** * Optional. Gateways defines a list of gateways this HttpRoute 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/` */ readonly gateways: pulumi.Output; /** * Hostnames define a set of hosts that should match against the HTTP host header to select a HttpRoute to process the request. Hostname is the fully qualified domain name of a network host, as defined by RFC 1123 with the exception that: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be "precise" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or "wildcard", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateways must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same Mesh (or Gateways under the same scope), it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`. */ readonly hostnames: pulumi.Output; /** * Required. Short name of the HttpRoute resource to be created. */ readonly httpRouteId: pulumi.Output; /** * Optional. Set of label tags associated with the HttpRoute resource. */ readonly labels: pulumi.Output<{ [key: string]: string; }>; readonly location: pulumi.Output; /** * Optional. Meshes defines a list of meshes this HttpRoute 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/` The attached Mesh should be of a type SIDECAR */ readonly meshes: pulumi.Output; /** * Name of the HttpRoute resource. It matches pattern `projects/*/locations/global/httpRoutes/http_route_name>`. */ readonly name: pulumi.Output; readonly project: pulumi.Output; /** * Rules that define how traffic is routed and handled. Rules will be matched sequentially based on the RouteMatch specified for the rule. */ readonly rules: pulumi.Output; /** * Server-defined URL of this resource */ readonly selfLink: pulumi.Output; /** * The timestamp when the resource was updated. */ readonly updateTime: pulumi.Output; /** * Create a HttpRoute 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: HttpRouteArgs, opts?: pulumi.CustomResourceOptions); } /** * The set of arguments for constructing a HttpRoute resource. */ export interface HttpRouteArgs { /** * Optional. A free-text description of the resource. Max length 1024 characters. */ description?: pulumi.Input; /** * Optional. Gateways defines a list of gateways this HttpRoute 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/` */ gateways?: pulumi.Input[]>; /** * Hostnames define a set of hosts that should match against the HTTP host header to select a HttpRoute to process the request. Hostname is the fully qualified domain name of a network host, as defined by RFC 1123 with the exception that: - IPs are not allowed. - A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be "precise" which is a domain name without the terminating dot of a network host (e.g. `foo.example.com`) or "wildcard", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. The routes associated with a Mesh or Gateways must have unique hostnames. If you attempt to attach multiple routes with conflicting hostnames, the configuration will be rejected. For example, while it is acceptable for routes for the hostnames `*.foo.bar.com` and `*.bar.com` to be associated with the same Mesh (or Gateways under the same scope), it is not possible to associate two routes both with `*.bar.com` or both with `bar.com`. */ hostnames: pulumi.Input[]>; /** * Required. Short name of the HttpRoute resource to be created. */ httpRouteId: pulumi.Input; /** * Optional. Set of label tags associated with the HttpRoute resource. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; location?: pulumi.Input; /** * Optional. Meshes defines a list of meshes this HttpRoute 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/` The attached Mesh should be of a type SIDECAR */ meshes?: pulumi.Input[]>; /** * Name of the HttpRoute resource. It matches pattern `projects/*/locations/global/httpRoutes/http_route_name>`. */ name?: pulumi.Input; project?: pulumi.Input; /** * Rules that define how traffic is routed and handled. Rules will be matched sequentially based on the RouteMatch specified for the rule. */ rules: pulumi.Input[]>; }