apigateway

Application level API proxy

There are multiple modes of deployment offered for the API Gateway, mainly to support use of product domains for endpoints. The key consideration is the handling of the host header. They reflect the changes and improvements AWS have made to the API Gateway over time. For whitelisted APIs, mode 4 is the recommended one now.

  1. Multi-domain cloudfront + EDGE endpoint
    • waf based IP whitelisting
    • multiple cloudfront aliases
    • host header blocked
    • EDGE based API Gateway
    • signing based on AWS API domain name
    • API-KEY used as shared secret between cloudfront and the API
  2. Single domain cloudfront + EDGE endpoint
    • waf based IP whitelisting
    • single cloudfront alias
    • host header blocked
    • EDGE based API Gateway
    • signing based on "sig4-" + alias
    • API-KEY used as shared secret between cloudfront and the API
  3. Multi-domain cloudfront + REGIONAL endpoint
    • waf based IP whitelisting
    • multiple cloudfront aliases
    • host header passed through to endpoint
    • REGIONAL based API Gateway
    • signing based on any of the aliases
    • API-KEY used as shared secret between cloudfront and the API
  4. API endpoint
    • policy based IP whitelisting
    • multiple aliases
    • EDGE or REGIONAL
    • signing based on any of the aliases
    • API-KEY can be used for client metering

If multiple domains are provided, the primary domain is used to provide the endpoint for the the API documentation and for the gateway attributes. For documentation, the others used to redirect to the primary.

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "apigateway" : {
        "Fragment" : "<string>",
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "WAF" : {
            "IPAddressGroups" : "<array of string>",
            "Default" : "BLOCK",
            "RuleDefault" : "ALLOW"
        },
        "EndpointType" : "EDGE",
        "IPAddressGroups" : "<array of string>",
        "Authentication" : "IP",
        "CloudFront" : {
            "AssumeSNI" : true,
            "EnableLogging" : true,
            "CountryGroups" : "<array of string>",
            "CustomHeaders" : "<array of any>",
            "Mapping" : false,
            "Compress" : true
        },
        "Certificate" : {
            "Qualifiers" : "<object>",
            "External" : "<boolean>",
            "Wildcard" : "<boolean>",
            "Domain" : "<string>",
            "Host" : "<string>",
            "HostParts" : "<array of string>",
            "IncludeInHost" : {
                "Product" : "<boolean>",
                "Environment" : "<boolean>",
                "Segment" : "<boolean>",
                "Tier" : "<boolean>",
                "Component" : "<boolean>",
                "Instance" : "<boolean>",
                "Version" : "<boolean>",
                "Host" : "<boolean>"
            }
        },
        "Publish" : {
            "DnsNamePrefix" : "docs",
            "IPAddressGroups" : "<array of string>"
        },
        "Mapping" : {
            "IncludeStage" : true
        },
        "Profiles" : {
            "Security" : "default"
        }
    }
}

Attribute Reference


apiusageplan

provides a metered link between an API gateway and an invoking client

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "apiusageplan" : {
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        }
    }
}

Attribute Reference


bastion

An bastion instance to manage vpc only components

Deployment Properties

  • Available Providers - aws
  • Component Level - segment

Component Format

{
    "bastion" : {
        "Active" : false,
        "OS" : "linux",
        "Fragment" : "<string>",
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "AutoScaling" : {
            "DetailedMetrics" : true,
            "WaitForSignal" : true,
            "MinUpdateInstances" : 1,
            "ReplaceCluster" : false,
            "UpdatePauseTime" : "10M",
            "StartupTimeout" : "15M",
            "AlwaysReplaceOnUpdate" : false,
            "ActivityCooldown" : 30
        },
        "Permissions" : {
            "Decrypt" : false,
            "AsFile" : false,
            "AppData" : false,
            "AppPublic" : false
        }
    }
}

