HttpRouteArgs

data class HttpRouteArgs(val description: Output<String>? = null, val gateways: Output<List<String>>? = null, val hostnames: Output<List<String>>? = null, val labels: Output<Map<String, String>>? = null, val meshes: Output<List<String>>? = null, val name: Output<String>? = null, val project: Output<String>? = null, val rules: Output<List<HttpRouteRuleArgs>>? = null) : ConvertibleToJava<HttpRouteArgs>

Example Usage

Network Services Http Route Basic

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.networkservices.HttpRoute;
import com.pulumi.gcp.networkservices.HttpRouteArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new HttpRoute("default", HttpRouteArgs.builder()
.labels(Map.of("foo", "bar"))
.description("my description")
.hostnames("example")
.rules(HttpRouteRuleArgs.builder()
.matches(HttpRouteRuleMatchArgs.builder()
.queryParameters(HttpRouteRuleMatchQueryParameterArgs.builder()
.queryParameter("key")
.exactMatch("value")
.build())
.fullPathMatch("example")
.build())
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Network Services Http Route Matches And Actions

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.networkservices.HttpRoute;
import com.pulumi.gcp.networkservices.HttpRouteArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionRedirectArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionUrlRewriteArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionRetryPolicyArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionRequestMirrorPolicyArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionRequestMirrorPolicyDestinationArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionCorsPolicyArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new HttpRoute("default", HttpRouteArgs.builder()
.labels(Map.of("foo", "bar"))
.description("my description")
.hostnames("example")
.rules(HttpRouteRuleArgs.builder()
.matches(
HttpRouteRuleMatchArgs.builder()
.headers(HttpRouteRuleMatchHeaderArgs.builder()
.header("header")
.invertMatch(false)
.regexMatch("header-value")
.build())
.queryParameters(HttpRouteRuleMatchQueryParameterArgs.builder()
.queryParameter("key")
.exactMatch("value")
.build())
.prefixMatch("example")
.ignoreCase(false)
.build(),
HttpRouteRuleMatchArgs.builder()
.headers(HttpRouteRuleMatchHeaderArgs.builder()
.header("header")
.invertMatch(false)
.presentMatch(true)
.build())
.queryParameters(HttpRouteRuleMatchQueryParameterArgs.builder()
.queryParameter("key")
.regexMatch("value")
.build())
.regexMatch("example")
.ignoreCase(false)
.build(),
HttpRouteRuleMatchArgs.builder()
.headers(HttpRouteRuleMatchHeaderArgs.builder()
.header("header")
.invertMatch(false)
.presentMatch(true)
.build())
.queryParameters(HttpRouteRuleMatchQueryParameterArgs.builder()
.queryParameter("key")
.presentMatch(true)
.build())
.fullPathMatch("example")
.ignoreCase(false)
.build())
.action(HttpRouteRuleActionArgs.builder()
.redirect(HttpRouteRuleActionRedirectArgs.builder()
.hostRedirect("new-host")
.pathRedirect("new-path")
.prefixRewrite("new-prefix")
.httpsRedirect(true)
.stripQuery(true)
.portRedirect(8081)
.build())
.urlRewrite(HttpRouteRuleActionUrlRewriteArgs.builder()
.pathPrefixRewrite("new-prefix")
.hostRewrite("new-host")
.build())
.retryPolicy(HttpRouteRuleActionRetryPolicyArgs.builder()
.retryConditions("server_error")
.numRetries(1)
.perTryTimeout("1s")
.build())
.requestMirrorPolicy(HttpRouteRuleActionRequestMirrorPolicyArgs.builder()
.destination(HttpRouteRuleActionRequestMirrorPolicyDestinationArgs.builder()
.serviceName("new")
.weight(1)
.build())
.build())
.corsPolicy(HttpRouteRuleActionCorsPolicyArgs.builder()
.allowOrigins("example")
.allowMethods(
"GET",
"PUT")
.allowHeaders(
"version",
"type")
.exposeHeaders(
"version",
"type")
.maxAge("1s")
.allowCredentials(true)
.disabled(false)
.build())
.build())
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Network Services Http Route Actions

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.networkservices.HttpRoute;
import com.pulumi.gcp.networkservices.HttpRouteArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionFaultInjectionPolicyArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionFaultInjectionPolicyDelayArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionFaultInjectionPolicyAbortArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionUrlRewriteArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionRetryPolicyArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionRequestMirrorPolicyArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionRequestMirrorPolicyDestinationArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionCorsPolicyArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionRequestHeaderModifierArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleActionResponseHeaderModifierArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new HttpRoute("default", HttpRouteArgs.builder()
.labels(Map.of("foo", "bar"))
.description("my description")
.hostnames("example")
.rules(HttpRouteRuleArgs.builder()
.action(HttpRouteRuleActionArgs.builder()
.faultInjectionPolicy(HttpRouteRuleActionFaultInjectionPolicyArgs.builder()
.delay(HttpRouteRuleActionFaultInjectionPolicyDelayArgs.builder()
.fixedDelay("1s")
.percentage(1)
.build())
.abort(HttpRouteRuleActionFaultInjectionPolicyAbortArgs.builder()
.httpStatus(500)
.percentage(1)
.build())
.build())
.urlRewrite(HttpRouteRuleActionUrlRewriteArgs.builder()
.pathPrefixRewrite("new-prefix")
.hostRewrite("new-host")
.build())
.retryPolicy(HttpRouteRuleActionRetryPolicyArgs.builder()
.retryConditions("server_error")
.numRetries(1)
.perTryTimeout("1s")
.build())
.requestMirrorPolicy(HttpRouteRuleActionRequestMirrorPolicyArgs.builder()
.destination(HttpRouteRuleActionRequestMirrorPolicyDestinationArgs.builder()
.serviceName("new")
.weight(1)
.build())
.build())
.corsPolicy(HttpRouteRuleActionCorsPolicyArgs.builder()
.allowOrigins("example")
.allowMethods(
"GET",
"PUT")
.allowHeaders(
"version",
"type")
.exposeHeaders(
"version",
"type")
.maxAge("1s")
.allowCredentials(true)
.disabled(false)
.build())
.requestHeaderModifier(HttpRouteRuleActionRequestHeaderModifierArgs.builder()
.set(Map.ofEntries(
Map.entry("version", "1"),
Map.entry("type", "json")
))
.add(Map.of("minor-version", "1"))
.removes("arg")
.build())
.responseHeaderModifier(HttpRouteRuleActionResponseHeaderModifierArgs.builder()
.set(Map.ofEntries(
Map.entry("version", "1"),
Map.entry("type", "json")
))
.add(Map.of("minor-version", "1"))
.removes("removearg")
.build())
.build())
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Network Services Http Route Mesh Basic

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.networkservices.Mesh;
import com.pulumi.gcp.networkservices.MeshArgs;
import com.pulumi.gcp.networkservices.HttpRoute;
import com.pulumi.gcp.networkservices.HttpRouteArgs;
import com.pulumi.gcp.networkservices.inputs.HttpRouteRuleArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var defaultMesh = new Mesh("defaultMesh", MeshArgs.builder()
.labels(Map.of("foo", "bar"))
.description("my description")
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var defaultHttpRoute = new HttpRoute("defaultHttpRoute", HttpRouteArgs.builder()
.labels(Map.of("foo", "bar"))
.description("my description")
.hostnames("example")
.meshes(defaultMesh.id())
.rules(HttpRouteRuleArgs.builder()
.matches(HttpRouteRuleMatchArgs.builder()
.queryParameters(HttpRouteRuleMatchQueryParameterArgs.builder()
.queryParameter("key")
.exactMatch("value")
.build())
.fullPathMatch("example")
.build())
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Import

HttpRoute can be imported using any of these accepted formats

$ pulumi import gcp:networkservices/httpRoute:HttpRoute default projects/{{project}}/locations/global/httpRoutes/{{name}}
$ pulumi import gcp:networkservices/httpRoute:HttpRoute default {{project}}/{{name}}
$ pulumi import gcp:networkservices/httpRoute:HttpRoute default {{name}}

Constructors

Link copied to clipboard
constructor(description: Output<String>? = null, gateways: Output<List<String>>? = null, hostnames: Output<List<String>>? = null, labels: Output<Map<String, String>>? = null, meshes: Output<List<String>>? = null, name: Output<String>? = null, project: Output<String>? = null, rules: Output<List<HttpRouteRuleArgs>>? = null)

Properties

Link copied to clipboard
val description: Output<String>? = null

A free-text description of the resource. Max length 1024 characters.

Link copied to clipboard
val gateways: Output<List<String>>? = null

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/

Link copied to clipboard
val hostnames: Output<List<String>>? = null

Set of hosts that should match against the HTTP host header to select a HttpRoute to process the request.

Link copied to clipboard
val labels: Output<Map<String, String>>? = null

Set of label tags associated with the HttpRoute resource.

Link copied to clipboard
val meshes: Output<List<String>>? = null

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.

Link copied to clipboard
val name: Output<String>? = null

Name of the HttpRoute resource.

Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard
val rules: Output<List<HttpRouteRuleArgs>>? = null

Rules that define how traffic is routed and handled. Structure is documented below. //

Functions

Link copied to clipboard
open override fun toJava(): HttpRouteArgs