Try AWS Native preview for resources not in the classic version.
aws.apigateway.MethodSettings
Explore with Pulumi AI
Try AWS Native preview for resources not in the classic version.
Manages API Gateway Stage Method Settings. For example, CloudWatch logging and metrics.
NOTE: We recommend using this resource in conjunction with the
aws.apigateway.Stage
resource instead of a stage managed by theaws.apigateway.Deployment
resource optionalstage_name
argument. Stages managed by theaws.apigateway.Deployment
resource are recreated on redeployment and this resource will require a second apply to recreate the method settings.
Example Usage
Basic Usage
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
private static string ComputeSHA1(string input) {
return BitConverter.ToString(
SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(input))
).Replace("-","").ToLowerInvariant());
}
return await Deployment.RunAsync(() =>
{
var exampleRestApi = new Aws.ApiGateway.RestApi("exampleRestApi", new()
{
Body = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["openapi"] = "3.0.1",
["info"] = new Dictionary<string, object?>
{
["title"] = "example",
["version"] = "1.0",
},
["paths"] = new Dictionary<string, object?>
{
["/path1"] = new Dictionary<string, object?>
{
["get"] = new Dictionary<string, object?>
{
["x-amazon-apigateway-integration"] = new Dictionary<string, object?>
{
["httpMethod"] = "GET",
["payloadFormatVersion"] = "1.0",
["type"] = "HTTP_PROXY",
["uri"] = "https://ip-ranges.amazonaws.com/ip-ranges.json",
},
},
},
},
}),
});
var exampleDeployment = new Aws.ApiGateway.Deployment("exampleDeployment", new()
{
RestApi = exampleRestApi.Id,
Triggers =
{
{ "redeployment", exampleRestApi.Body.Apply(body => JsonSerializer.Serialize(body)).Apply(toJSON => ComputeSHA1(toJSON)) },
},
});
var exampleStage = new Aws.ApiGateway.Stage("exampleStage", new()
{
Deployment = exampleDeployment.Id,
RestApi = exampleRestApi.Id,
StageName = "example",
});
var all = new Aws.ApiGateway.MethodSettings("all", new()
{
RestApi = exampleRestApi.Id,
StageName = exampleStage.StageName,
MethodPath = "*/*",
Settings = new Aws.ApiGateway.Inputs.MethodSettingsSettingsArgs
{
MetricsEnabled = true,
LoggingLevel = "ERROR",
},
});
var pathSpecific = new Aws.ApiGateway.MethodSettings("pathSpecific", new()
{
RestApi = exampleRestApi.Id,
StageName = exampleStage.StageName,
MethodPath = "path1/GET",
Settings = new Aws.ApiGateway.Inputs.MethodSettingsSettingsArgs
{
MetricsEnabled = true,
LoggingLevel = "INFO",
},
});
});
package main
import (
"crypto/sha1"
"encoding/json"
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func sha1Hash(input string) string {
hash := sha1.Sum([]byte(input))
return hex.EncodeToString(hash[:])
}
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
tmpJSON0, err := json.Marshal(map[string]interface{}{
"openapi": "3.0.1",
"info": map[string]interface{}{
"title": "example",
"version": "1.0",
},
"paths": map[string]interface{}{
"/path1": map[string]interface{}{
"get": map[string]interface{}{
"x-amazon-apigateway-integration": map[string]interface{}{
"httpMethod": "GET",
"payloadFormatVersion": "1.0",
"type": "HTTP_PROXY",
"uri": "https://ip-ranges.amazonaws.com/ip-ranges.json",
},
},
},
},
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
exampleRestApi, err := apigateway.NewRestApi(ctx, "exampleRestApi", &apigateway.RestApiArgs{
Body: pulumi.String(json0),
})
if err != nil {
return err
}
exampleDeployment, err := apigateway.NewDeployment(ctx, "exampleDeployment", &apigateway.DeploymentArgs{
RestApi: exampleRestApi.ID(),
Triggers: pulumi.StringMap{
"redeployment": exampleRestApi.Body.ApplyT(func(body *string) (pulumi.String, error) {
var _zero pulumi.String
tmpJSON1, err := json.Marshal(body)
if err != nil {
return _zero, err
}
json1 := string(tmpJSON1)
return pulumi.String(json1), nil
}).(pulumi.StringOutput).ApplyT(func(toJSON string) (pulumi.String, error) {
return pulumi.String(sha1Hash(toJSON)), nil
}).(pulumi.StringOutput),
},
})
if err != nil {
return err
}
exampleStage, err := apigateway.NewStage(ctx, "exampleStage", &apigateway.StageArgs{
Deployment: exampleDeployment.ID(),
RestApi: exampleRestApi.ID(),
StageName: pulumi.String("example"),
})
if err != nil {
return err
}
_, err = apigateway.NewMethodSettings(ctx, "all", &apigateway.MethodSettingsArgs{
RestApi: exampleRestApi.ID(),
StageName: exampleStage.StageName,
MethodPath: pulumi.String("*/*"),
Settings: &apigateway.MethodSettingsSettingsArgs{
MetricsEnabled: pulumi.Bool(true),
LoggingLevel: pulumi.String("ERROR"),
},
})
if err != nil {
return err
}
_, err = apigateway.NewMethodSettings(ctx, "pathSpecific", &apigateway.MethodSettingsArgs{
RestApi: exampleRestApi.ID(),
StageName: exampleStage.StageName,
MethodPath: pulumi.String("path1/GET"),
Settings: &apigateway.MethodSettingsSettingsArgs{
MetricsEnabled: pulumi.Bool(true),
LoggingLevel: pulumi.String("INFO"),
},
})
if err != nil {
return err
}
return nil
})
}
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 all = new MethodSettings("all", MethodSettingsArgs.builder()
.restApi(exampleRestApi.id())
.stageName(exampleStage.stageName())
.methodPath("*/*")
.settings(MethodSettingsSettingsArgs.builder()
.metricsEnabled(true)
.loggingLevel("ERROR")
.build())
.build());
var pathSpecific = new MethodSettings("pathSpecific", MethodSettingsArgs.builder()
.restApi(exampleRestApi.id())
.stageName(exampleStage.stageName())
.methodPath("path1/GET")
.settings(MethodSettingsSettingsArgs.builder()
.metricsEnabled(true)
.loggingLevel("INFO")
.build())
.build());
}
}
import pulumi
import hashlib
import json
import pulumi_aws as aws
example_rest_api = aws.apigateway.RestApi("exampleRestApi", body=json.dumps({
"openapi": "3.0.1",
"info": {
"title": "example",
"version": "1.0",
},
"paths": {
"/path1": {
"get": {
"x-amazon-apigateway-integration": {
"httpMethod": "GET",
"payloadFormatVersion": "1.0",
"type": "HTTP_PROXY",
"uri": "https://ip-ranges.amazonaws.com/ip-ranges.json",
},
},
},
},
}))
example_deployment = aws.apigateway.Deployment("exampleDeployment",
rest_api=example_rest_api.id,
triggers={
"redeployment": example_rest_api.body.apply(lambda body: json.dumps(body)).apply(lambda to_json: hashlib.sha1(to_json.encode()).hexdigest()),
})
example_stage = aws.apigateway.Stage("exampleStage",
deployment=example_deployment.id,
rest_api=example_rest_api.id,
stage_name="example")
all = aws.apigateway.MethodSettings("all",
rest_api=example_rest_api.id,
stage_name=example_stage.stage_name,
method_path="*/*",
settings=aws.apigateway.MethodSettingsSettingsArgs(
metrics_enabled=True,
logging_level="ERROR",
))
path_specific = aws.apigateway.MethodSettings("pathSpecific",
rest_api=example_rest_api.id,
stage_name=example_stage.stage_name,
method_path="path1/GET",
settings=aws.apigateway.MethodSettingsSettingsArgs(
metrics_enabled=True,
logging_level="INFO",
))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as crypto from "crypto";
const exampleRestApi = new aws.apigateway.RestApi("exampleRestApi", {body: JSON.stringify({
openapi: "3.0.1",
info: {
title: "example",
version: "1.0",
},
paths: {
"/path1": {
get: {
"x-amazon-apigateway-integration": {
httpMethod: "GET",
payloadFormatVersion: "1.0",
type: "HTTP_PROXY",
uri: "https://ip-ranges.amazonaws.com/ip-ranges.json",
},
},
},
},
})});
const exampleDeployment = new aws.apigateway.Deployment("exampleDeployment", {
restApi: exampleRestApi.id,
triggers: {
redeployment: exampleRestApi.body.apply(body => JSON.stringify(body)).apply(toJSON => crypto.createHash('sha1').update(toJSON).digest('hex')),
},
});
const exampleStage = new aws.apigateway.Stage("exampleStage", {
deployment: exampleDeployment.id,
restApi: exampleRestApi.id,
stageName: "example",
});
const all = new aws.apigateway.MethodSettings("all", {
restApi: exampleRestApi.id,
stageName: exampleStage.stageName,
methodPath: "*/*",
settings: {
metricsEnabled: true,
loggingLevel: "ERROR",
},
});
const pathSpecific = new aws.apigateway.MethodSettings("pathSpecific", {
restApi: exampleRestApi.id,
stageName: exampleStage.stageName,
methodPath: "path1/GET",
settings: {
metricsEnabled: true,
loggingLevel: "INFO",
},
});
Coming soon!
Off
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var pathSpecific = new Aws.ApiGateway.MethodSettings("pathSpecific", new()
{
RestApi = aws_api_gateway_rest_api.Example.Id,
StageName = aws_api_gateway_stage.Example.Stage_name,
MethodPath = "path1/GET",
Settings = new Aws.ApiGateway.Inputs.MethodSettingsSettingsArgs
{
LoggingLevel = "OFF",
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := apigateway.NewMethodSettings(ctx, "pathSpecific", &apigateway.MethodSettingsArgs{
RestApi: pulumi.Any(aws_api_gateway_rest_api.Example.Id),
StageName: pulumi.Any(aws_api_gateway_stage.Example.Stage_name),
MethodPath: pulumi.String("path1/GET"),
Settings: &apigateway.MethodSettingsSettingsArgs{
LoggingLevel: pulumi.String("OFF"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.apigateway.MethodSettings;
import com.pulumi.aws.apigateway.MethodSettingsArgs;
import com.pulumi.aws.apigateway.inputs.MethodSettingsSettingsArgs;
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 pathSpecific = new MethodSettings("pathSpecific", MethodSettingsArgs.builder()
.restApi(aws_api_gateway_rest_api.example().id())
.stageName(aws_api_gateway_stage.example().stage_name())
.methodPath("path1/GET")
.settings(MethodSettingsSettingsArgs.builder()
.loggingLevel("OFF")
.build())
.build());
}
}
import pulumi
import pulumi_aws as aws
path_specific = aws.apigateway.MethodSettings("pathSpecific",
rest_api=aws_api_gateway_rest_api["example"]["id"],
stage_name=aws_api_gateway_stage["example"]["stage_name"],
method_path="path1/GET",
settings=aws.apigateway.MethodSettingsSettingsArgs(
logging_level="OFF",
))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const pathSpecific = new aws.apigateway.MethodSettings("pathSpecific", {
restApi: aws_api_gateway_rest_api.example.id,
stageName: aws_api_gateway_stage.example.stage_name,
methodPath: "path1/GET",
settings: {
loggingLevel: "OFF",
},
});
resources:
pathSpecific:
type: aws:apigateway:MethodSettings
properties:
restApi: ${aws_api_gateway_rest_api.example.id}
stageName: ${aws_api_gateway_stage.example.stage_name}
methodPath: path1/GET
settings:
loggingLevel: OFF
Errors Only
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var pathSpecific = new Aws.ApiGateway.MethodSettings("pathSpecific", new()
{
RestApi = aws_api_gateway_rest_api.Example.Id,
StageName = aws_api_gateway_stage.Example.Stage_name,
MethodPath = "path1/GET",
Settings = new Aws.ApiGateway.Inputs.MethodSettingsSettingsArgs
{
LoggingLevel = "ERROR",
MetricsEnabled = true,
DataTraceEnabled = false,
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := apigateway.NewMethodSettings(ctx, "pathSpecific", &apigateway.MethodSettingsArgs{
RestApi: pulumi.Any(aws_api_gateway_rest_api.Example.Id),
StageName: pulumi.Any(aws_api_gateway_stage.Example.Stage_name),
MethodPath: pulumi.String("path1/GET"),
Settings: &apigateway.MethodSettingsSettingsArgs{
LoggingLevel: pulumi.String("ERROR"),
MetricsEnabled: pulumi.Bool(true),
DataTraceEnabled: pulumi.Bool(false),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.apigateway.MethodSettings;
import com.pulumi.aws.apigateway.MethodSettingsArgs;
import com.pulumi.aws.apigateway.inputs.MethodSettingsSettingsArgs;
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 pathSpecific = new MethodSettings("pathSpecific", MethodSettingsArgs.builder()
.restApi(aws_api_gateway_rest_api.example().id())
.stageName(aws_api_gateway_stage.example().stage_name())
.methodPath("path1/GET")
.settings(MethodSettingsSettingsArgs.builder()
.loggingLevel("ERROR")
.metricsEnabled(true)
.dataTraceEnabled(false)
.build())
.build());
}
}
import pulumi
import pulumi_aws as aws
path_specific = aws.apigateway.MethodSettings("pathSpecific",
rest_api=aws_api_gateway_rest_api["example"]["id"],
stage_name=aws_api_gateway_stage["example"]["stage_name"],
method_path="path1/GET",
settings=aws.apigateway.MethodSettingsSettingsArgs(
logging_level="ERROR",
metrics_enabled=True,
data_trace_enabled=False,
))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const pathSpecific = new aws.apigateway.MethodSettings("pathSpecific", {
restApi: aws_api_gateway_rest_api.example.id,
stageName: aws_api_gateway_stage.example.stage_name,
methodPath: "path1/GET",
settings: {
loggingLevel: "ERROR",
metricsEnabled: true,
dataTraceEnabled: false,
},
});
resources:
pathSpecific:
type: aws:apigateway:MethodSettings
properties:
restApi: ${aws_api_gateway_rest_api.example.id}
stageName: ${aws_api_gateway_stage.example.stage_name}
methodPath: path1/GET
settings:
loggingLevel: ERROR
metricsEnabled: true
dataTraceEnabled: false
Errors and Info Logs
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var pathSpecific = new Aws.ApiGateway.MethodSettings("pathSpecific", new()
{
RestApi = aws_api_gateway_rest_api.Example.Id,
StageName = aws_api_gateway_stage.Example.Stage_name,
MethodPath = "path1/GET",
Settings = new Aws.ApiGateway.Inputs.MethodSettingsSettingsArgs
{
LoggingLevel = "INFO",
MetricsEnabled = true,
DataTraceEnabled = false,
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := apigateway.NewMethodSettings(ctx, "pathSpecific", &apigateway.MethodSettingsArgs{
RestApi: pulumi.Any(aws_api_gateway_rest_api.Example.Id),
StageName: pulumi.Any(aws_api_gateway_stage.Example.Stage_name),
MethodPath: pulumi.String("path1/GET"),
Settings: &apigateway.MethodSettingsSettingsArgs{
LoggingLevel: pulumi.String("INFO"),
MetricsEnabled: pulumi.Bool(true),
DataTraceEnabled: pulumi.Bool(false),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.apigateway.MethodSettings;
import com.pulumi.aws.apigateway.MethodSettingsArgs;
import com.pulumi.aws.apigateway.inputs.MethodSettingsSettingsArgs;
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 pathSpecific = new MethodSettings("pathSpecific", MethodSettingsArgs.builder()
.restApi(aws_api_gateway_rest_api.example().id())
.stageName(aws_api_gateway_stage.example().stage_name())
.methodPath("path1/GET")
.settings(MethodSettingsSettingsArgs.builder()
.loggingLevel("INFO")
.metricsEnabled(true)
.dataTraceEnabled(false)
.build())
.build());
}
}
import pulumi
import pulumi_aws as aws
path_specific = aws.apigateway.MethodSettings("pathSpecific",
rest_api=aws_api_gateway_rest_api["example"]["id"],
stage_name=aws_api_gateway_stage["example"]["stage_name"],
method_path="path1/GET",
settings=aws.apigateway.MethodSettingsSettingsArgs(
logging_level="INFO",
metrics_enabled=True,
data_trace_enabled=False,
))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const pathSpecific = new aws.apigateway.MethodSettings("pathSpecific", {
restApi: aws_api_gateway_rest_api.example.id,
stageName: aws_api_gateway_stage.example.stage_name,
methodPath: "path1/GET",
settings: {
loggingLevel: "INFO",
metricsEnabled: true,
dataTraceEnabled: false,
},
});
resources:
pathSpecific:
type: aws:apigateway:MethodSettings
properties:
restApi: ${aws_api_gateway_rest_api.example.id}
stageName: ${aws_api_gateway_stage.example.stage_name}
methodPath: path1/GET
settings:
loggingLevel: INFO
metricsEnabled: true
dataTraceEnabled: false
Full Request and Response Logs
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var pathSpecific = new Aws.ApiGateway.MethodSettings("pathSpecific", new()
{
RestApi = aws_api_gateway_rest_api.Example.Id,
StageName = aws_api_gateway_stage.Example.Stage_name,
MethodPath = "path1/GET",
Settings = new Aws.ApiGateway.Inputs.MethodSettingsSettingsArgs
{
LoggingLevel = "INFO",
MetricsEnabled = true,
DataTraceEnabled = true,
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := apigateway.NewMethodSettings(ctx, "pathSpecific", &apigateway.MethodSettingsArgs{
RestApi: pulumi.Any(aws_api_gateway_rest_api.Example.Id),
StageName: pulumi.Any(aws_api_gateway_stage.Example.Stage_name),
MethodPath: pulumi.String("path1/GET"),
Settings: &apigateway.MethodSettingsSettingsArgs{
LoggingLevel: pulumi.String("INFO"),
MetricsEnabled: pulumi.Bool(true),
DataTraceEnabled: pulumi.Bool(true),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.apigateway.MethodSettings;
import com.pulumi.aws.apigateway.MethodSettingsArgs;
import com.pulumi.aws.apigateway.inputs.MethodSettingsSettingsArgs;
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 pathSpecific = new MethodSettings("pathSpecific", MethodSettingsArgs.builder()
.restApi(aws_api_gateway_rest_api.example().id())
.stageName(aws_api_gateway_stage.example().stage_name())
.methodPath("path1/GET")
.settings(MethodSettingsSettingsArgs.builder()
.loggingLevel("INFO")
.metricsEnabled(true)
.dataTraceEnabled(true)
.build())
.build());
}
}
import pulumi
import pulumi_aws as aws
path_specific = aws.apigateway.MethodSettings("pathSpecific",
rest_api=aws_api_gateway_rest_api["example"]["id"],
stage_name=aws_api_gateway_stage["example"]["stage_name"],
method_path="path1/GET",
settings=aws.apigateway.MethodSettingsSettingsArgs(
logging_level="INFO",
metrics_enabled=True,
data_trace_enabled=True,
))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const pathSpecific = new aws.apigateway.MethodSettings("pathSpecific", {
restApi: aws_api_gateway_rest_api.example.id,
stageName: aws_api_gateway_stage.example.stage_name,
methodPath: "path1/GET",
settings: {
loggingLevel: "INFO",
metricsEnabled: true,
dataTraceEnabled: true,
},
});
resources:
pathSpecific:
type: aws:apigateway:MethodSettings
properties:
restApi: ${aws_api_gateway_rest_api.example.id}
stageName: ${aws_api_gateway_stage.example.stage_name}
methodPath: path1/GET
settings:
loggingLevel: INFO
metricsEnabled: true
dataTraceEnabled: true
Create MethodSettings Resource
new MethodSettings(name: string, args: MethodSettingsArgs, opts?: CustomResourceOptions);
@overload
def MethodSettings(resource_name: str,
opts: Optional[ResourceOptions] = None,
method_path: Optional[str] = None,
rest_api: Optional[str] = None,
settings: Optional[MethodSettingsSettingsArgs] = None,
stage_name: Optional[str] = None)
@overload
def MethodSettings(resource_name: str,
args: MethodSettingsArgs,
opts: Optional[ResourceOptions] = None)
func NewMethodSettings(ctx *Context, name string, args MethodSettingsArgs, opts ...ResourceOption) (*MethodSettings, error)
public MethodSettings(string name, MethodSettingsArgs args, CustomResourceOptions? opts = null)
public MethodSettings(String name, MethodSettingsArgs args)
public MethodSettings(String name, MethodSettingsArgs args, CustomResourceOptions options)
type: aws:apigateway:MethodSettings
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args MethodSettingsArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args MethodSettingsArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args MethodSettingsArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args MethodSettingsArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args MethodSettingsArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
MethodSettings Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The MethodSettings resource accepts the following input properties:
- Method
Path string Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- Rest
Api string | string ID of the REST API
- Settings
Method
Settings Settings Settings block, see below.
- Stage
Name string Name of the stage
- Method
Path string Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- Rest
Api string | string ID of the REST API
- Settings
Method
Settings Settings Args Settings block, see below.
- Stage
Name string Name of the stage
- method
Path String Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- rest
Api String | String ID of the REST API
- settings
Method
Settings Settings Settings block, see below.
- stage
Name String Name of the stage
- method
Path string Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- rest
Api string | RestApi ID of the REST API
- settings
Method
Settings Settings Settings block, see below.
- stage
Name string Name of the stage
- method_
path str Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- rest_
api str | str ID of the REST API
- settings
Method
Settings Settings Args Settings block, see below.
- stage_
name str Name of the stage
- method
Path String Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- rest
Api String | ID of the REST API
- settings Property Map
Settings block, see below.
- stage
Name String Name of the stage
Outputs
All input properties are implicitly available as output properties. Additionally, the MethodSettings resource produces the following output properties:
- Id string
The provider-assigned unique ID for this managed resource.
- Id string
The provider-assigned unique ID for this managed resource.
- id String
The provider-assigned unique ID for this managed resource.
- id string
The provider-assigned unique ID for this managed resource.
- id str
The provider-assigned unique ID for this managed resource.
- id String
The provider-assigned unique ID for this managed resource.
Look up Existing MethodSettings Resource
Get an existing MethodSettings resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: MethodSettingsState, opts?: CustomResourceOptions): MethodSettings
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
method_path: Optional[str] = None,
rest_api: Optional[str] = None,
settings: Optional[MethodSettingsSettingsArgs] = None,
stage_name: Optional[str] = None) -> MethodSettings
func GetMethodSettings(ctx *Context, name string, id IDInput, state *MethodSettingsState, opts ...ResourceOption) (*MethodSettings, error)
public static MethodSettings Get(string name, Input<string> id, MethodSettingsState? state, CustomResourceOptions? opts = null)
public static MethodSettings get(String name, Output<String> id, MethodSettingsState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Method
Path string Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- Rest
Api string | string ID of the REST API
- Settings
Method
Settings Settings Settings block, see below.
- Stage
Name string Name of the stage
- Method
Path string Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- Rest
Api string | string ID of the REST API
- Settings
Method
Settings Settings Args Settings block, see below.
- Stage
Name string Name of the stage
- method
Path String Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- rest
Api String | String ID of the REST API
- settings
Method
Settings Settings Settings block, see below.
- stage
Name String Name of the stage
- method
Path string Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- rest
Api string | RestApi ID of the REST API
- settings
Method
Settings Settings Settings block, see below.
- stage
Name string Name of the stage
- method_
path str Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- rest_
api str | str ID of the REST API
- settings
Method
Settings Settings Args Settings block, see below.
- stage_
name str Name of the stage
- method
Path String Method path defined as
{resource_path}/{http_method}
for an individual method override, or*/*
for overriding all methods in the stage. Ensure to trim any leading forward slashes in the path (e.g.,trimprefix(aws_api_gateway_resource.example.path, "/")
).- rest
Api String | ID of the REST API
- settings Property Map
Settings block, see below.
- stage
Name String Name of the stage
Supporting Types
MethodSettingsSettings, MethodSettingsSettingsArgs
- Cache
Data boolEncrypted Whether the cached responses are encrypted.
- Cache
Ttl intIn Seconds Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.
- Caching
Enabled bool Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.
- Data
Trace boolEnabled Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
- Logging
Level string Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are
OFF
,ERROR
, andINFO
.- Metrics
Enabled bool Whether Amazon CloudWatch metrics are enabled for this method.
- bool
Whether authorization is required for a cache invalidation request.
- Throttling
Burst intLimit Throttling burst limit. Default:
-1
(throttling disabled).- Throttling
Rate doubleLimit Throttling rate limit. Default:
-1
(throttling disabled).- string
How to handle unauthorized requests for cache invalidation. The available values are
FAIL_WITH_403
,SUCCEED_WITH_RESPONSE_HEADER
,SUCCEED_WITHOUT_RESPONSE_HEADER
.
- Cache
Data boolEncrypted Whether the cached responses are encrypted.
- Cache
Ttl intIn Seconds Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.
- Caching
Enabled bool Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.
- Data
Trace boolEnabled Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
- Logging
Level string Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are
OFF
,ERROR
, andINFO
.- Metrics
Enabled bool Whether Amazon CloudWatch metrics are enabled for this method.
- bool
Whether authorization is required for a cache invalidation request.
- Throttling
Burst intLimit Throttling burst limit. Default:
-1
(throttling disabled).- Throttling
Rate float64Limit Throttling rate limit. Default:
-1
(throttling disabled).- string
How to handle unauthorized requests for cache invalidation. The available values are
FAIL_WITH_403
,SUCCEED_WITH_RESPONSE_HEADER
,SUCCEED_WITHOUT_RESPONSE_HEADER
.
- cache
Data BooleanEncrypted Whether the cached responses are encrypted.
- cache
Ttl IntegerIn Seconds Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.
- caching
Enabled Boolean Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.
- data
Trace BooleanEnabled Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
- logging
Level String Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are
OFF
,ERROR
, andINFO
.- metrics
Enabled Boolean Whether Amazon CloudWatch metrics are enabled for this method.
- Boolean
Whether authorization is required for a cache invalidation request.
- throttling
Burst IntegerLimit Throttling burst limit. Default:
-1
(throttling disabled).- throttling
Rate DoubleLimit Throttling rate limit. Default:
-1
(throttling disabled).- String
How to handle unauthorized requests for cache invalidation. The available values are
FAIL_WITH_403
,SUCCEED_WITH_RESPONSE_HEADER
,SUCCEED_WITHOUT_RESPONSE_HEADER
.
- cache
Data booleanEncrypted Whether the cached responses are encrypted.
- cache
Ttl numberIn Seconds Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.
- caching
Enabled boolean Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.
- data
Trace booleanEnabled Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
- logging
Level string Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are
OFF
,ERROR
, andINFO
.- metrics
Enabled boolean Whether Amazon CloudWatch metrics are enabled for this method.
- boolean
Whether authorization is required for a cache invalidation request.
- throttling
Burst numberLimit Throttling burst limit. Default:
-1
(throttling disabled).- throttling
Rate numberLimit Throttling rate limit. Default:
-1
(throttling disabled).- string
How to handle unauthorized requests for cache invalidation. The available values are
FAIL_WITH_403
,SUCCEED_WITH_RESPONSE_HEADER
,SUCCEED_WITHOUT_RESPONSE_HEADER
.
- cache_
data_ boolencrypted Whether the cached responses are encrypted.
- cache_
ttl_ intin_ seconds Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.
- caching_
enabled bool Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.
- data_
trace_ boolenabled Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
- logging_
level str Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are
OFF
,ERROR
, andINFO
.- metrics_
enabled bool Whether Amazon CloudWatch metrics are enabled for this method.
- bool
Whether authorization is required for a cache invalidation request.
- throttling_
burst_ intlimit Throttling burst limit. Default:
-1
(throttling disabled).- throttling_
rate_ floatlimit Throttling rate limit. Default:
-1
(throttling disabled).- str
How to handle unauthorized requests for cache invalidation. The available values are
FAIL_WITH_403
,SUCCEED_WITH_RESPONSE_HEADER
,SUCCEED_WITHOUT_RESPONSE_HEADER
.
- cache
Data BooleanEncrypted Whether the cached responses are encrypted.
- cache
Ttl NumberIn Seconds Time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.
- caching
Enabled Boolean Whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.
- data
Trace BooleanEnabled Whether data trace logging is enabled for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
- logging
Level String Logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. The available levels are
OFF
,ERROR
, andINFO
.- metrics
Enabled Boolean Whether Amazon CloudWatch metrics are enabled for this method.
- Boolean
Whether authorization is required for a cache invalidation request.
- throttling
Burst NumberLimit Throttling burst limit. Default:
-1
(throttling disabled).- throttling
Rate NumberLimit Throttling rate limit. Default:
-1
(throttling disabled).- String
How to handle unauthorized requests for cache invalidation. The available values are
FAIL_WITH_403
,SUCCEED_WITH_RESPONSE_HEADER
,SUCCEED_WITHOUT_RESPONSE_HEADER
.
Import
Using pulumi import
, import aws_api_gateway_method_settings
using REST-API-ID/STAGE-NAME/METHOD-PATH
. For example:
$ pulumi import aws:apigateway/methodSettings:MethodSettings example 12345abcde/example/test/GET
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
This Pulumi package is based on the
aws
Terraform Provider.
Try AWS Native preview for resources not in the classic version.