Attribute Reference

  • Active - Optional - Type: boolean - Default: false
  • OS - Optional - Type: string - Default: linux
    Possible Values: [linux]
  • Fragment (Container) - Optional - Type: string
  • Links
    • Any - Optional - Type: string
    • Tenant - Optional - Type: string
    • Product - Optional - Type: string
    • Environment - Optional - Type: string
    • Segment - Optional - Type: string
    • Tier - Required - Type: string
    • Component - Required - Type: string
    • Function - Optional - Type: string
    • Service - Optional - Type: string
    • Task - Optional - Type: string
    • PortMapping (Port) - Optional - Type: string
    • Mount - Optional - Type: string
    • Platform - Optional - Type: string
    • Instance - Optional - Type: string
    • Version - Optional - Type: string
    • Role - Optional - Type: string
    • Direction - Optional - Type: string
    • Type - Optional - Type: string
  • AutoScaling
    • DetailedMetrics - Optional - Type: boolean - Default: true
      Description: Enable the collection of autoscale group detailed metrics
    • WaitForSignal - Optional - Type: boolean - Default: true
      Description: Wait for a cfn-signal before treating the instances as alive
    • MinUpdateInstances - Optional - Type: number - Default: 1
      Description: The minimum number of instances which must be available during an update
    • ReplaceCluster - Optional - Type: boolean - Default: false
      Description: When set to true a brand new cluster will be built, if false the instances in the current cluster will be replaced
    • UpdatePauseTime - Optional - Type: string - Default: 10M
      Description: How long to pause betweeen updates of instances
    • StartupTimeout - Optional - Type: string - Default: 15M
      Description: How long to wait for a cfn-signal to be received from a host
    • AlwaysReplaceOnUpdate - Optional - Type: boolean - Default: false
      Description: Replace instances on every update action
    • ActivityCooldown - Optional - Type: number - Default: 30
  • Permissions
    • Decrypt - Optional - Type: boolean - Default: false
    • AsFile - Optional - Type: boolean - Default: false
    • AppData - Optional - Type: boolean - Default: false
    • AppPublic - Optional - Type: boolean - Default: false

cache

Managed in-memory cache services

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Component Format

{
    "cache" : {
        "Engine" : "<string>",
        "EngineVersion" : "<string>",
        "Port" : "<string>",
        "Backup" : {
            "RetentionPeriod" : "<string>"
        }
    }
}

Attribute Reference


userpool

Managed identity service

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Notes

Warning

Requires second deployment to complete configuration

Component Format

{
    "userpool" : {
        "MFA" : false,
        "AdminCreatesUser" : true,
        "UnusedAccountTimeout" : 7,
        "VerifyEmail" : true,
        "VerifyPhone" : false,
        "LoginAliases" : [
            "email"
        ],
        "ClientGenerateSecret" : false,
        "ClientTokenValidity" : 30,
        "AllowUnauthenticatedIds" : false,
        "AuthorizationHeader" : "Authorization",
        "OAuth" : {
            "Scopes" : [
                "openid"
            ],
            "Flows" : [
                "code"
            ]
        },
        "PasswordPolicy" : {
            "MinimumLength" : 10,
            "Lowercase" : true,
            "Uppercase" : true,
            "Numbers" : true,
            "SpecialCharacters" : true
        },
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "Schema" : {
            "example" : {
                "DataType" : "String",
                "Mutable" : true,
                "Required" : true
            }
        }
    }
}

Attribute Reference


computecluster

Auto-Scaling IaaS with code deployment

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "computecluster" : {
        "Fragment" : "<string>",
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "UseInitAsService" : false,
        "AutoScaling" : {
            "DetailedMetrics" : true,
            "WaitForSignal" : true,
            "MinUpdateInstances" : 1,
            "ReplaceCluster" : false,
            "UpdatePauseTime" : "10M",
            "StartupTimeout" : "15M",
            "AlwaysReplaceOnUpdate" : false,
            "ActivityCooldown" : 30
        },
        "DockerHost" : false,
        "Ports" : {
            "example" : {
                "IPAddressGroups" : "<array of string>",
                "LB" : {
                    "Tier" : "<string>",
                    "Component" : "<string>",
                    "LinkName" : "lb",
                    "Instance" : "<string>",
                    "Version" : "<string>",
                    "PortMapping" : "<string>"
                }
            }
        }
    }
}

Attribute Reference

  • Fragment (Container) - Optional - Type: string
  • Links
    • Any - Optional - Type: string
    • Tenant - Optional - Type: string
    • Product - Optional - Type: string
    • Environment - Optional - Type: string
    • Segment - Optional - Type: string
    • Tier - Required - Type: string
    • Component - Required - Type: string
    • Function - Optional - Type: string
    • Service - Optional - Type: string
    • Task - Optional - Type: string
    • PortMapping (Port) - Optional - Type: string
    • Mount - Optional - Type: string
    • Platform - Optional - Type: string
    • Instance - Optional - Type: string
    • Version - Optional - Type: string
    • Role - Optional - Type: string
    • Direction - Optional - Type: string
    • Type - Optional - Type: string
  • UseInitAsService - Optional - Type: boolean - Default: false
  • AutoScaling
    • DetailedMetrics - Optional - Type: boolean - Default: true
      Description: Enable the collection of autoscale group detailed metrics
    • WaitForSignal - Optional - Type: boolean - Default: true
      Description: Wait for a cfn-signal before treating the instances as alive
    • MinUpdateInstances - Optional - Type: number - Default: 1
      Description: The minimum number of instances which must be available during an update
    • ReplaceCluster - Optional - Type: boolean - Default: false
      Description: When set to true a brand new cluster will be built, if false the instances in the current cluster will be replaced
    • UpdatePauseTime - Optional - Type: string - Default: 10M
      Description: How long to pause betweeen updates of instances
    • StartupTimeout - Optional - Type: string - Default: 15M
      Description: How long to wait for a cfn-signal to be received from a host
    • AlwaysReplaceOnUpdate - Optional - Type: boolean - Default: false
      Description: Replace instances on every update action
    • ActivityCooldown - Optional - Type: number - Default: 30
  • DockerHost - Optional - Type: boolean - Default: false
  • Ports

contenthub

Hub for decentralised content hosting with centralised publishing

Deployment Properties

  • Available Providers - github
  • Component Level - application

Component Format

{
    "contenthub" : {
        "Prefix" : "<string>",
        "Engine" : "github",
        "Branch" : "master",
        "Repository" : "<string>"
    }
}

Attribute Reference

  • Prefix - Required - Type: string
  • Engine - Optional - Type: string - Default: github
  • Branch - Optional - Type: string - Default: master
  • Repository - Optional - Type: string

contentnode

Node for decentralised content hosting with centralised publishing

Deployment Properties

  • Available Providers - github
  • Component Level - application

Component Format

{
    "contentnode" : {
        "Path" : {
            "Host" : "<string>",
            "Style" : "single",
            "IncludeInPath" : {
                "Product" : true,
                "Environment" : false,
                "Solution" : false,
                "Segment" : true,
                "Tier" : false,
                "Component" : false,
                "Instance" : false,
                "Version" : false,
                "Host" : false
            }
        },
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        }
    }
}

Attribute Reference

  • Path
    • Host - Optional - Type: string
    • Style - Optional - Type: string - Default: single
    • IncludeInPath
    • Product - Optional - Type: boolean - Default: true
    • Environment - Optional - Type: boolean - Default: false
    • Solution - Optional - Type: boolean - Default: false
    • Segment - Optional - Type: boolean - Default: true
    • Tier - Optional - Type: boolean - Default: false
    • Component - Optional - Type: boolean - Default: false
    • Instance - Optional - Type: boolean - Default: false
    • Version - Optional - Type: boolean - Default: false
    • Host - Optional - Type: boolean - Default: false
  • Links
    • Any - Optional - Type: string
    • Tenant - Optional - Type: string
    • Product - Optional - Type: string
    • Environment - Optional - Type: string
    • Segment - Optional - Type: string
    • Tier - Required - Type: string
    • Component - Required - Type: string
    • Function - Optional - Type: string
    • Service - Optional - Type: string
    • Task - Optional - Type: string
    • PortMapping (Port) - Optional - Type: string
    • Mount - Optional - Type: string
    • Platform - Optional - Type: string
    • Instance - Optional - Type: string
    • Version - Optional - Type: string
    • Role - Optional - Type: string
    • Direction - Optional - Type: string
    • Type - Optional - Type: string

datapipeline

Managed Data ETL Processing

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "datapipeline" : {
        "Fragment" : "<string>",
        "Permissions" : {
            "Decrypt" : true,
            "AsFile" : true,
            "AppData" : true,
            "AppPublic" : true
        },
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        }
    }
}

Attribute Reference

  • Fragment (Container) - Optional - Type: string
  • Permissions
    • Decrypt - Optional - Type: boolean - Default: true
    • AsFile - Optional - Type: boolean - Default: true
    • AppData - Optional - Type: boolean - Default: true
    • AppPublic - Optional - Type: boolean - Default: true
  • Links
    • Any - Optional - Type: string
    • Tenant - Optional - Type: string
    • Product - Optional - Type: string
    • Environment - Optional - Type: string
    • Segment - Optional - Type: string
    • Tier - Required - Type: string
    • Component - Required - Type: string
    • Function - Optional - Type: string
    • Service - Optional - Type: string
    • Task - Optional - Type: string
    • PortMapping (Port) - Optional - Type: string
    • Mount - Optional - Type: string
    • Platform - Optional - Type: string
    • Instance - Optional - Type: string
    • Version - Optional - Type: string
    • Role - Optional - Type: string
    • Direction - Optional - Type: string
    • Type - Optional - Type: string

dataset

A data aretefact that is managed in a similar way to a code unit

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "dataset" : {
        "Engine" : "<string>",
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "Prefix" : "<string>"
    }
}

