runway.runway_module_type module

Abstraction for the module ‘type’ value in a a Runway configuration.

class runway.runway_module_type.RunwayModuleType(path, class_path=None, type_str=None)[source]

Bases: object

Runway configuration type settings object.

The type property of a Runway configuration can be used to explicitly specify what module type you are intending to deploy.

Runway determines the type of module you are trying to deploy in 3 different ways. First, it will check for the type property as described here, next it will look for a suffix as described in Module Definition, and finally it will attempt to autodetect your module type by scanning the files of the project. If none of those settings produces a valid result an error will occur. The following are valid explicit types:


IaC Tool/Framework






`Serverless Framework`_






Static Site

Even when specifying a module type the module structure needs to be conducive with that type of project. If the files contained within don’t match the type then an error will occur.

Instantiate class.

Keyword Arguments
  • path (str) – The required path to the module

  • class_path (Optional[str]) – A supplied class_path to override the autodetected one.

  • type_str (Optional[str]) – An explicit type to assign to the RunwayModuleType

EXTENSION_MAP = {'cdk': 'runway.module.cdk.CloudDevelopmentKit', 'cfn': 'runway.module.cloudformation.CloudFormation', 'k8s': 'runway.module.k8s.K8s', 'sls': 'runway.module.serverless.Serverless', 'tf': 'runway.module.terraform.Terraform', 'web': 'runway.module.staticsite.StaticSite'}
TYPE_MAP = {'cdk': 'runway.module.cdk.CloudDevelopmentKit', 'cloudformation': 'runway.module.cloudformation.CloudFormation', 'kubernetes': 'runway.module.k8s.K8s', 'serverless': 'runway.module.serverless.Serverless', 'static': 'runway.module.staticsite.StaticSite', 'terraform': 'runway.module.terraform.Terraform'}