StageArgs

data class StageArgs(val accessLogSettings: Output<StageAccessLogSettingsArgs>? = null, val cacheClusterEnabled: Output<Boolean>? = null, val cacheClusterSize: Output<String>? = null, val canarySettings: Output<StageCanarySettingsArgs>? = null, val clientCertificateId: Output<String>? = null, val deployment: Output<String>? = null, val description: Output<String>? = null, val documentationVersion: Output<String>? = null, val restApi: Output<String>? = null, val stageName: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val variables: Output<Map<String, String>>? = null, val xrayTracingEnabled: Output<Boolean>? = null) : ConvertibleToJava<StageArgs>

/* Manages an API Gateway Stage. A stage is a named reference to a deployment, which can be done via the aws.apigateway.Deployment resource. Stages can be optionally managed further with the aws.apigateway.BasePathMapping resource, aws.apigateway.DomainName resource, and aws_api_method_settings resource. For more information, see the API Gateway Developer Guide.

Example Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.apigateway.RestApi;
import com.pulumi.aws.apigateway.RestApiArgs;
import com.pulumi.aws.apigateway.Deployment;
import com.pulumi.aws.apigateway.DeploymentArgs;
import com.pulumi.aws.apigateway.Stage;
import com.pulumi.aws.apigateway.StageArgs;
import com.pulumi.aws.apigateway.MethodSettings;
import com.pulumi.aws.apigateway.MethodSettingsArgs;
import com.pulumi.aws.apigateway.inputs.MethodSettingsSettingsArgs;
import static com.pulumi.codegen.internal.Serialization.*;
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 exampleRestApi = new RestApi("exampleRestApi", RestApiArgs.builder()
.body(serializeJson(
jsonObject(
jsonProperty("openapi", "3.0.1"),
jsonProperty("info", jsonObject(
jsonProperty("title", "example"),
jsonProperty("version", "1.0")
)),
jsonProperty("paths", jsonObject(
jsonProperty("/path1", jsonObject(
jsonProperty("get", jsonObject(
jsonProperty("x-amazon-apigateway-integration", jsonObject(
jsonProperty("httpMethod", "GET"),
jsonProperty("payloadFormatVersion", "1.0"),
jsonProperty("type", "HTTP_PROXY"),
jsonProperty("uri", "https://ip-ranges.amazonaws.com/ip-ranges.json")
))
))
))
))
)))
.build());
var exampleDeployment = new Deployment("exampleDeployment", DeploymentArgs.builder()
.restApi(exampleRestApi.id())
.triggers(Map.of("redeployment", exampleRestApi.body().applyValue(body -> serializeJson(
body)).applyValue(toJSON -> computeSHA1(toJSON))))
.build());
var exampleStage = new Stage("exampleStage", StageArgs.builder()
.deployment(exampleDeployment.id())
.restApi(exampleRestApi.id())
.stageName("example")
.build());
var exampleMethodSettings = new MethodSettings("exampleMethodSettings", MethodSettingsArgs.builder()
.restApi(exampleRestApi.id())
.stageName(exampleStage.stageName())
.methodPath("*/*")
.settings(MethodSettingsSettingsArgs.builder()
.metricsEnabled(true)
.loggingLevel("INFO")
.build())
.build());
}
}

Managing the API Logging CloudWatch Log Group

API Gateway provides the ability to enable CloudWatch API logging. To manage the CloudWatch Log Group when this feature is enabled, the aws.cloudwatch.LogGroup resource can be used where the name matches the API Gateway naming convention. If the CloudWatch Log Group previously exists, import the aws.cloudwatch.LogGroup resource into Pulumi as a one time operation. You can recreate the environment without import.

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.apigateway.RestApi;
import com.pulumi.aws.cloudwatch.LogGroup;
import com.pulumi.aws.cloudwatch.LogGroupArgs;
import com.pulumi.aws.apigateway.Stage;
import com.pulumi.aws.apigateway.StageArgs;
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) {
final var config = ctx.config();
final var stageName = config.get("stageName").orElse("example");
var exampleRestApi = new RestApi("exampleRestApi");
var exampleLogGroup = new LogGroup("exampleLogGroup", LogGroupArgs.builder()
.retentionInDays(7)
.build());
var exampleStage = new Stage("exampleStage", StageArgs.builder()
.stageName(stageName)
.build(), CustomResourceOptions.builder()
.dependsOn(exampleLogGroup)
.build());
}
}

Import

Using pulumi import, import aws_api_gateway_stage using REST-API-ID/STAGE-NAME. For example:

$ pulumi import aws:apigateway/stage:Stage example 12345abcde/example

Constructors

Link copied to clipboard
fun StageArgs(accessLogSettings: Output<StageAccessLogSettingsArgs>? = null, cacheClusterEnabled: Output<Boolean>? = null, cacheClusterSize: Output<String>? = null, canarySettings: Output<StageCanarySettingsArgs>? = null, clientCertificateId: Output<String>? = null, deployment: Output<String>? = null, description: Output<String>? = null, documentationVersion: Output<String>? = null, restApi: Output<String>? = null, stageName: Output<String>? = null, tags: Output<Map<String, String>>? = null, variables: Output<Map<String, String>>? = null, xrayTracingEnabled: Output<Boolean>? = null)

Functions

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

Properties

Link copied to clipboard

Enables access logs for the API stage. See Access Log Settings below.

Link copied to clipboard
val cacheClusterEnabled: Output<Boolean>? = null

Whether a cache cluster is enabled for the stage

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

Size of the cache cluster for the stage, if enabled. Allowed values include 0.5, 1.6, 6.1, 13.5, 28.4, 58.2, 118 and 237.

Link copied to clipboard

Configuration settings of a canary deployment. See Canary Settings below.

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

Identifier of a client certificate for the stage.

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

ID of the deployment that the stage points to

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

Description of the stage.

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

Version of the associated API documentation

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

ID of the associated REST API

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

Name of the stage

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

Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

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

Map that defines the stage variables

Link copied to clipboard
val xrayTracingEnabled: Output<Boolean>? = null

Whether active tracing with X-ray is enabled. Defaults to false.