Attribute Reference

  • Engine - Required - Type: string
    Possible Values: [s3, rdsSnapshot]
  • Links
    • Any - Optional - Type: string
    • Tenant - Optional - Type: string
    • Product - Optional - Type: string
    • Environment - Optional - Type: string
    • Segment - Optional - Type: string
    • Tier - Required - Type: string
    • Component - Required - Type: string
    • Function - Optional - Type: string
    • Service - Optional - Type: string
    • Task - Optional - Type: string
    • PortMapping (Port) - Optional - Type: string
    • Mount - Optional - Type: string
    • Platform - Optional - Type: string
    • Instance - Optional - Type: string
    • Version - Optional - Type: string
    • Role - Optional - Type: string
    • Direction - Optional - Type: string
    • Type - Optional - Type: string
  • Prefix - Optional - Type: string

ec2

A single virtual machine with no code deployment

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Component Format

{
    "ec2" : {
        "FixedIP" : false,
        "DockerHost" : false,
        "Fragment" : "<string>",
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "Ports" : {
            "example" : {
                "IPAddressGroups" : "<array of string>",
                "LB" : {
                    "Tier" : "<string>",
                    "Component" : "<string>",
                    "LinkName" : "lb",
                    "Instance" : "<string>",
                    "Version" : "<string>",
                    "PortMapping" : "<string>"
                }
            }
        }
    }
}

Attribute Reference


ecs

An autoscaling container host cluster

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Sub Components

  • service
    • Component Attribute - Services
    • Link Attribute - Service
  • task
    • Component Attribute - Tasks
    • Link Attribute - Task

Component Format

{
    "ecs" : {
        "Fragment" : "<string>",
        "FixedIP" : false,
        "LogDriver" : "awslogs",
        "ClusterLogGroup" : true,
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "AutoScaling" : {
            "DetailedMetrics" : true,
            "WaitForSignal" : true,
            "MinUpdateInstances" : 1,
            "ReplaceCluster" : false,
            "UpdatePauseTime" : "10M",
            "StartupTimeout" : "15M",
            "AlwaysReplaceOnUpdate" : false,
            "ActivityCooldown" : 30
        },
        "DockerUsers" : {
            "example" : {
                "UserName" : "<string>",
                "UID" : "<number>"
            }
        },
        "Services" : {
            "example" : "< instance of service>"
        },
        "Tasks" : {
            "example" : "< instance of task>"
        }
    }
}

Attribute Reference

  • Fragment (Container) - Optional - Type: string
  • FixedIP - Optional - Type: boolean - Default: false
  • LogDriver - Optional - Type: string - Default: awslogs
    Possible Values: [awslogs, json-file, fluentd]
  • ClusterLogGroup - Optional - Type: boolean - Default: true
  • Links
    • Any - Optional - Type: string
    • Tenant - Optional - Type: string
    • Product - Optional - Type: string
    • Environment - Optional - Type: string
    • Segment - Optional - Type: string
    • Tier - Required - Type: string
    • Component - Required - Type: string
    • Function - Optional - Type: string
    • Service - Optional - Type: string
    • Task - Optional - Type: string
    • PortMapping (Port) - Optional - Type: string
    • Mount - Optional - Type: string
    • Platform - Optional - Type: string
    • Instance - Optional - Type: string
    • Version - Optional - Type: string
    • Role - Optional - Type: string
    • Direction - Optional - Type: string
    • Type - Optional - Type: string
  • AutoScaling
    • DetailedMetrics - Optional - Type: boolean - Default: true
      Description: Enable the collection of autoscale group detailed metrics
    • WaitForSignal - Optional - Type: boolean - Default: true
      Description: Wait for a cfn-signal before treating the instances as alive
    • MinUpdateInstances - Optional - Type: number - Default: 1
      Description: The minimum number of instances which must be available during an update
    • ReplaceCluster - Optional - Type: boolean - Default: false
      Description: When set to true a brand new cluster will be built, if false the instances in the current cluster will be replaced
    • UpdatePauseTime - Optional - Type: string - Default: 10M
      Description: How long to pause betweeen updates of instances
    • StartupTimeout - Optional - Type: string - Default: 15M
      Description: How long to wait for a cfn-signal to be received from a host
    • AlwaysReplaceOnUpdate - Optional - Type: boolean - Default: false
      Description: Replace instances on every update action
    • ActivityCooldown - Optional - Type: number - Default: 30
  • DockerUsers
    • UserName - Optional - Type: string
    • UID - Required - Type: number

service

