Created
February 5, 2019 16:57
-
-
Save jbutz/bd193c7faef82881da4d25f85cd57c2a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "http://json-schema.org/draft-04/schema#", | |
"additionalProperties": false, | |
"definitions": { | |
"AWS::Serverless::Api": { | |
"additionalProperties": false, | |
"properties": { | |
"DeletionPolicy": { | |
"enum": [ | |
"Delete", | |
"Retain", | |
"Snapshot" | |
], | |
"type": "string" | |
}, | |
"DependsOn": { | |
"anyOf": [ | |
{ | |
"pattern": "^[a-zA-Z0-9]+$", | |
"type": "string" | |
}, | |
{ | |
"items": { | |
"pattern": "^[a-zA-Z0-9]+$", | |
"type": "string" | |
}, | |
"type": "array" | |
} | |
] | |
}, | |
"Metadata": { | |
"type": "object" | |
}, | |
"Properties": { | |
"properties": { | |
"CacheClusterEnabled": { | |
"type": "boolean" | |
}, | |
"CacheClusterSize": { | |
"type": "string" | |
}, | |
"DefinitionBody": { | |
"type": "object" | |
}, | |
"DefinitionUri": { | |
"anyOf": [ | |
{ | |
"type": [ | |
"string" | |
] | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Api.S3Location" | |
} | |
] | |
}, | |
"Name": { | |
"type": "string" | |
}, | |
"StageName": { | |
"anyOf": [ | |
{ | |
"type": "string" | |
}, | |
{ | |
"type": "object" | |
} | |
] | |
}, | |
"Variables": { | |
"additionalProperties": false, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"anyOf": [ | |
{ | |
"type": "string" | |
}, | |
{ | |
"type": "object" | |
} | |
] | |
} | |
}, | |
"type": "object" | |
} | |
}, | |
"required": [ | |
"StageName" | |
], | |
"type": "object" | |
}, | |
"Type": { | |
"enum": [ | |
"AWS::Serverless::Api" | |
], | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Type", | |
"Properties" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Api.S3Location": { | |
"additionalProperties": false, | |
"properties": { | |
"Bucket": { | |
"type": "string" | |
}, | |
"Key": { | |
"type": "string" | |
}, | |
"Version": { | |
"type": "number" | |
} | |
}, | |
"required": [ | |
"Bucket", | |
"Key" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function": { | |
"additionalProperties": false, | |
"properties": { | |
"DeletionPolicy": { | |
"enum": [ | |
"Delete", | |
"Retain", | |
"Snapshot" | |
], | |
"type": "string" | |
}, | |
"DependsOn": { | |
"anyOf": [ | |
{ | |
"pattern": "^[a-zA-Z0-9]+$", | |
"type": "string" | |
}, | |
{ | |
"items": { | |
"pattern": "^[a-zA-Z0-9]+$", | |
"type": "string" | |
}, | |
"type": "array" | |
} | |
] | |
}, | |
"Metadata": { | |
"type": "object" | |
}, | |
"Properties": { | |
"allOf": [ | |
{ | |
"anyOf": [ | |
{ | |
"properties": { | |
"InlineCode": { | |
"type": "string" | |
} | |
} | |
}, | |
{ | |
"properties": { | |
"CodeUri": { | |
"anyOf": [ | |
{ | |
"type": [ | |
"string" | |
] | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.S3Location" | |
} | |
] | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"properties": { | |
"DeadLetterQueue": { | |
"$ref": "#/definitions/AWS::Serverless::Function.DeadLetterQueue" | |
}, | |
"Description": { | |
"type": "string" | |
}, | |
"Environment": { | |
"$ref": "#/definitions/AWS::Serverless::Function.FunctionEnvironment" | |
}, | |
"Events": { | |
"additionalProperties": false, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"$ref": "#/definitions/AWS::Serverless::Function.EventSource" | |
} | |
}, | |
"type": "object" | |
}, | |
"FunctionName": { | |
"type": "string" | |
}, | |
"Handler": { | |
"type": "string" | |
}, | |
"KmsKeyArn": { | |
"type": "string" | |
}, | |
"MemorySize": { | |
"type": "number" | |
}, | |
"Policies": { | |
"anyOf": [ | |
{ | |
"type": [ | |
"string" | |
] | |
}, | |
{ | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.IAMPolicyDocument" | |
}, | |
{ | |
"items": { | |
"$ref": "#/definitions/AWS::Serverless::Function.IAMPolicyDocument" | |
}, | |
"type": "array" | |
} | |
] | |
}, | |
"Role": { | |
"anyOf": [ | |
{ | |
"type": "string" | |
}, | |
{ | |
"type": "object" | |
} | |
] | |
}, | |
"Runtime": { | |
"type": "string" | |
}, | |
"Tags": { | |
"additionalProperties": false, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"type": "string" | |
} | |
}, | |
"type": "object" | |
}, | |
"Timeout": { | |
"type": "number" | |
}, | |
"Tracing": { | |
"type": "string" | |
}, | |
"VpcConfig": { | |
"$ref": "#/definitions/AWS::Serverless::Function.VpcConfig" | |
} | |
}, | |
"required": [ | |
"Handler", | |
"Runtime" | |
], | |
"type": "object" | |
} | |
] | |
}, | |
"Type": { | |
"enum": [ | |
"AWS::Serverless::Function" | |
], | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Type", | |
"Properties" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.AlexaSkillEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"Variables": { | |
"additionalProperties": false, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"type": "string" | |
} | |
}, | |
"type": "object" | |
} | |
}, | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.ApiEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"Method": { | |
"type": "string" | |
}, | |
"Path": { | |
"type": "string" | |
}, | |
"RestApiId": { | |
"anyOf": [ | |
{ | |
"type": "string" | |
}, | |
{ | |
"type": "object" | |
} | |
] | |
} | |
}, | |
"required": [ | |
"Method", | |
"Path" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.CloudWatchEventEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"Input": { | |
"type": "string" | |
}, | |
"InputPath": { | |
"type": "string" | |
}, | |
"Pattern": { | |
"type": "object" | |
} | |
}, | |
"required": [ | |
"Pattern" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.LogEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"LogGroupName": { | |
"type": "string" | |
}, | |
"FilterPattern": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"LogGroupName", | |
"FilterPattern" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.DeadLetterQueue": { | |
"additionalProperties": false, | |
"properties": { | |
"TargetArn": { | |
"type": "string" | |
}, | |
"Type": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"TargetArn", | |
"Type" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.DynamoDBEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"BatchSize": { | |
"type": "number" | |
}, | |
"StartingPosition": { | |
"type": "string" | |
}, | |
"Stream": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"BatchSize", | |
"StartingPosition", | |
"Stream" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.EventSource": { | |
"additionalProperties": false, | |
"properties": { | |
"Properties": { | |
"anyOf": [ | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.S3Event" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.SNSEvent" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.KinesisEvent" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.SQSEvent" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.DynamoDBEvent" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.ApiEvent" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.ScheduleEvent" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.CloudWatchEventEvent" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.LogEvent" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.IoTRuleEvent" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function.AlexaSkillEvent" | |
} | |
] | |
}, | |
"Type": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Properties", | |
"Type" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.FunctionEnvironment": { | |
"additionalProperties": false, | |
"properties": { | |
"Variables": { | |
"additionalProperties": false, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"type": "string" | |
} | |
}, | |
"type": "object" | |
} | |
}, | |
"required": [ | |
"Variables" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.IAMPolicyDocument": { | |
"additionalProperties": false, | |
"properties": { | |
"Statement": { | |
"items": { | |
"type": "object" | |
}, | |
"type": "array" | |
} | |
}, | |
"required": [ | |
"Statement" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.IoTRuleEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"AwsIotSqlVersion": { | |
"type": "string" | |
}, | |
"Sql": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Sql" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.KinesisEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"BatchSize": { | |
"type": "number" | |
}, | |
"StartingPosition": { | |
"type": "string" | |
}, | |
"Stream": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"StartingPosition", | |
"Stream" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.SQSEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"BatchSize": { | |
"type": "number" | |
}, | |
"Queue": { | |
"anyOf": [{ | |
"type": "string" | |
}, | |
{ | |
"type": "object" | |
} | |
] | |
} | |
}, | |
"required": [ | |
"Queue" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.S3Event": { | |
"additionalProperties": false, | |
"properties": { | |
"Bucket": { | |
"anyOf": [ | |
{ | |
"type": "string" | |
}, | |
{ | |
"type": "object" | |
} | |
] | |
}, | |
"Events": { | |
"anyOf": [ | |
{ | |
"type": [ | |
"string" | |
] | |
}, | |
{ | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
} | |
] | |
}, | |
"Filter": { | |
"$ref": "#/definitions/AWS::Serverless::Function.S3NotificationFilter" | |
} | |
}, | |
"required": [ | |
"Bucket", | |
"Events" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.S3Location": { | |
"additionalProperties": false, | |
"properties": { | |
"Bucket": { | |
"type": "string" | |
}, | |
"Key": { | |
"type": "string" | |
}, | |
"Version": { | |
"type": "number" | |
} | |
}, | |
"required": [ | |
"Bucket", | |
"Key" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.S3NotificationFilter": { | |
"additionalProperties": false, | |
"properties": { | |
"S3Key": { | |
"anyOf": [ | |
{ | |
"type": "string" | |
}, | |
{ | |
"type": "object" | |
} | |
] | |
} | |
}, | |
"required": [ | |
"S3Key" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.SNSEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"Topic": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Topic" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.ScheduleEvent": { | |
"additionalProperties": false, | |
"properties": { | |
"Input": { | |
"type": "string" | |
}, | |
"Schedule": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Schedule" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::Function.VpcConfig": { | |
"additionalProperties": false, | |
"properties": { | |
"SecurityGroupIds": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"SubnetIds": { | |
"items": { | |
"type": "string" | |
}, | |
"type": "array" | |
}, | |
"SubnetIdsUsingRef": { | |
"items": { | |
"type": "object" | |
}, | |
"type": "array" | |
} | |
}, | |
"required": [ | |
"SecurityGroupIds", | |
"SubnetIds" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::SimpleTable": { | |
"additionalProperties": false, | |
"properties": { | |
"DeletionPolicy": { | |
"enum": [ | |
"Delete", | |
"Retain", | |
"Snapshot" | |
], | |
"type": "string" | |
}, | |
"DependsOn": { | |
"anyOf": [ | |
{ | |
"pattern": "^[a-zA-Z0-9]+$", | |
"type": "string" | |
}, | |
{ | |
"items": { | |
"pattern": "^[a-zA-Z0-9]+$", | |
"type": "string" | |
}, | |
"type": "array" | |
} | |
] | |
}, | |
"Metadata": { | |
"type": "object" | |
}, | |
"Properties": { | |
"additionalProperties": false, | |
"properties": { | |
"PrimaryKey": { | |
"$ref": "#/definitions/AWS::Serverless::SimpleTable.PrimaryKey" | |
}, | |
"ProvisionedThroughput": { | |
"$ref": "#/definitions/AWS::Serverless::SimpleTable.ProvisionedThroughput" | |
}, | |
"SSESpecification": { | |
"$ref": "#/definitions/AWS::Serverless::SimpleTable.SSESpecification" | |
} | |
}, | |
"type": "object" | |
}, | |
"Type": { | |
"enum": [ | |
"AWS::Serverless::SimpleTable" | |
], | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Type" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::SimpleTable.PrimaryKey": { | |
"additionalProperties": false, | |
"properties": { | |
"Name": { | |
"type": "string" | |
}, | |
"Type": { | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Type" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::SimpleTable.ProvisionedThroughput": { | |
"additionalProperties": false, | |
"properties": { | |
"ReadCapacityUnits": { | |
"type": "number" | |
}, | |
"WriteCapacityUnits": { | |
"type": "number" | |
} | |
}, | |
"required": [ | |
"WriteCapacityUnits" | |
], | |
"type": "object" | |
}, | |
"AWS::Serverless::SimpleTable.SSESpecification": { | |
"additionalProperties": false, | |
"properties": { | |
"SSEEnabled": { | |
"type": "boolean" | |
} | |
}, | |
"required": [ | |
"SSEEnabled" | |
], | |
"type": "object" | |
}, | |
"CloudFormationResource": { | |
"additionalProperties": true, | |
"properties": { | |
"Type": { | |
"pattern": "^(?!^AWS::Serverless).*", | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Type" | |
], | |
"type": "object" | |
}, | |
"Parameter": { | |
"additionalProperties": false, | |
"properties": { | |
"AllowedPattern": { | |
"type": "string" | |
}, | |
"AllowedValues": { | |
"type": "array" | |
}, | |
"ConstraintDescription": { | |
"type": "string" | |
}, | |
"Default": { | |
"type": "string" | |
}, | |
"Description": { | |
"type": "string" | |
}, | |
"MaxLength": { | |
"type": "string" | |
}, | |
"MaxValue": { | |
"type": "string" | |
}, | |
"MinLength": { | |
"type": "string" | |
}, | |
"MinValue": { | |
"type": "string" | |
}, | |
"NoEcho": { | |
"type": [ | |
"string", | |
"boolean" | |
] | |
}, | |
"Type": { | |
"enum": [ | |
"String", | |
"Number", | |
"List<Number>", | |
"CommaDelimitedList", | |
"AWS::EC2::AvailabilityZone::Name", | |
"AWS::EC2::Image::Id", | |
"AWS::EC2::Instance::Id", | |
"AWS::EC2::KeyPair::KeyName", | |
"AWS::EC2::SecurityGroup::GroupName", | |
"AWS::EC2::SecurityGroup::Id", | |
"AWS::EC2::Subnet::Id", | |
"AWS::EC2::Volume::Id", | |
"AWS::EC2::VPC::Id", | |
"AWS::Route53::HostedZone::Id", | |
"List<AWS::EC2::AvailabilityZone::Name>", | |
"List<AWS::EC2::Image::Id>", | |
"List<AWS::EC2::Instance::Id>", | |
"List<AWS::EC2::SecurityGroup::GroupName>", | |
"List<AWS::EC2::SecurityGroup::Id>", | |
"List<AWS::EC2::Subnet::Id>", | |
"List<AWS::EC2::Volume::Id>", | |
"List<AWS::EC2::VPC::Id>", | |
"List<AWS::Route53::HostedZone::Id>", | |
"List<String>" | |
], | |
"type": "string" | |
} | |
}, | |
"required": [ | |
"Type" | |
], | |
"type": "object" | |
}, | |
"Tag": { | |
"additionalProperties": false, | |
"properties": { | |
"Key": { | |
"type": "string" | |
}, | |
"Value": { | |
"anyOf": [ | |
{ | |
"type": "string" | |
}, | |
{ | |
"type": "object" | |
} | |
] | |
} | |
}, | |
"type": "object" | |
} | |
}, | |
"properties": { | |
"AWSTemplateFormatVersion": { | |
"enum": [ | |
"2010-09-09" | |
], | |
"type": "string" | |
}, | |
"Conditions": { | |
"additionalProperties": false, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"type": "object" | |
} | |
}, | |
"type": "object" | |
}, | |
"Description": { | |
"description": "Template description", | |
"maxLength": 1024, | |
"type": "string" | |
}, | |
"Mappings": { | |
"additionalProperties": false, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"type": "object" | |
} | |
}, | |
"type": "object" | |
}, | |
"Metadata": { | |
"type": "object" | |
}, | |
"Outputs": { | |
"additionalProperties": false, | |
"maxProperties": 60, | |
"minProperties": 1, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"type": "object" | |
} | |
}, | |
"type": "object" | |
}, | |
"Parameters": { | |
"additionalProperties": false, | |
"maxProperties": 50, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"$ref": "#/definitions/Parameter" | |
} | |
}, | |
"type": "object" | |
}, | |
"Resources": { | |
"additionalProperties": false, | |
"patternProperties": { | |
"^[a-zA-Z0-9]+$": { | |
"anyOf": [ | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Api" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::Function" | |
}, | |
{ | |
"$ref": "#/definitions/AWS::Serverless::SimpleTable" | |
}, | |
{ | |
"$ref": "#/definitions/CloudFormationResource" | |
} | |
] | |
} | |
}, | |
"type": "object" | |
}, | |
"Transform": { | |
"enum": [ | |
"AWS::Serverless-2016-10-31" | |
], | |
"type": "string" | |
}, | |
"Globals": { | |
"type": "object" | |
}, | |
"Properties": { | |
"type": "object" | |
} | |
}, | |
"required": [ | |
"Resources" | |
], | |
"type": "object" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment