Skip to content

Instantly share code, notes, and snippets.

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Example Event API EventBridge
Parameters:
Environment:
Default: 'Dev'
Type: String
Resources:
EventsTopic:
Type: "AWS::SNS::Topic"
Properties:
TopicName: !Sub "Example-events-topic"
Event3Rule:
Type: AWS::Events::Rule
Properties:
Description: "EventSNSRule"
EventBusName: exampleEventBus
{
"version": "0",
"id": "d81e67a7-9917-52c0-e11d-4270e6ddf39a",
"detail-type": "ExampleEventsDetailType",
"source": "com.alite.example",
"account": "750670XXXXXX",
"time": "2020-08-19T16:56:56Z",
"region": "eu-west-1",
"resources": [],
"detail": {
#set($msgBody = $input.body)
#set($context.requestOverride.header['X-Amz-Target'] = "AWSEvents.PutEvents")
#set($context.requestOverride.header['Content-Type'] = "application/x-amz-json-1.1")
{
"Entries": [
{
"Source":"com.alite.example",
"Detail": "$util.escapeJavaScript($msgBody).replaceAll("\\'","'")",
"DetailType": "ExampleEventsDetailType",
"EventBusName": "exampleEventBus"
responseParameters:
method.response.header.Access-Control-Allow-Origin: "'*'"
responseTemplates:
application/json: |-
#set($inputRoot = $input.path('$'))
{
"policy": {
"minimumLength": "$inputRoot.UserPool.Policies.PasswordPolicy.MinimumLength",
"requireLowercase": "$inputRoot.UserPool.Policies.PasswordPolicy.RequireLowercase",
"requireNumbers": "$inputRoot.UserPool.Policies.PasswordPolicy.RequireNumbers",
CognitoExecutionRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- apigateway.amazonaws.com
x-amazon-apigateway-integration:
httpMethod: POST
type: AWS
uri: !Sub "arn:aws:apigateway:${AWS::Region}:cognito-idp:action/DescribeUserPool"
Resources:
UtilityApi:
Type: AWS::Serverless::Api
Properties:
DefinitionBody:
....
paths:
cognito/password/policy:
get:
...