An orchestrated container with always on scheduling

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "service" : {
        "Containers" : {
            "example" : {
                "Cpu" : "<number>",
                "Links" : {
                    "example" : {
                        "Any" : "<string>",
                        "Tenant" : "<string>",
                        "Product" : "<string>",
                        "Environment" : "<string>",
                        "Segment" : "<string>",
                        "Tier" : "<string>",
                        "Component" : "<string>",
                        "Function" : "<string>",
                        "Service" : "<string>",
                        "Task" : "<string>",
                        "PortMapping" : "<string>",
                        "Mount" : "<string>",
                        "Platform" : "<string>",
                        "Instance" : "<string>",
                        "Version" : "<string>",
                        "Role" : "<string>",
                        "Direction" : "<string>",
                        "Type" : "<string>"
                    }
                },
                "LocalLogging" : false,
                "LogDriver" : "awslogs",
                "ContainerLogGroup" : false,
                "RunCapabilities" : "<array of string>",
                "Privileged" : false,
                "MaximumMemory" : "<unknown>",
                "MemoryReservation" : "<number>",
                "Ports" : {
                    "example" : {
                        "Container" : "unknown",
                        "DynamicHostPort" : false,
                        "LB" : {
                            "Tier" : "<string>",
                            "Component" : "<string>",
                            "LinkName" : "lb",
                            "Instance" : "<string>",
                            "Version" : "<string>",
                            "PortMapping" : "<string>"
                        },
                        "IPAddressGroups" : "<array of string>"
                    }
                },
                "Version" : "<string>",
                "ContainerNetworkLinks" : "<array of string>"
            }
        },
        "DesiredCount" : -1,
        "UseTaskRole" : true,
        "Permissions" : {
            "Decrypt" : true,
            "AsFile" : true,
            "AppData" : true,
            "AppPublic" : true
        },
        "TaskLogGroup" : true,
        "NetworkMode" : "<string>",
        "ContainerNetworkLinks" : false,
        "Placement" : {
            "Strategy" : "<string>"
        }
    }
}

Attribute Reference


task

A container defintion which is invoked on demand

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "task" : {
        "Containers" : {
            "example" : {
                "Cpu" : "<number>",
                "Links" : {
                    "example" : {
                        "Any" : "<string>",
                        "Tenant" : "<string>",
                        "Product" : "<string>",
                        "Environment" : "<string>",
                        "Segment" : "<string>",
                        "Tier" : "<string>",
                        "Component" : "<string>",
                        "Function" : "<string>",
                        "Service" : "<string>",
                        "Task" : "<string>",
                        "PortMapping" : "<string>",
                        "Mount" : "<string>",
                        "Platform" : "<string>",
                        "Instance" : "<string>",
                        "Version" : "<string>",
                        "Role" : "<string>",
                        "Direction" : "<string>",
                        "Type" : "<string>"
                    }
                },
                "LocalLogging" : false,
                "LogDriver" : "awslogs",
                "ContainerLogGroup" : false,
                "RunCapabilities" : "<array of string>",
                "Privileged" : false,
                "MaximumMemory" : "<unknown>",
                "MemoryReservation" : "<number>",
                "Ports" : {
                    "example" : {
                        "Container" : "unknown",
                        "DynamicHostPort" : false,
                        "LB" : {
                            "Tier" : "<string>",
                            "Component" : "<string>",
                            "LinkName" : "lb",
                            "Instance" : "<string>",
                            "Version" : "<string>",
                            "PortMapping" : "<string>"
                        },
                        "IPAddressGroups" : "<array of string>"
                    }
                },
                "Version" : "<string>",
                "ContainerNetworkLinks" : "<array of string>"
            }
        },
        "UseTaskRole" : true,
        "Permissions" : {
            "Decrypt" : true,
            "AsFile" : true,
            "AppData" : true,
            "AppPublic" : true
        },
        "TaskLogGroup" : true,
        "FixedName" : false
    }
}

Attribute Reference


efs

A managed network attached file share

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Sub Components

  • efsMount
    • Component Attribute - Mounts
    • Link Attribute - Mount

Component Format

{
    "efs" : {
        "Encrypted" : true,
        "Mounts" : {
            "example" : "< instance of efsMount>"
        }
    }
}

Attribute Reference

  • Encrypted - Optional - Type: boolean - Default: true

efsmount

A specific directory on the share for OS mounting

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Component Format

{
    "efsMount" : {
        "Directory" : "<string>"
    }
}

Attribute Reference


es

A managed ElasticSearch instance

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Component Format

{
    "es" : {
        "Authentication" : "IP",
        "IPAddressGroups" : "<array of string>",
        "AdvancedOptions" : "<array of string>",
        "Version" : "2.3",
        "Encrypted" : false,
        "Snapshot" : {
            "Hour" : "<string>"
        },
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        }
    }
}

Attribute Reference


lambda

