Exosphere

High level AWS CloudFormation language and compiler

The goal of Exosphere is to simplify the creation of Amazon Web Service CloudFormation templates and create useful compile-time feedback to the user. Exosphere is capable of turning .exo files into CloudFormation templates, .exo files are parsed and checked to ensure any generated CloudFormation is valid.

For example Exosphere is able to take the following input:

ExploreGithubArtifacts S3

Converting it into the following valid CloudFormation template:

{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Resources": {
      "ExploreGithubArtifacts": {
          "Type": "AWS::S3::Bucket",
      }
  }
}
        

Documentation

The format for an exosphere (.exo) file is:

resource_name resource_type { propKey1 propValue1, propKey2 propValue2, ... }
        

The properties are optional. If you omit them, then the brackets are not needed. If you include properties, then the brackets are required. However, the brackets and properties can span multiple lines. Please see the table below for more details.

An example of this would be:

MyS3Bucket S3
        

which would produce the cloudformation seen above.

Currently Supported CloudFormation Types

CloudFormation	Exosphere
AWS::S3::Bucket	S3
AWS::ECS::Cluster	ECSCluster
AWS::ApiGateway::Account	ApiGatewayAccount
AWS::ApiGateway::ApiKey	ApiGatewayApiKey
AWS::ApiGateway::ClientCertificate	ApiGatewayClientCertificate
AWS::ApiGateway::RestApi	ApiGatewayRestApi
AWS::ApiGateway::UsagePlan	ApiGatewayUsagePlan
AWS::AppStream::Stack	AppStreamStack
AWS::AppSync::ApiKey	AppSyncApiKey