Skip to content

Instantly share code, notes, and snippets.

FrontendS3Policy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: !Ref FrontendS3
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- s3:GetObject
FrontendOAI:
Type: AWS::CloudFront::CloudFrontOriginAccessIdentity
Properties:
CloudFrontOriginAccessIdentityConfig:
Comment: !Sub ${ProjectName}-oai
FrontendCachingPolicy:
Type: AWS::CloudFront::CachePolicy
Properties:
CachePolicyConfig:
Comment: !Sub ${ProjectName} frontend specific cache policy
DefaultTTL: 300
MaxTTL: 86400
MinTTL: 1
Name: !Sub ${ProjectName}-frontend-caching-policy
ParametersInCacheKeyAndForwardedToOrigin:
FormDataApiTestDeployment:
DependsOn: FormDataPOSTApi
Type: AWS::ApiGateway::Deployment
Properties:
RestApiId: !Ref APIGW
Description: Test stage deployment
FormDataApiTestStage:
Type: AWS::ApiGateway::Stage
Properties:
FormDataCORS:
Type: AWS::ApiGateway::Method
Properties:
AuthorizationType: NONE
HttpMethod: OPTIONS
ResourceId: !Ref FormDataResource
RestApiId: !Ref APIGW
Integration:
Type: MOCK
PassthroughBehavior: WHEN_NO_MATCH
FormDataPOSTApi:
Type: AWS::ApiGateway::Method
Properties:
AuthorizationType: NONE
HttpMethod: POST
ResourceId: !Ref FormDataResource
RestApiId: !Ref APIGW
RequestModels:
Parameters:
ApiResource:
Description: An API resource name to handle form data requests
Type: String
Resources:
FormDataResource:
Type: AWS::ApiGateway::Resource
Properties:
ParentId: !GetAtt APIGW.RootResourceId
FormDataRequestValidator:
Type: AWS::ApiGateway::RequestValidator
Properties:
RestApiId: !Ref APIGW
ValidateRequestBody: true
ValidateRequestParameters: true
FormDataInputModel:
Type: AWS::ApiGateway::Model
Properties:
ContentType: application/json
Description: A form data input model
Name: FormDataRequest
RestApiId: !Ref APIGW
Schema:
$schema: "http://json-schema.org/draft-04/schema#"
title: FormDataInputModel
APIGW:
Type: AWS::ApiGateway::RestApi
Properties:
Description: !Sub ${ProjectName} APIs
EndpointConfiguration:
Types:
- REGIONAL
Name: !Ref ProjectName