Container for a Function as a Service deployment

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Sub Components

  • function
    • Component Attribute - Functions
    • Link Attribute - Function

Component Format

{
    "lambda" : {
        "Functions" : {
            "example" : "< instance of function>"
        }
    }
}

Attribute Reference


function

A specific entry point for the lambda deployment

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "function" : {
        "Fragment" : "<string>",
        "Handler" : "<string>",
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "LogMetrics" : {
            "example" : {
                "LogFilter" : "<string>"
            }
        },
        "LogWatchers" : {
            "example" : {
                "LogFilter" : "<string>",
                "Links" : {
                    "example" : {
                        "Any" : "<string>",
                        "Tenant" : "<string>",
                        "Product" : "<string>",
                        "Environment" : "<string>",
                        "Segment" : "<string>",
                        "Tier" : "<string>",
                        "Component" : "<string>",
                        "Function" : "<string>",
                        "Service" : "<string>",
                        "Task" : "<string>",
                        "PortMapping" : "<string>",
                        "Mount" : "<string>",
                        "Platform" : "<string>",
                        "Instance" : "<string>",
                        "Version" : "<string>",
                        "Role" : "<string>",
                        "Direction" : "<string>",
                        "Type" : "<string>"
                    }
                }
            }
        },
        "Alerts" : {
            "example" : {
                "Description" : "unknown",
                "Name" : "<string>",
                "Metric" : {
                    "Name" : "<string>",
                    "Type" : "<string>"
                },
                "Threshold" : 1,
                "Severity" : "Info",
                "Namespace" : "<string>",
                "Comparison" : "Threshold",
                "Operator" : "GreaterThanOrEqualToThreshold",
                "Time" : 300,
                "Periods" : 1,
                "Statistic" : "Sum",
                "ReportOk" : false,
                "MissingData" : "notBreaching"
            }
        },
        "Memory" : 0,
        "RunTime" : "<string>",
        "Schedules" : {
            "example" : {
                "Expression" : "rate(6 minutes)",
                "InputPath" : "/healthcheck",
                "Input" : "<object>"
            }
        },
        "Timeout" : 0,
        "VPCAccess" : true,
        "UseSegmentKey" : false,
        "Permissions" : {
            "Decrypt" : true,
            "AsFile" : true,
            "AppData" : true,
            "AppPublic" : true
        },
        "PredefineLogGroup" : false,
        "Environment" : {
            "AsFile" : false,
            "Json" : {
                "Escaped" : true,
                "Prefix" : "json"
            }
        }
    }
}

Attribute Reference

  • Fragment (Container) - Optional - Type: string
  • Handler - Required - Type: string
  • Links
    • Any - Optional - Type: string
    • Tenant - Optional - Type: string
    • Product - Optional - Type: string
    • Environment - Optional - Type: string
    • Segment - Optional - Type: string
    • Tier - Required - Type: string
    • Component - Required - Type: string
    • Function - Optional - Type: string
    • Service - Optional - Type: string
    • Task - Optional - Type: string
    • PortMapping (Port) - Optional - Type: string
    • Mount - Optional - Type: string
    • Platform - Optional - Type: string
    • Instance - Optional - Type: string
    • Version - Optional - Type: string
    • Role - Optional - Type: string
    • Direction - Optional - Type: string
    • Type - Optional - Type: string
  • LogMetrics
  • LogWatchers
  • Alerts
    • Description - Optional
    • Name - Required - Type: string
    • Metric
    • Name - Required - Type: string
    • Type - Required - Type: string
    • Threshold - Optional - Type: number - Default: 1
    • Severity - Optional - Type: string - Default: Info
    • Namespace - Optional - Type: string
    • Comparison - Optional - Type: string - Default: Threshold
    • Operator - Optional - Type: string - Default: GreaterThanOrEqualToThreshold
    • Time - Optional - Type: number - Default: 300
    • Periods - Optional - Type: number - Default: 1
    • Statistic - Optional - Type: string - Default: Sum
    • ReportOk - Optional - Type: boolean - Default: false
    • MissingData - Optional - Type: string - Default: notBreaching
  • Memory (MemorySize) - Optional - Type: number - Default: 0
  • RunTime - Required - Type: string
    Possible Values: [nodejs, nodejs4.3, nodejs6.10, nodejs8.10, java8, python2.7, python3.6, dotnetcore1.0, dotnetcore2.0, dotnetcore2.1, nodejs4.3-edge, go1.x]
  • Schedules
    • Expression - Optional - Type: string - Default: rate(6 minutes)
    • InputPath - Optional - Type: string - Default: /healthcheck
    • Input - Optional - Type: object
  • Timeout - Optional - Type: number - Default: 0
  • VPCAccess - Optional - Type: boolean - Default: true
  • UseSegmentKey - Optional - Type: boolean - Default: false
  • Permissions
    • Decrypt - Optional - Type: boolean - Default: true
    • AsFile - Optional - Type: boolean - Default: true
    • AppData - Optional - Type: boolean - Default: true
    • AppPublic - Optional - Type: boolean - Default: true
  • PredefineLogGroup - Optional - Type: boolean - Default: false
  • Environment
    • AsFile - Optional - Type: boolean - Default: false
    • Json
    • Escaped - Optional - Type: boolean - Default: true
    • Prefix - Optional - Type: string - Default: json
      Possible Values: [json, ]

