A Pulumi provider SDK for creating and managing Amazon Web Services (AWS) cloud resources in Go, providing strongly-typed resource classes and data sources for all major AWS services.
Documentation for Amazon API Gateway v1 (REST APIs) and API Gateway v2 (HTTP and WebSocket APIs) Pulumi resources.
apigateway, apigatewayv2github.com/pulumi/pulumi-aws/sdk/v7/go/aws/apigatewaygithub.com/pulumi/pulumi-aws/sdk/v7/go/aws/apigatewayv2import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/apigatewayv2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)apigateway (v1): Create and manage REST APIs. Use resources like RestApi, Resource, Method, Integration, Stage, and Deployment to define REST API behavior.apigatewayv2 (v2): Create and manage HTTP APIs and WebSocket APIs. Simpler model with Api, Route, Integration, Stage, and Authorizer.Manages REST APIs with full control over resources, methods, integrations, and deployments. Supports OpenAPI spec import.
func NewRestApi(ctx *pulumi.Context,
name string, args *RestApiArgs, opts ...pulumi.ResourceOption) (*RestApi, error)
func GetRestApi(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *RestApiState, opts ...pulumi.ResourceOption) (*RestApi, error)
type RestApi struct {
pulumi.CustomResourceState
ApiKeySource pulumi.StringOutput `pulumi:"apiKeySource"`
Arn pulumi.StringOutput `pulumi:"arn"`
BinaryMediaTypes pulumi.StringArrayOutput `pulumi:"binaryMediaTypes"`
Body pulumi.StringPtrOutput `pulumi:"body"`
CreatedDate pulumi.StringOutput `pulumi:"createdDate"`
Description pulumi.StringOutput `pulumi:"description"`
DisableExecuteApiEndpoint pulumi.BoolOutput `pulumi:"disableExecuteApiEndpoint"`
EndpointConfiguration RestApiEndpointConfigurationOutput `pulumi:"endpointConfiguration"`
ExecutionArn pulumi.StringOutput `pulumi:"executionArn"`
FailOnWarnings pulumi.BoolPtrOutput `pulumi:"failOnWarnings"`
MinimumCompressionSize pulumi.StringOutput `pulumi:"minimumCompressionSize"`
Name pulumi.StringOutput `pulumi:"name"`
Parameters pulumi.StringMapOutput `pulumi:"parameters"`
Policy pulumi.StringOutput `pulumi:"policy"`
PutRestApiMode pulumi.StringPtrOutput `pulumi:"putRestApiMode"`
Region pulumi.StringOutput `pulumi:"region"`
RootResourceId pulumi.StringOutput `pulumi:"rootResourceId"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}
type RestApiArgs struct {
// Valid values: "HEADER" (default), "AUTHORIZER"
ApiKeySource pulumi.StringPtrInput
BinaryMediaTypes pulumi.StringArrayInput
// OpenAPI spec body. Updates replace all REST API config not overridden here.
Body pulumi.StringPtrInput
Description pulumi.StringPtrInput
DisableExecuteApiEndpoint pulumi.BoolPtrInput
EndpointConfiguration RestApiEndpointConfigurationPtrInput
FailOnWarnings pulumi.BoolPtrInput
// Between -1 and 10485760 (10MB). -1 disables compression.
MinimumCompressionSize pulumi.StringPtrInput
Name pulumi.StringPtrInput
Parameters pulumi.StringMapInput
Policy pulumi.StringPtrInput
// Valid values: "merge", "overwrite" (default)
PutRestApiMode pulumi.StringPtrInput
Region pulumi.StringPtrInput
Tags pulumi.StringMapInput
}Manages deployment stages for REST APIs. Stages can have access logging, caching, canary deployments, and X-Ray tracing.
func NewStage(ctx *pulumi.Context,
name string, args *StageArgs, opts ...pulumi.ResourceOption) (*Stage, error)
func GetStage(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *StageState, opts ...pulumi.ResourceOption) (*Stage, error)
type Stage struct {
pulumi.CustomResourceState
AccessLogSettings StageAccessLogSettingsPtrOutput `pulumi:"accessLogSettings"`
Arn pulumi.StringOutput `pulumi:"arn"`
CacheClusterEnabled pulumi.BoolPtrOutput `pulumi:"cacheClusterEnabled"`
// Valid values: "0.5", "1.6", "6.1", "13.5", "28.4", "58.2", "118", "237"
CacheClusterSize pulumi.StringPtrOutput `pulumi:"cacheClusterSize"`
CanarySettings StageCanarySettingsPtrOutput `pulumi:"canarySettings"`
ClientCertificateId pulumi.StringPtrOutput `pulumi:"clientCertificateId"`
Deployment pulumi.StringOutput `pulumi:"deployment"`
Description pulumi.StringPtrOutput `pulumi:"description"`
DocumentationVersion pulumi.StringPtrOutput `pulumi:"documentationVersion"`
ExecutionArn pulumi.StringOutput `pulumi:"executionArn"`
InvokeUrl pulumi.StringOutput `pulumi:"invokeUrl"`
Region pulumi.StringOutput `pulumi:"region"`
RestApi pulumi.StringOutput `pulumi:"restApi"`
StageName pulumi.StringOutput `pulumi:"stageName"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
Variables pulumi.StringMapOutput `pulumi:"variables"`
WebAclArn pulumi.StringOutput `pulumi:"webAclArn"`
XrayTracingEnabled pulumi.BoolPtrOutput `pulumi:"xrayTracingEnabled"`
}Provides HTTP methods for API Gateway resources. Controls authorization, request validation, and request models.
func NewMethod(ctx *pulumi.Context,
name string, args *MethodArgs, opts ...pulumi.ResourceOption) (*Method, error)
func GetMethod(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *MethodState, opts ...pulumi.ResourceOption) (*Method, error)
type Method struct {
pulumi.CustomResourceState
ApiKeyRequired pulumi.BoolPtrOutput `pulumi:"apiKeyRequired"`
// Valid values: "NONE", "CUSTOM", "AWS_IAM", "COGNITO_USER_POOLS"
Authorization pulumi.StringOutput `pulumi:"authorization"`
AuthorizationScopes pulumi.StringArrayOutput `pulumi:"authorizationScopes"`
AuthorizerId pulumi.StringPtrOutput `pulumi:"authorizerId"`
// Valid values: "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "ANY"
HttpMethod pulumi.StringOutput `pulumi:"httpMethod"`
OperationName pulumi.StringPtrOutput `pulumi:"operationName"`
Region pulumi.StringOutput `pulumi:"region"`
RequestModels pulumi.StringMapOutput `pulumi:"requestModels"`
RequestParameters pulumi.BoolMapOutput `pulumi:"requestParameters"`
RequestValidatorId pulumi.StringPtrOutput `pulumi:"requestValidatorId"`
ResourceId pulumi.StringOutput `pulumi:"resourceId"`
RestApi pulumi.StringOutput `pulumi:"restApi"`
}Connects API Gateway methods to backend services (Lambda, HTTP, AWS services, or mock).
func NewIntegration(ctx *pulumi.Context,
name string, args *IntegrationArgs, opts ...pulumi.ResourceOption) (*Integration, error)
func GetIntegration(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *IntegrationState, opts ...pulumi.ResourceOption) (*Integration, error)
type Integration struct {
pulumi.CustomResourceState
CacheKeyParameters pulumi.StringArrayOutput `pulumi:"cacheKeyParameters"`
CacheNamespace pulumi.StringOutput `pulumi:"cacheNamespace"`
ConnectionId pulumi.StringPtrOutput `pulumi:"connectionId"`
// Valid values: "INTERNET" (default), "VPC_LINK"
ConnectionType pulumi.StringPtrOutput `pulumi:"connectionType"`
// Valid values: "CONVERT_TO_BINARY", "CONVERT_TO_TEXT"
ContentHandling pulumi.StringPtrOutput `pulumi:"contentHandling"`
Credentials pulumi.StringPtrOutput `pulumi:"credentials"`
HttpMethod pulumi.StringOutput `pulumi:"httpMethod"`
IntegrationHttpMethod pulumi.StringPtrOutput `pulumi:"integrationHttpMethod"`
IntegrationTarget pulumi.StringPtrOutput `pulumi:"integrationTarget"`
// Valid values: "WHEN_NO_MATCH", "WHEN_NO_TEMPLATES", "NEVER"
PassthroughBehavior pulumi.StringOutput `pulumi:"passthroughBehavior"`
Region pulumi.StringOutput `pulumi:"region"`
RequestParameters pulumi.StringMapOutput `pulumi:"requestParameters"`
RequestTemplates pulumi.StringMapOutput `pulumi:"requestTemplates"`
ResourceId pulumi.StringOutput `pulumi:"resourceId"`
// Valid values: "BUFFERED" (default), "STREAM"
ResponseTransferMode pulumi.StringOutput `pulumi:"responseTransferMode"`
RestApi pulumi.StringOutput `pulumi:"restApi"`
TimeoutMilliseconds pulumi.IntPtrOutput `pulumi:"timeoutMilliseconds"`
TlsConfig IntegrationTlsConfigPtrOutput `pulumi:"tlsConfig"`
// Valid values: "HTTP", "MOCK", "AWS", "AWS_PROXY", "HTTP_PROXY"
Type pulumi.StringOutput `pulumi:"type"`
Uri pulumi.StringPtrOutput `pulumi:"uri"`
}Controls access to REST API methods using Lambda functions or Cognito User Pools.
func NewAuthorizer(ctx *pulumi.Context,
name string, args *AuthorizerArgs, opts ...pulumi.ResourceOption) (*Authorizer, error)
func GetAuthorizer(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *AuthorizerState, opts ...pulumi.ResourceOption) (*Authorizer, error)
type Authorizer struct {
pulumi.CustomResourceState
Arn pulumi.StringOutput `pulumi:"arn"`
AuthorizerCredentials pulumi.StringPtrOutput `pulumi:"authorizerCredentials"`
// Default: 300
AuthorizerResultTtlInSeconds pulumi.IntPtrOutput `pulumi:"authorizerResultTtlInSeconds"`
AuthorizerUri pulumi.StringPtrOutput `pulumi:"authorizerUri"`
IdentitySource pulumi.StringPtrOutput `pulumi:"identitySource"`
IdentityValidationExpression pulumi.StringPtrOutput `pulumi:"identityValidationExpression"`
Name pulumi.StringOutput `pulumi:"name"`
ProviderArns pulumi.StringArrayOutput `pulumi:"providerArns"`
Region pulumi.StringOutput `pulumi:"region"`
RestApi pulumi.StringOutput `pulumi:"restApi"`
// Valid values: "TOKEN" (default), "REQUEST", "COGNITO_USER_POOLS"
Type pulumi.StringPtrOutput `pulumi:"type"`
}Retrieves information about an existing API key.
func GetKey(ctx *pulumi.Context, args *GetKeyArgs, opts ...pulumi.InvokeOption) (*GetKeyResult, error)
type GetKeyArgs struct {
// ID of the API key to look up.
Id string `pulumi:"id"`
Region *string `pulumi:"region"`
Tags map[string]string `pulumi:"tags"`
}// Resource management
func NewResource(ctx *pulumi.Context, name string, args *ResourceArgs, opts ...pulumi.ResourceOption) (*Resource, error)
func NewDeployment(ctx *pulumi.Context, name string, args *DeploymentArgs, opts ...pulumi.ResourceOption) (*Deployment, error)
func NewApiKey(ctx *pulumi.Context, name string, args *ApiKeyArgs, opts ...pulumi.ResourceOption) (*ApiKey, error)
func NewUsagePlan(ctx *pulumi.Context, name string, args *UsagePlanArgs, opts ...pulumi.ResourceOption) (*UsagePlan, error)
func NewUsagePlanKey(ctx *pulumi.Context, name string, args *UsagePlanKeyArgs, opts ...pulumi.ResourceOption) (*UsagePlanKey, error)
func NewBasePathMapping(ctx *pulumi.Context, name string, args *BasePathMappingArgs, opts ...pulumi.ResourceOption) (*BasePathMapping, error)
func NewDomainName(ctx *pulumi.Context, name string, args *DomainNameArgs, opts ...pulumi.ResourceOption) (*DomainName, error)
func NewVpcLink(ctx *pulumi.Context, name string, args *VpcLinkArgs, opts ...pulumi.ResourceOption) (*VpcLink, error)
func NewModel(ctx *pulumi.Context, name string, args *ModelArgs, opts ...pulumi.ResourceOption) (*Model, error)
func NewRequestValidator(ctx *pulumi.Context, name string, args *RequestValidatorArgs, opts ...pulumi.ResourceOption) (*RequestValidator, error)
func NewMethodResponse(ctx *pulumi.Context, name string, args *MethodResponseArgs, opts ...pulumi.ResourceOption) (*MethodResponse, error)
func NewIntegrationResponse(ctx *pulumi.Context, name string, args *IntegrationResponseArgs, opts ...pulumi.ResourceOption) (*IntegrationResponse, error)
func NewMethodSettings(ctx *pulumi.Context, name string, args *MethodSettingsArgs, opts ...pulumi.ResourceOption) (*MethodSettings, error)
func NewDocumentationPart(ctx *pulumi.Context, name string, args *DocumentationPartArgs, opts ...pulumi.ResourceOption) (*DocumentationPart, error)
func NewDocumentationVersion(ctx *pulumi.Context, name string, args *DocumentationVersionArgs, opts ...pulumi.ResourceOption) (*DocumentationVersion, error)
func NewAccount(ctx *pulumi.Context, name string, args *AccountArgs, opts ...pulumi.ResourceOption) (*Account, error)
func NewClientCertificate(ctx *pulumi.Context, name string, args *ClientCertificateArgs, opts ...pulumi.ResourceOption) (*ClientCertificate, error)
func NewResponse(ctx *pulumi.Context, name string, args *ResponseArgs, opts ...pulumi.ResourceOption) (*Response, error)
func NewRestApiPolicy(ctx *pulumi.Context, name string, args *RestApiPolicyArgs, opts ...pulumi.ResourceOption) (*RestApiPolicy, error)
func NewRestApiPut(ctx *pulumi.Context, name string, args *RestApiPutArgs, opts ...pulumi.ResourceOption) (*RestApiPut, error)
func NewDomainNameAccessAssociation(ctx *pulumi.Context, name string, args *DomainNameAccessAssociationArgs, opts ...pulumi.ResourceOption) (*DomainNameAccessAssociation, error)
// Data sources
func GetAccount(ctx *pulumi.Context, args *GetAccountArgs, opts ...pulumi.InvokeOption) (*GetAccountResult, error)
func GetApiKeys(ctx *pulumi.Context, args *GetApiKeysArgs, opts ...pulumi.InvokeOption) (*GetApiKeysResult, error)
func GetAuthorizer(ctx *pulumi.Context, args *GetAuthorizerArgs, opts ...pulumi.InvokeOption) (*GetAuthorizerResult, error)
func GetAuthorizers(ctx *pulumi.Context, args *GetAuthorizersArgs, opts ...pulumi.InvokeOption) (*GetAuthorizersResult, error)
func GetRestApi(ctx *pulumi.Context, args *GetRestApiArgs, opts ...pulumi.InvokeOption) (*GetRestApiResult, error)
func GetStage(ctx *pulumi.Context, args *GetStageArgs, opts ...pulumi.InvokeOption) (*GetStageResult, error)
func GetVpcLink(ctx *pulumi.Context, args *GetVpcLinkArgs, opts ...pulumi.InvokeOption) (*GetVpcLinkResult, error)
func GetUsagePlan(ctx *pulumi.Context, args *GetUsagePlanArgs, opts ...pulumi.InvokeOption) (*GetUsagePlanResult, error)
func GetDomainName(ctx *pulumi.Context, args *GetDomainNameArgs, opts ...pulumi.InvokeOption) (*GetDomainNameResult, error)Manages HTTP and WebSocket APIs with a simpler model than v1. HTTP APIs are lower-latency alternatives to REST APIs.
func NewApi(ctx *pulumi.Context,
name string, args *ApiArgs, opts ...pulumi.ResourceOption) (*Api, error)
func GetApi(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *ApiState, opts ...pulumi.ResourceOption) (*Api, error)
type Api struct {
pulumi.CustomResourceState
ApiEndpoint pulumi.StringOutput `pulumi:"apiEndpoint"`
ApiKeySelectionExpression pulumi.StringPtrOutput `pulumi:"apiKeySelectionExpression"`
Arn pulumi.StringOutput `pulumi:"arn"`
Body pulumi.StringPtrOutput `pulumi:"body"`
CorsConfiguration ApiCorsConfigurationPtrOutput `pulumi:"corsConfiguration"`
CredentialsArn pulumi.StringPtrOutput `pulumi:"credentialsArn"`
Description pulumi.StringPtrOutput `pulumi:"description"`
DisableExecuteApiEndpoint pulumi.BoolPtrOutput `pulumi:"disableExecuteApiEndpoint"`
ExecutionArn pulumi.StringOutput `pulumi:"executionArn"`
FailOnWarnings pulumi.BoolPtrOutput `pulumi:"failOnWarnings"`
// Valid values: "ipv4" (default), "dualstack"
IpAddressType pulumi.StringOutput `pulumi:"ipAddressType"`
Name pulumi.StringOutput `pulumi:"name"`
// Valid values: "HTTP", "WEBSOCKET"
ProtocolType pulumi.StringOutput `pulumi:"protocolType"`
Region pulumi.StringOutput `pulumi:"region"`
RouteKey pulumi.StringPtrOutput `pulumi:"routeKey"`
RouteSelectionExpression pulumi.StringPtrOutput `pulumi:"routeSelectionExpression"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
Target pulumi.StringPtrOutput `pulumi:"target"`
Version pulumi.StringPtrOutput `pulumi:"version"`
}
type ApiArgs struct {
ApiKeySelectionExpression pulumi.StringPtrInput
Body pulumi.StringPtrInput
CorsConfiguration ApiCorsConfigurationPtrInput
CredentialsArn pulumi.StringPtrInput
Description pulumi.StringPtrInput
DisableExecuteApiEndpoint pulumi.BoolPtrInput
FailOnWarnings pulumi.BoolPtrInput
// Valid values: "ipv4", "dualstack"
IpAddressType pulumi.StringPtrInput
Name pulumi.StringPtrInput
// Required. Valid values: "HTTP", "WEBSOCKET"
ProtocolType pulumi.StringInput
Region pulumi.StringPtrInput
RouteKey pulumi.StringPtrInput
RouteSelectionExpression pulumi.StringPtrInput
Tags pulumi.StringMapInput
Target pulumi.StringPtrInput
Version pulumi.StringPtrInput
}Manages deployment stages for HTTP and WebSocket APIs. Supports auto-deploy for HTTP APIs.
func NewStage(ctx *pulumi.Context,
name string, args *StageArgs, opts ...pulumi.ResourceOption) (*Stage, error)
func GetStage(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *StageState, opts ...pulumi.ResourceOption) (*Stage, error)
type Stage struct {
pulumi.CustomResourceState
AccessLogSettings StageAccessLogSettingsPtrOutput `pulumi:"accessLogSettings"`
ApiId pulumi.StringOutput `pulumi:"apiId"`
Arn pulumi.StringOutput `pulumi:"arn"`
// HTTP APIs only: auto-trigger new deployments on updates
AutoDeploy pulumi.BoolPtrOutput `pulumi:"autoDeploy"`
ClientCertificateId pulumi.StringPtrOutput `pulumi:"clientCertificateId"`
DefaultRouteSettings StageDefaultRouteSettingsPtrOutput `pulumi:"defaultRouteSettings"`
DeploymentId pulumi.StringOutput `pulumi:"deploymentId"`
Description pulumi.StringPtrOutput `pulumi:"description"`
ExecutionArn pulumi.StringOutput `pulumi:"executionArn"`
InvokeUrl pulumi.StringOutput `pulumi:"invokeUrl"`
Name pulumi.StringOutput `pulumi:"name"`
Region pulumi.StringOutput `pulumi:"region"`
RouteSettings StageRouteSettingArrayOutput `pulumi:"routeSettings"`
StageVariables pulumi.StringMapOutput `pulumi:"stageVariables"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}Connects API routes to backend services (Lambda, HTTP endpoints, AWS services, or VPC resources).
func NewIntegration(ctx *pulumi.Context,
name string, args *IntegrationArgs, opts ...pulumi.ResourceOption) (*Integration, error)
func GetIntegration(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *IntegrationState, opts ...pulumi.ResourceOption) (*Integration, error)
type Integration struct {
pulumi.CustomResourceState
ApiId pulumi.StringOutput `pulumi:"apiId"`
ConnectionId pulumi.StringPtrOutput `pulumi:"connectionId"`
// Valid values: "INTERNET" (default), "VPC_LINK"
ConnectionType pulumi.StringPtrOutput `pulumi:"connectionType"`
// WebSocket only. Valid values: "CONVERT_TO_BINARY", "CONVERT_TO_TEXT"
ContentHandlingStrategy pulumi.StringPtrOutput `pulumi:"contentHandlingStrategy"`
CredentialsArn pulumi.StringPtrOutput `pulumi:"credentialsArn"`
Description pulumi.StringPtrOutput `pulumi:"description"`
IntegrationMethod pulumi.StringPtrOutput `pulumi:"integrationMethod"`
IntegrationResponseSelectionExpression pulumi.StringOutput `pulumi:"integrationResponseSelectionExpression"`
IntegrationSubtype pulumi.StringPtrOutput `pulumi:"integrationSubtype"`
// Valid values: "AWS" (WebSocket), "AWS_PROXY", "HTTP" (WebSocket), "HTTP_PROXY", "MOCK" (WebSocket)
IntegrationType pulumi.StringOutput `pulumi:"integrationType"`
IntegrationUri pulumi.StringPtrOutput `pulumi:"integrationUri"`
// WebSocket only. Valid values: "WHEN_NO_MATCH", "WHEN_NO_TEMPLATES", "NEVER"
PassthroughBehavior pulumi.StringPtrOutput `pulumi:"passthroughBehavior"`
// Valid values: "1.0" (default), "2.0"
PayloadFormatVersion pulumi.StringPtrOutput `pulumi:"payloadFormatVersion"`
Region pulumi.StringOutput `pulumi:"region"`
RequestParameters pulumi.StringMapOutput `pulumi:"requestParameters"`
RequestTemplates pulumi.StringMapOutput `pulumi:"requestTemplates"`
ResponseParameters IntegrationResponseParameterArrayOutput `pulumi:"responseParameters"`
TemplateSelectionExpression pulumi.StringPtrOutput `pulumi:"templateSelectionExpression"`
// Default: 29000ms for WebSocket, 30000ms for HTTP
TimeoutMilliseconds pulumi.IntOutput `pulumi:"timeoutMilliseconds"`
TlsConfig IntegrationTlsConfigPtrOutput `pulumi:"tlsConfig"`
}Defines how incoming requests are matched and forwarded to integrations.
func NewRoute(ctx *pulumi.Context,
name string, args *RouteArgs, opts ...pulumi.ResourceOption) (*Route, error)
func GetRoute(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *RouteState, opts ...pulumi.ResourceOption) (*Route, error)
type Route struct {
pulumi.CustomResourceState
ApiId pulumi.StringOutput `pulumi:"apiId"`
ApiKeyRequired pulumi.BoolPtrOutput `pulumi:"apiKeyRequired"`
AuthorizationScopes pulumi.StringArrayOutput `pulumi:"authorizationScopes"`
// WebSocket: "NONE", "AWS_IAM", "CUSTOM". HTTP: "NONE", "JWT", "AWS_IAM", "CUSTOM"
AuthorizationType pulumi.StringPtrOutput `pulumi:"authorizationType"`
AuthorizerId pulumi.StringPtrOutput `pulumi:"authorizerId"`
ModelSelectionExpression pulumi.StringPtrOutput `pulumi:"modelSelectionExpression"`
OperationName pulumi.StringPtrOutput `pulumi:"operationName"`
Region pulumi.StringOutput `pulumi:"region"`
RequestModels pulumi.StringMapOutput `pulumi:"requestModels"`
RequestParameters RouteRequestParameterArrayOutput `pulumi:"requestParameters"`
// e.g., "$default", "GET /pets", "ANY /example/{proxy+}"
RouteKey pulumi.StringOutput `pulumi:"routeKey"`
RouteResponseSelectionExpression pulumi.StringPtrOutput `pulumi:"routeResponseSelectionExpression"`
// Format: "integrations/{IntegrationID}"
Target pulumi.StringPtrOutput `pulumi:"target"`
}Controls access to API routes using JWT tokens or Lambda functions.
func NewAuthorizer(ctx *pulumi.Context,
name string, args *AuthorizerArgs, opts ...pulumi.ResourceOption) (*Authorizer, error)
func GetAuthorizer(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *AuthorizerState, opts ...pulumi.ResourceOption) (*Authorizer, error)
type Authorizer struct {
pulumi.CustomResourceState
ApiId pulumi.StringOutput `pulumi:"apiId"`
AuthorizerCredentialsArn pulumi.StringPtrOutput `pulumi:"authorizerCredentialsArn"`
// HTTP Lambda authorizers only. Valid values: "1.0", "2.0"
AuthorizerPayloadFormatVersion pulumi.StringPtrOutput `pulumi:"authorizerPayloadFormatVersion"`
// Default: 300. Range: 0-3600
AuthorizerResultTtlInSeconds pulumi.IntOutput `pulumi:"authorizerResultTtlInSeconds"`
// Valid values: "JWT", "REQUEST"
AuthorizerType pulumi.StringOutput `pulumi:"authorizerType"`
AuthorizerUri pulumi.StringPtrOutput `pulumi:"authorizerUri"`
EnableSimpleResponses pulumi.BoolPtrOutput `pulumi:"enableSimpleResponses"`
IdentitySources pulumi.StringArrayOutput `pulumi:"identitySources"`
JwtConfiguration AuthorizerJwtConfigurationPtrOutput `pulumi:"jwtConfiguration"`
Name pulumi.StringOutput `pulumi:"name"`
Region pulumi.StringOutput `pulumi:"region"`
}Associates a custom domain name with API Gateway v2 APIs using ACM certificates.
func NewDomainName(ctx *pulumi.Context,
name string, args *DomainNameArgs, opts ...pulumi.ResourceOption) (*DomainName, error)
func GetDomainName(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *DomainNameState, opts ...pulumi.ResourceOption) (*DomainName, error)
type DomainName struct {
pulumi.CustomResourceState
ApiMappingSelectionExpression pulumi.StringOutput `pulumi:"apiMappingSelectionExpression"`
Arn pulumi.StringOutput `pulumi:"arn"`
DomainName pulumi.StringOutput `pulumi:"domainName"`
// Contains TargetDomainName and HostedZoneId for Route 53 alias records
DomainNameConfiguration DomainNameDomainNameConfigurationOutput `pulumi:"domainNameConfiguration"`
MutualTlsAuthentication DomainNameMutualTlsAuthenticationPtrOutput `pulumi:"mutualTlsAuthentication"`
Region pulumi.StringOutput `pulumi:"region"`
Tags pulumi.StringMapOutput `pulumi:"tags"`
TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
}// Resources
func NewApi(ctx *pulumi.Context, name string, args *ApiArgs, opts ...pulumi.ResourceOption) (*Api, error)
func NewApiMapping(ctx *pulumi.Context, name string, args *ApiMappingArgs, opts ...pulumi.ResourceOption) (*ApiMapping, error)
func NewAuthorizer(ctx *pulumi.Context, name string, args *AuthorizerArgs, opts ...pulumi.ResourceOption) (*Authorizer, error)
func NewDeployment(ctx *pulumi.Context, name string, args *DeploymentArgs, opts ...pulumi.ResourceOption) (*Deployment, error)
func NewDomainName(ctx *pulumi.Context, name string, args *DomainNameArgs, opts ...pulumi.ResourceOption) (*DomainName, error)
func NewIntegration(ctx *pulumi.Context, name string, args *IntegrationArgs, opts ...pulumi.ResourceOption) (*Integration, error)
func NewIntegrationResponse(ctx *pulumi.Context, name string, args *IntegrationResponseArgs, opts ...pulumi.ResourceOption) (*IntegrationResponse, error)
func NewModel(ctx *pulumi.Context, name string, args *ModelArgs, opts ...pulumi.ResourceOption) (*Model, error)
func NewRoute(ctx *pulumi.Context, name string, args *RouteArgs, opts ...pulumi.ResourceOption) (*Route, error)
func NewRouteResponse(ctx *pulumi.Context, name string, args *RouteResponseArgs, opts ...pulumi.ResourceOption) (*RouteResponse, error)
func NewStage(ctx *pulumi.Context, name string, args *StageArgs, opts ...pulumi.ResourceOption) (*Stage, error)
func NewVpcLink(ctx *pulumi.Context, name string, args *VpcLinkArgs, opts ...pulumi.ResourceOption) (*VpcLink, error)
// Data sources
func GetApi(ctx *pulumi.Context, args *GetApiArgs, opts ...pulumi.InvokeOption) (*GetApiResult, error)
func GetApis(ctx *pulumi.Context, args *GetApisArgs, opts ...pulumi.InvokeOption) (*GetApisResult, error)
func GetApiMapping(ctx *pulumi.Context, args *GetApiMappingArgs, opts ...pulumi.InvokeOption) (*GetApiMappingResult, error)
func GetAuthorizer(ctx *pulumi.Context, args *GetAuthorizerArgs, opts ...pulumi.InvokeOption) (*GetAuthorizerResult, error)
func GetDeployment(ctx *pulumi.Context, args *GetDeploymentArgs, opts ...pulumi.InvokeOption) (*GetDeploymentResult, error)
func GetDomainName(ctx *pulumi.Context, args *GetDomainNameArgs, opts ...pulumi.InvokeOption) (*GetDomainNameResult, error)
func GetIntegration(ctx *pulumi.Context, args *GetIntegrationArgs, opts ...pulumi.InvokeOption) (*GetIntegrationResult, error)
func GetRoute(ctx *pulumi.Context, args *GetRouteArgs, opts ...pulumi.InvokeOption) (*GetRouteResult, error)
func GetStage(ctx *pulumi.Context, args *GetStageArgs, opts ...pulumi.InvokeOption) (*GetStageResult, error)
func GetVpcLink(ctx *pulumi.Context, args *GetVpcLinkArgs, opts ...pulumi.InvokeOption) (*GetVpcLinkResult, error)package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/apigateway"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lambda"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
api, err := apigateway.NewRestApi(ctx, "api", &apigateway.RestApiArgs{
Name: pulumi.String("myapi"),
Description: pulumi.String("My REST API"),
})
if err != nil {
return err
}
resource, err := apigateway.NewResource(ctx, "resource", &apigateway.ResourceArgs{
PathPart: pulumi.String("items"),
ParentId: api.RootResourceId,
RestApi: api.ID(),
})
if err != nil {
return err
}
method, err := apigateway.NewMethod(ctx, "method", &apigateway.MethodArgs{
RestApi: api.ID(),
ResourceId: resource.ID(),
HttpMethod: pulumi.String("GET"),
Authorization: pulumi.String("NONE"),
})
if err != nil {
return err
}
_, err = apigateway.NewIntegration(ctx, "integration", &apigateway.IntegrationArgs{
RestApi: api.ID(),
ResourceId: resource.ID(),
HttpMethod: method.HttpMethod,
IntegrationHttpMethod: pulumi.String("POST"),
Type: pulumi.String("AWS_PROXY"),
Uri: myLambda.InvokeArn,
})
return err
})
}package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/apigatewayv2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
api, err := apigatewayv2.NewApi(ctx, "api", &apigatewayv2.ApiArgs{
Name: pulumi.String("my-http-api"),
ProtocolType: pulumi.String("HTTP"),
})
if err != nil {
return err
}
integration, err := apigatewayv2.NewIntegration(ctx, "integration", &apigatewayv2.IntegrationArgs{
ApiId: api.ID(),
IntegrationType: pulumi.String("AWS_PROXY"),
IntegrationMethod: pulumi.String("POST"),
IntegrationUri: myLambda.InvokeArn,
})
if err != nil {
return err
}
_, err = apigatewayv2.NewRoute(ctx, "route", &apigatewayv2.RouteArgs{
ApiId: api.ID(),
RouteKey: pulumi.String("GET /items"),
Target: integration.ID().ApplyT(func(id string) (string, error) {
return fmt.Sprintf("integrations/%v", id), nil
}).(pulumi.StringOutput),
})
if err != nil {
return err
}
_, err = apigatewayv2.NewStage(ctx, "stage", &apigatewayv2.StageArgs{
ApiId: api.ID(),
Name: pulumi.String("$default"),
AutoDeploy: pulumi.Bool(true),
})
return err
})
}Install with Tessl CLI
npx tessl i tessl/golang-github-com-pulumi-pulumi-aws-sdk-v7docs