lb

A load balancer for virtual network based components

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Notes

Warning

Requires second deployment to complete configuration

Sub Components

  • lbport
    • Component Attribute - PortMappings
    • Link Attribute - PortMapping, Port

Component Format

{
    "lb" : {
        "Logs" : false,
        "Engine" : "application",
        "Profiles" : {
            "Security" : "default"
        },
        "IdleTimeout" : 60,
        "HealthCheckPort" : "<string>",
        "PortMappings" : {
            "example" : "< instance of lbport>"
        }
    }
}

Attribute Reference

  • Logs - Optional - Type: boolean - Default: false
  • Engine - Optional - Type: string - Default: application
    Possible Values: [application, network, classic]
  • Profiles
    • Security - Optional - Type: string - Default: default
  • IdleTimeout - Optional - Type: number - Default: 60
  • HealthCheckPort - Optional - Type: string

lbport

A specifc listener based on the client side network port

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Component Format

{
    "lbport" : {
        "IPAddressGroups" : "<array of string>",
        "Certificate" : {
            "Qualifiers" : "<object>",
            "External" : "<boolean>",
            "Wildcard" : "<boolean>",
            "Domain" : "<string>",
            "Host" : "<string>",
            "HostParts" : "<array of string>",
            "IncludeInHost" : {
                "Product" : "<boolean>",
                "Environment" : "<boolean>",
                "Segment" : "<boolean>",
                "Tier" : "<boolean>",
                "Component" : "<boolean>",
                "Instance" : "<boolean>",
                "Version" : "<boolean>",
                "Host" : "<boolean>"
            }
        },
        "HostFilter" : false,
        "Mapping" : "<string>",
        "Path" : "default",
        "Priority" : 100,
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "Authentication" : {
            "SessionCookieName" : "AWSELBAuthSessionCookie",
            "SessionTimeout" : 604800
        },
        "Redirect" : {
            "Protocol" : "HTTPS",
            "Port" : "443",
            "Host" : "#{host}",
            "Path" : "/#{path}",
            "Query" : "#{query}",
            "Permanent" : true
        },
        "Fixed" : {
            "Message" : "This application is currently unavailable. Please try again later.",
            "ContentType" : "text/plain",
            "StatusCode" : "404"
        },
        "Forward" : {
            "TargetType" : "instance",
            "SlowStartTime" : -1,
            "StickinessTime" : -1,
            "DeregistrationTimeout" : 30
        }
    }
}

Attribute Reference


mobilenotifier

A managed mobile notification proxy

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Sub Components

Component Format

{
    "mobilenotifier" : {
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "SuccessSampleRate" : "100",
        "Credentials" : {
            "EncryptionScheme" : "base64"
        },
        "Platforms" : {
            "example" : "< instance of mobilenotiferplatform>"
        }
    }
}

Attribute Reference


mobilenotiferplatform

A specific mobile platform notification proxy

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Notes

Warning

SMS Engine requires account level configuration for AWS provider

Info

Platform specific credentials are required and must be provided as credentials

Component Format

{
    "mobilenotiferplatform" : {
        "Engine" : "<string>",
        "SuccessSampleRate" : "<string>",
        "Credentials" : {
            "EncryptionScheme" : "<string>"
        },
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "LogMetrics" : {
            "example" : {
                "LogFilter" : "<string>"
            }
        }
    }
}

Attribute Reference


rds

A managed SQL database instance

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Component Format

{
    "rds" : {
        "Engine" : "<unknown>",
        "EngineVersion" : "<string>",
        "Port" : "<string>",
        "Encrypted" : false,
        "GenerateCredentials" : {
            "Enabled" : false,
            "MasterUserName" : "root",
            "CharacterLength" : 20,
            "EncryptionScheme" : "<string>"
        },
        "Size" : 20,
        "Backup" : {
            "RetentionPeriod" : 35,
            "SnapshotOnDeploy" : true
        },
        "AutoMinorVersionUpgrade" : "<boolean>",
        "DatabaseName" : "<string>",
        "DBParameters" : "<object>"
    }
}

Attribute Reference


s3

HTTP based object storage service

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Component Format

{
    "s3" : {
        "Lifecycle" : {
            "Expiration" : "<unknown>",
            "Offline" : "<unknown>",
            "Versioning" : false
        },
        "Website" : {
            "Index" : "index.html",
            "Error" : "<string>"
        },
        "PublicAccess" : {
            "example" : {
                "Enabled" : false,
                "Permissions" : "ro",
                "IPAddressGroups" : [
                    "_localnet"
                ],
                "Paths" : "<array of string>"
            }
        },
        "Style" : "<string>",
        "Notifications" : "<object>",
        "CORSBehaviours" : "<array of string>"
    }
}

Attribute Reference

  • Lifecycle
    • Expiration - Optional
      Types: string, number Description: Provide either a date or a number of days
    • Offline - Optional
      Types: string, number Description: Provide either a date or a number of days
    • Versioning - Optional - Type: boolean - Default: false
  • Website
    • Index - Optional - Type: string - Default: index.html
    • Error - Optional - Type: string
  • PublicAccess
    • Enabled - Optional - Type: boolean - Default: false
    • Permissions - Optional - Type: string - Default: ro
      Possible Values: [ro, wo, rw]
    • IPAddressGroups - Optional - Type: array of string - Default: _localnet
    • Paths - Optional - Type: array of string
  • Style - Optional - Type: string
    Description: TODO(mfl): Think this can be removed
  • Notifications - Optional - Type: object
  • CORSBehaviours - Optional - Type: array of string

spa

Object stored hosted web application with content distribution management

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "spa" : {
        "Fragment" : "<string>",
        "Links" : "<object>",
        "WAF" : {
            "IPAddressGroups" : "<array of string>",
            "Default" : "BLOCK",
            "RuleDefault" : "ALLOW"
        },
        "CloudFront" : {
            "AssumeSNI" : true,
            "EnableLogging" : true,
            "CountryGroups" : "<array of string>",
            "ErrorPage" : "/index.html",
            "DeniedPage" : "<string>",
            "NotFoundPage" : "<string>",
            "CachingTTL" : {
                "Default" : 600,
                "Maximum" : 31536000,
                "Minimum" : 0
            },
            "Compress" : true
        },
        "Certificate" : {
            "Qualifiers" : "<object>",
            "External" : "<boolean>",
            "Wildcard" : "<boolean>",
            "Domain" : "<string>",
            "Host" : "<string>",
            "HostParts" : "<array of string>",
            "IncludeInHost" : {
                "Product" : "<boolean>",
                "Environment" : "<boolean>",
                "Segment" : "<boolean>",
                "Tier" : "<boolean>",
                "Component" : "<boolean>",
                "Instance" : "<boolean>",
                "Version" : "<boolean>",
                "Host" : "<boolean>"
            }
        },
        "Profiles" : {
            "Security" : "default"
        }
    }
}

Attribute Reference


sqs

Managed worker queue engine

Deployment Properties

  • Available Providers - aws
  • Component Level - solution

Component Format

{
    "sqs" : {
        "DelaySeconds" : "<number>",
        "MaximumMessageSize" : "<number>",
        "MessageRetentionPeriod" : "<number>",
        "ReceiveMessageWaitTimeSeconds" : "<number>",
        "DeadLetterQueue" : {
            "MaxReceives" : 0
        },
        "VisibilityTimeout" : "<number>"
    }
}

Attribute Reference


user

A user with permissions on components deployed in the solution

Deployment Properties

  • Available Providers - aws
  • Component Level - application

Component Format

{
    "user" : {
        "Fragment" : "<string>",
        "Links" : {
            "example" : {
                "Any" : "<string>",
                "Tenant" : "<string>",
                "Product" : "<string>",
                "Environment" : "<string>",
                "Segment" : "<string>",
                "Tier" : "<string>",
                "Component" : "<string>",
                "Function" : "<string>",
                "Service" : "<string>",
                "Task" : "<string>",
                "PortMapping" : "<string>",
                "Mount" : "<string>",
                "Platform" : "<string>",
                "Instance" : "<string>",
                "Version" : "<string>",
                "Role" : "<string>",
                "Direction" : "<string>",
                "Type" : "<string>"
            }
        },
        "GenerateCredentials" : {
            "Formats" : [
                "system"
            ],
            "EncryptionScheme" : "<string>",
            "CharacterLength" : 20
        },
        "Permissions" : {
            "Decrypt" : true,
            "AsFile" : true,
            "AppData" : true,
            "AppPublic" : true
        }
    }
}

Attribute Reference