runway.config.models.runway package¶
Runway config models.
- pydantic model runway.config.models.runway.RunwayAssumeRoleDefinitionModel[source]¶
Bases:
ConfigProperty
Used to defined a role to assume while Runway is processing each module.
Show JSON schema
{ "title": "Runway Deployment.assume_role Definition", "description": "Used to defined a role to assume while Runway is processing each module.", "type": "object", "properties": { "arn": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The ARN of the AWS IAM role to be assumed. (supports lookups)", "title": "Arn" }, "duration": { "anyOf": [ { "description": "The duration, in seconds, of the role session. (supports lookups)", "maximum": 43200, "minimum": 900, "type": "integer" }, { "pattern": "^\\$\\{.+\\}$", "type": "string" } ], "default": 3600, "title": "Duration" }, "post_deploy_env_revert": { "default": false, "description": "Revert the credentials stored in environment variables to what they were prior to execution after the deployment finished processing. (supports lookups)", "title": "Post Deployment Environment Revert", "type": "boolean" }, "session_name": { "default": "runway", "description": "An identifier for the assumed role session. (supports lookups)", "title": "Session Name", "type": "string" } }, "additionalProperties": false, "examples": [ { "arn": "arn:aws:iam::123456789012:role/name" }, { "arn": "${var role_arn.${env DEPLOY_ENVIRONMENT}}", "duration": 9001, "post_deploy_env_revert": true, "session_name": "runway-example" } ] }
- field arn: Annotated[str | None, Field(description='The ARN of the AWS IAM role to be assumed. (supports lookups)')] = None¶
The ARN of the AWS IAM role to be assumed. (supports lookups)
- field duration: Annotated[int, Field(description='The duration, in seconds, of the role session. (supports lookups)', ge=900, le=43200)] | Annotated[str, Field(pattern=RUNWAY_LOOKUP_STRING_REGEX)] = 3600¶
The duration, in seconds, of the role session. (supports lookups)
- field post_deploy_env_revert: Annotated[bool, Field(title='Post Deployment Environment Revert', description='Revert the credentials stored in environment variables to what they were prior to execution after the deployment finished processing. (supports lookups)')] = False¶
Revert the credentials stored in environment variables to what they were prior to execution after the deployment finished processing. (supports lookups)
- pydantic model runway.config.models.runway.RunwayConfigDefinitionModel¶
Bases:
ConfigProperty
Runway configuration definition model.
Show JSON schema
{ "title": "Runway Configuration File", "description": "Configuration file for use with Runway.", "type": "object", "properties": { "deployments": { "default": [], "description": "Array of Runway deployments definitions.", "items": { "$ref": "#/$defs/RunwayDeploymentDefinitionModel" }, "title": "Deployments", "type": "array" }, "future": { "$ref": "#/$defs/RunwayFutureDefinitionModel", "default": {}, "description": "Enable future features before they become default behavior." }, "ignore_git_branch": { "default": false, "description": "Optionally exclude the git branch name when determining the current deploy environment.", "title": "Ignore Git Branch", "type": "boolean" }, "runway_version": { "anyOf": [ { "type": "str" }, { "type": "null" } ], "default": null, "description": "Define the versions of Runway that can be used with this configuration file.", "examples": [ "\"<2.0.0\"", "\"==1.14.0\"", "\">=1.14.0,<2.0.0\"" ], "title": "Runway Version" }, "tests": { "default": [], "description": "Array of Runway test definitions that are executed with the 'test' command.", "items": { "$ref": "#/$defs/RunwayTestDefinitionModel" }, "title": "Tests", "type": "array" }, "variables": { "$ref": "#/$defs/RunwayVariablesDefinitionModel", "default": { "file_path": null, "sys_path": "." }, "description": "Runway variables." } }, "$defs": { "RunwayAssumeRoleDefinitionModel": { "additionalProperties": false, "description": "Used to defined a role to assume while Runway is processing each module.", "examples": [ { "arn": "arn:aws:iam::123456789012:role/name" }, { "arn": "${var role_arn.${env DEPLOY_ENVIRONMENT}}", "duration": 9001, "post_deploy_env_revert": true, "session_name": "runway-example" } ], "properties": { "arn": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The ARN of the AWS IAM role to be assumed. (supports lookups)", "title": "Arn" }, "duration": { "anyOf": [ { "description": "The duration, in seconds, of the role session. (supports lookups)", "maximum": 43200, "minimum": 900, "type": "integer" }, { "pattern": "^\\$\\{.+\\}$", "type": "string" } ], "default": 3600, "title": "Duration" }, "post_deploy_env_revert": { "default": false, "description": "Revert the credentials stored in environment variables to what they were prior to execution after the deployment finished processing. (supports lookups)", "title": "Post Deployment Environment Revert", "type": "boolean" }, "session_name": { "default": "runway", "description": "An identifier for the assumed role session. (supports lookups)", "title": "Session Name", "type": "string" } }, "title": "Runway Deployment.assume_role Definition", "type": "object" }, "RunwayDeploymentDefinitionModel": { "additionalProperties": false, "description": "A collection of modules, regions, and other configurations to deploy.", "properties": { "account_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Used to verify the currently assumed role or credentials. (supports lookups)", "examples": [ "example-alias", "${var alias.${env DEPLOY_ENVIRONMENT}}" ], "title": "Account Alias" }, "account_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Used to verify the currently assumed role or credentials. (supports lookups)", "examples": [ "123456789012", "${var id.${env DEPLOY_ENVIRONMENT}}" ], "title": "Account Id" }, "assume_role": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/RunwayAssumeRoleDefinitionModel" }, { "type": "null" } ], "default": { "arn": null, "duration": 3600, "post_deploy_env_revert": false, "session_name": "runway" }, "description": "Assume a role when processing the deployment. (supports lookups)", "examples": [ "arn:aws:iam::123456789012:role/name", { "arn": "arn:aws:iam::123456789012:role/name" }, { "arn": "${var role_arn.${env DEPLOY_ENVIRONMENT}}", "duration": 9001, "post_deploy_env_revert": true, "session_name": "runway-example" } ], "title": "Assume Role" }, "env_vars": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Additional variables to add to the environment when processing the deployment. (supports lookups)", "examples": [ "${var env_vars.${env DEPLOY_ENVIRONMENT}}", { "EXAMPLE_VARIABLE": "value", "KUBECONFIG": [ ".kube", "${env DEPLOY_ENVIRONMENT}", "config" ] } ], "title": "Environment Variables" }, "environments": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "boolean" }, { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Explicitly enable/disable the deployment for a specific deploy environment, AWS Account ID, and AWS Region combination. Can also be set as a static boolean value. (supports lookups)", "examples": [ "${var envs.${env DEPLOY_ENVIRONMENT}}", { "dev": "123456789012", "prod": "us-east-1" }, { "dev": true, "prod": false }, { "dev": [ "us-east-1" ], "prod": [ "us-west-2", "ca-central-1" ] }, { "dev": [ "123456789012/us-east-1", "123456789012/us-west-2" ], "prod": [ "234567890123/us-east-1", "234567890123/us-west-2" ] } ], "title": "Environments" }, "modules": { "description": "An array of modules to process as part of a deployment.", "items": { "anyOf": [ { "$ref": "#/$defs/RunwayModuleDefinitionModel" }, { "type": "string" } ] }, "title": "Modules", "type": "array" }, "module_options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Options that are passed directly to the modules within this deployment. (supports lookups)", "examples": [ "${var sampleapp.options.${env DEPLOY_ENVIRONMENT}}", { "some_option": "value" } ], "title": "Module Options" }, "name": { "default": "unnamed_deployment", "description": "The name of the deployment to be displayed in logs and the interactive selection menu.", "title": "Name", "type": "string" }, "parallel_regions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ], "default": [], "description": "An array of AWS Regions to process asynchronously. (supports lookups)", "examples": [ [ "us-east-1", "us-west-2" ], "${var regions.${dev DEPLOY_ENVIRONMENT}}" ], "title": "Parallel Regions" }, "parameters": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Used to pass variable values to modules in place of an environment configuration file. (supports lookups)", "examples": [ { "namespace": "example-${env DEPLOY_ENVIRONMENT}" }, "${var sampleapp.parameters.${env DEPLOY_ENVIRONMENT}}" ], "title": "Parameters" }, "regions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ], "default": [], "description": "An array of AWS Regions to process this deployment in. (supports lookups)", "examples": [ [ "us-east-1", "us-west-2" ], "${var regions.${dev DEPLOY_ENVIRONMENT}}", { "parallel": [ "us-east-1", "us-east-2" ] }, { "parallel": "${var regions.${env DEPLOY_ENVIRONMENT}}" } ], "title": "Regions" } }, "required": [ "modules" ], "title": "Runway Deployment Definition", "type": "object" }, "RunwayFutureDefinitionModel": { "additionalProperties": false, "description": "Enable features/behaviors that will be become standard ahead of their official release.", "properties": {}, "title": "Runway Future Definition", "type": "object" }, "RunwayModuleDefinitionModel": { "additionalProperties": false, "description": "Defines a directory containing IaC, the parameters to pass in during execution, and any applicable options for the module type.", "properties": { "class_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Import path to a custom Runway module class. (supports lookups)", "title": "Class Path" }, "env_vars": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Additional variables to add to the environment when processing the deployment. (supports lookups)", "examples": [ "${var env_vars.${env DEPLOY_ENVIRONMENT}}", { "EXAMPLE_VARIABLE": "value", "KUBECONFIG": [ ".kube", "${env DEPLOY_ENVIRONMENT}", "config" ] } ], "title": "Environment Variables" }, "environments": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "boolean" }, { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Explicitly enable/disable the deployment for a specific deploy environment, AWS Account ID, and AWS Region combination. Can also be set as a static boolean value. (supports lookups)", "examples": [ "${var envs.${env DEPLOY_ENVIRONMENT}}", { "dev": "123456789012", "prod": "us-east-1" }, { "dev": true, "prod": false }, { "dev": [ "us-east-1" ], "prod": [ "us-west-2", "ca-central-1" ] }, { "dev": [ "123456789012/us-east-1", "123456789012/us-west-2" ], "prod": [ "234567890123/us-east-1", "234567890123/us-west-2" ] } ], "title": "Environments" }, "name": { "default": "undefined", "description": "The name of the module to be displayed in logs and the interactive selection menu.", "title": "Name", "type": "string" }, "options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Module type specific options. (supports lookups)", "title": "Options" }, "parameters": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Used to pass variable values to modules in place of an environment configuration file. (supports lookups)", "examples": [ { "namespace": "example-${env DEPLOY_ENVIRONMENT}" }, "${var sampleapp.parameters.${env DEPLOY_ENVIRONMENT}}" ], "title": "Parameters" }, "path": { "anyOf": [ { "format": "path", "type": "string" }, { "type": "string" }, { "type": "null" } ], "default": null, "description": "Directory (relative to the Runway config file) containing IaC. (supports lookups)", "examples": [ "./", "sampleapp-${env DEPLOY_ENVIRONMENT}.cfn", "sampleapp.sls" ], "title": "Path" }, "tags": { "default": [], "description": "Array of values to categorize the module which can be used with the CLI to quickly select a group of modules. This field is only used by the `--tag` CLI option.", "examples": [ [ "type:network", "app:sampleapp" ] ], "items": { "type": "string" }, "title": "Tags", "type": "array" }, "type": { "anyOf": [ { "enum": [ "cdk", "cloudformation", "kubernetes", "serverless", "static", "terraform" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Explicitly define the module type. If not provided, this will be inferred.", "title": "Type" }, "parallel": { "default": [], "description": "Array of module definitions that can be executed asynchronously. Incompatible with class_path, path, and type.", "examples": [ [ { "path": "sampleapp-01.cfn" }, { "path": "sampleapp-02.cfn" } ] ], "items": { "$ref": "#/$defs/RunwayModuleDefinitionModel" }, "title": "Parallel", "type": "array" } }, "title": "Runway Module Definition", "type": "object" }, "RunwayTestDefinitionModel": { "description": "Tests that can be run via the 'test' command.", "properties": { "args": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Arguments to be passed to the test. Support varies by test type.", "title": "Arguments" }, "name": { "default": "test-name", "description": "Name of the test.", "title": "Name", "type": "string" }, "required": { "anyOf": [ { "type": "boolean" }, { "type": "string" } ], "default": false, "description": "Whether the test must pass for subsequent tests to be run.", "title": "Required" }, "type": { "enum": [ "cfn-lint", "script", "yamllint" ], "title": "Type", "type": "string" } }, "required": [ "type" ], "title": "Runway Test Definition", "type": "object" }, "RunwayVariablesDefinitionModel": { "additionalProperties": true, "description": "A variable definitions for the Runway config file. This is used to resolve the 'var' lookup.", "properties": { "file_path": { "anyOf": [ { "format": "path", "type": "string" }, { "type": "null" } ], "default": null, "description": "Explicit path to a variables file that will be loaded and merged with the variables defined here.", "title": "Variables File Path" }, "sys_path": { "default": "./", "description": "Directory to use as the root of a relative 'file_path'. If not provided, the current working directory is used.", "format": "path", "title": "Sys Path", "type": "string" } }, "title": "Runway Variables Definition", "type": "object" } }, "additionalProperties": false }
- field deployments: Annotated[list[RunwayDeploymentDefinitionModel], Field(description='Array of Runway deployments definitions.')] = []¶
- field future: Annotated[RunwayFutureDefinitionModel, Field(description='Enable future features before they become default behavior.')] = RunwayFutureDefinitionModel()¶
- field ignore_git_branch: Annotated[bool, Field(description='Optionally exclude the git branch name when determining the current deploy environment.')] = False¶
- field runway_version: Annotated[RunwayVersionField | None, Field(description='Define the versions of Runway that can be used with this configuration file.', examples=['"<2.0.0"', '"==1.14.0"', '">=1.14.0,<2.0.0"'])] = None¶
- field tests: Annotated[list[RunwayTestDefinitionModel], Field(description="Array of Runway test definitions that are executed with the 'test' command.")] = []¶
- field variables: Annotated[RunwayVariablesDefinitionModel, Field(description='Runway variables.')] = RunwayVariablesDefinitionModel(file_path=None, sys_path=PosixPath('.'))¶
- pydantic model runway.config.models.runway.RunwayDeploymentDefinitionModel¶
Bases:
ConfigProperty
Model for a Runway deployment definition.
Show JSON schema
{ "title": "Runway Deployment Definition", "description": "A collection of modules, regions, and other configurations to deploy.", "type": "object", "properties": { "account_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Used to verify the currently assumed role or credentials. (supports lookups)", "examples": [ "example-alias", "${var alias.${env DEPLOY_ENVIRONMENT}}" ], "title": "Account Alias" }, "account_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Used to verify the currently assumed role or credentials. (supports lookups)", "examples": [ "123456789012", "${var id.${env DEPLOY_ENVIRONMENT}}" ], "title": "Account Id" }, "assume_role": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/RunwayAssumeRoleDefinitionModel" }, { "type": "null" } ], "default": { "arn": null, "duration": 3600, "post_deploy_env_revert": false, "session_name": "runway" }, "description": "Assume a role when processing the deployment. (supports lookups)", "examples": [ "arn:aws:iam::123456789012:role/name", { "arn": "arn:aws:iam::123456789012:role/name" }, { "arn": "${var role_arn.${env DEPLOY_ENVIRONMENT}}", "duration": 9001, "post_deploy_env_revert": true, "session_name": "runway-example" } ], "title": "Assume Role" }, "env_vars": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Additional variables to add to the environment when processing the deployment. (supports lookups)", "examples": [ "${var env_vars.${env DEPLOY_ENVIRONMENT}}", { "EXAMPLE_VARIABLE": "value", "KUBECONFIG": [ ".kube", "${env DEPLOY_ENVIRONMENT}", "config" ] } ], "title": "Environment Variables" }, "environments": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "boolean" }, { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Explicitly enable/disable the deployment for a specific deploy environment, AWS Account ID, and AWS Region combination. Can also be set as a static boolean value. (supports lookups)", "examples": [ "${var envs.${env DEPLOY_ENVIRONMENT}}", { "dev": "123456789012", "prod": "us-east-1" }, { "dev": true, "prod": false }, { "dev": [ "us-east-1" ], "prod": [ "us-west-2", "ca-central-1" ] }, { "dev": [ "123456789012/us-east-1", "123456789012/us-west-2" ], "prod": [ "234567890123/us-east-1", "234567890123/us-west-2" ] } ], "title": "Environments" }, "modules": { "description": "An array of modules to process as part of a deployment.", "items": { "anyOf": [ { "$ref": "#/$defs/RunwayModuleDefinitionModel" }, { "type": "string" } ] }, "title": "Modules", "type": "array" }, "module_options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Options that are passed directly to the modules within this deployment. (supports lookups)", "examples": [ "${var sampleapp.options.${env DEPLOY_ENVIRONMENT}}", { "some_option": "value" } ], "title": "Module Options" }, "name": { "default": "unnamed_deployment", "description": "The name of the deployment to be displayed in logs and the interactive selection menu.", "title": "Name", "type": "string" }, "parallel_regions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ], "default": [], "description": "An array of AWS Regions to process asynchronously. (supports lookups)", "examples": [ [ "us-east-1", "us-west-2" ], "${var regions.${dev DEPLOY_ENVIRONMENT}}" ], "title": "Parallel Regions" }, "parameters": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Used to pass variable values to modules in place of an environment configuration file. (supports lookups)", "examples": [ { "namespace": "example-${env DEPLOY_ENVIRONMENT}" }, "${var sampleapp.parameters.${env DEPLOY_ENVIRONMENT}}" ], "title": "Parameters" }, "regions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ], "default": [], "description": "An array of AWS Regions to process this deployment in. (supports lookups)", "examples": [ [ "us-east-1", "us-west-2" ], "${var regions.${dev DEPLOY_ENVIRONMENT}}", { "parallel": [ "us-east-1", "us-east-2" ] }, { "parallel": "${var regions.${env DEPLOY_ENVIRONMENT}}" } ], "title": "Regions" } }, "$defs": { "RunwayAssumeRoleDefinitionModel": { "additionalProperties": false, "description": "Used to defined a role to assume while Runway is processing each module.", "examples": [ { "arn": "arn:aws:iam::123456789012:role/name" }, { "arn": "${var role_arn.${env DEPLOY_ENVIRONMENT}}", "duration": 9001, "post_deploy_env_revert": true, "session_name": "runway-example" } ], "properties": { "arn": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The ARN of the AWS IAM role to be assumed. (supports lookups)", "title": "Arn" }, "duration": { "anyOf": [ { "description": "The duration, in seconds, of the role session. (supports lookups)", "maximum": 43200, "minimum": 900, "type": "integer" }, { "pattern": "^\\$\\{.+\\}$", "type": "string" } ], "default": 3600, "title": "Duration" }, "post_deploy_env_revert": { "default": false, "description": "Revert the credentials stored in environment variables to what they were prior to execution after the deployment finished processing. (supports lookups)", "title": "Post Deployment Environment Revert", "type": "boolean" }, "session_name": { "default": "runway", "description": "An identifier for the assumed role session. (supports lookups)", "title": "Session Name", "type": "string" } }, "title": "Runway Deployment.assume_role Definition", "type": "object" }, "RunwayModuleDefinitionModel": { "additionalProperties": false, "description": "Defines a directory containing IaC, the parameters to pass in during execution, and any applicable options for the module type.", "properties": { "class_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Import path to a custom Runway module class. (supports lookups)", "title": "Class Path" }, "env_vars": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Additional variables to add to the environment when processing the deployment. (supports lookups)", "examples": [ "${var env_vars.${env DEPLOY_ENVIRONMENT}}", { "EXAMPLE_VARIABLE": "value", "KUBECONFIG": [ ".kube", "${env DEPLOY_ENVIRONMENT}", "config" ] } ], "title": "Environment Variables" }, "environments": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "boolean" }, { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Explicitly enable/disable the deployment for a specific deploy environment, AWS Account ID, and AWS Region combination. Can also be set as a static boolean value. (supports lookups)", "examples": [ "${var envs.${env DEPLOY_ENVIRONMENT}}", { "dev": "123456789012", "prod": "us-east-1" }, { "dev": true, "prod": false }, { "dev": [ "us-east-1" ], "prod": [ "us-west-2", "ca-central-1" ] }, { "dev": [ "123456789012/us-east-1", "123456789012/us-west-2" ], "prod": [ "234567890123/us-east-1", "234567890123/us-west-2" ] } ], "title": "Environments" }, "name": { "default": "undefined", "description": "The name of the module to be displayed in logs and the interactive selection menu.", "title": "Name", "type": "string" }, "options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Module type specific options. (supports lookups)", "title": "Options" }, "parameters": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Used to pass variable values to modules in place of an environment configuration file. (supports lookups)", "examples": [ { "namespace": "example-${env DEPLOY_ENVIRONMENT}" }, "${var sampleapp.parameters.${env DEPLOY_ENVIRONMENT}}" ], "title": "Parameters" }, "path": { "anyOf": [ { "format": "path", "type": "string" }, { "type": "string" }, { "type": "null" } ], "default": null, "description": "Directory (relative to the Runway config file) containing IaC. (supports lookups)", "examples": [ "./", "sampleapp-${env DEPLOY_ENVIRONMENT}.cfn", "sampleapp.sls" ], "title": "Path" }, "tags": { "default": [], "description": "Array of values to categorize the module which can be used with the CLI to quickly select a group of modules. This field is only used by the `--tag` CLI option.", "examples": [ [ "type:network", "app:sampleapp" ] ], "items": { "type": "string" }, "title": "Tags", "type": "array" }, "type": { "anyOf": [ { "enum": [ "cdk", "cloudformation", "kubernetes", "serverless", "static", "terraform" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Explicitly define the module type. If not provided, this will be inferred.", "title": "Type" }, "parallel": { "default": [], "description": "Array of module definitions that can be executed asynchronously. Incompatible with class_path, path, and type.", "examples": [ [ { "path": "sampleapp-01.cfn" }, { "path": "sampleapp-02.cfn" } ] ], "items": { "$ref": "#/$defs/RunwayModuleDefinitionModel" }, "title": "Parallel", "type": "array" } }, "title": "Runway Module Definition", "type": "object" } }, "additionalProperties": false, "required": [ "modules" ] }
- field account_alias: Annotated[str | None, Field(description='Used to verify the currently assumed role or credentials. (supports lookups)', examples=['example-alias', '${var alias.${env DEPLOY_ENVIRONMENT}}'])] = None¶
- field account_id: Annotated[str | None, LaxStr, Field(description='Used to verify the currently assumed role or credentials. (supports lookups)', examples=['123456789012', '${var id.${env DEPLOY_ENVIRONMENT}}'])] = None¶
- Constraints:
func = <function _handler at 0x7c07f52c6840>
json_schema_input_type = PydanticUndefined
- field assume_role: Annotated[str | RunwayAssumeRoleDefinitionModel | None, Field(description='Assume a role when processing the deployment. (supports lookups)', examples=['arn:aws:iam::123456789012:role/name', *cast('dict[str, list[str]]', RunwayAssumeRoleDefinitionModel.model_config.get('json_schema_extra', {})).get('examples', [])])] = RunwayAssumeRoleDefinitionModel(arn=None, duration=3600, post_deploy_env_revert=False, session_name='runway')¶
- field env_vars: Annotated[RunwayEnvVarsUnresolvedType, Field(title='Environment Variables', description='Additional variables to add to the environment when processing the deployment. (supports lookups)', examples=['${var env_vars.${env DEPLOY_ENVIRONMENT}}', {'EXAMPLE_VARIABLE': 'value', 'KUBECONFIG': ['.kube', '${env DEPLOY_ENVIRONMENT}', 'config']}])] = {}¶
- field environments: Annotated[RunwayEnvironmentsUnresolvedType, Field(description='Explicitly enable/disable the deployment for a specific deploy environment, AWS Account ID, and AWS Region combination. Can also be set as a static boolean value. (supports lookups)', examples=['${var envs.${env DEPLOY_ENVIRONMENT}}', {'dev': '123456789012', 'prod': 'us-east-1'}, {'dev': True, 'prod': False}, {'dev': ['us-east-1'], 'prod': ['us-west-2', 'ca-central-1']}, {'dev': ['123456789012/us-east-1', '123456789012/us-west-2'], 'prod': ['234567890123/us-east-1', '234567890123/us-west-2']}])] = {}¶
- field module_options: Annotated[dict[str, Any] | str, Field(description='Options that are passed directly to the modules within this deployment. (supports lookups)', examples=['${var sampleapp.options.${env DEPLOY_ENVIRONMENT}}', {'some_option': 'value'}])] = {}¶
- field modules: Annotated[list[RunwayModuleDefinitionModel], Field(description='An array of modules to process as part of a deployment.')] = PydanticUndefined¶
- field name: Annotated[str, Field(description='The name of the deployment to be displayed in logs and the interactive selection menu.')] = 'unnamed_deployment'¶
- field parallel_regions: Annotated[list[str] | str, Field(description='An array of AWS Regions to process asynchronously. (supports lookups)', examples=[['us-east-1', 'us-west-2'], '${var regions.${dev DEPLOY_ENVIRONMENT}}'])] = []¶
- field parameters: Annotated[dict[str, Any] | str, Field(description='Used to pass variable values to modules in place of an environment configuration file. (supports lookups)', examples=[{'namespace': 'example-${env DEPLOY_ENVIRONMENT}'}, '${var sampleapp.parameters.${env DEPLOY_ENVIRONMENT}}'])] = {}¶
- field regions: Annotated[list[str] | str, Field(description='An array of AWS Regions to process this deployment in. (supports lookups)', examples=[['us-east-1', 'us-west-2'], '${var regions.${dev DEPLOY_ENVIRONMENT}}', *cast('dict[str, list[str]]', RunwayDeploymentRegionDefinitionModel.model_config.get('json_schema_extra', {})).get('examples', [])])] = []¶
- pydantic model runway.config.models.runway.RunwayDeploymentRegionDefinitionModel[source]¶
Bases:
ConfigProperty
Only supports
parallel
field.Show JSON schema
{ "title": "Runway Deployment.regions Definition", "description": "Only supports ``parallel`` field.", "type": "object", "properties": { "parallel": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ], "description": "An array of AWS Regions to process asynchronously. (supports lookups)", "title": "Parallel Regions" } }, "additionalProperties": false, "examples": [ { "parallel": [ "us-east-1", "us-east-2" ] }, { "parallel": "${var regions.${env DEPLOY_ENVIRONMENT}}" } ], "required": [ "parallel" ] }
- pydantic model runway.config.models.runway.RunwayFutureDefinitionModel[source]¶
Bases:
ConfigProperty
Enable features/behaviors that will be become standard ahead of their official release.
Show JSON schema
{ "title": "Runway Future Definition", "description": "Enable features/behaviors that will be become standard ahead of their official release.", "type": "object", "properties": {}, "additionalProperties": false }
- pydantic model runway.config.models.runway.RunwayModuleDefinitionModel[source]¶
Bases:
ConfigProperty
Defines a directory containing IaC, parameters, and options for the module type.
Show JSON schema
{ "$defs": { "RunwayModuleDefinitionModel": { "additionalProperties": false, "description": "Defines a directory containing IaC, the parameters to pass in during execution, and any applicable options for the module type.", "properties": { "class_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Import path to a custom Runway module class. (supports lookups)", "title": "Class Path" }, "env_vars": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Additional variables to add to the environment when processing the deployment. (supports lookups)", "examples": [ "${var env_vars.${env DEPLOY_ENVIRONMENT}}", { "EXAMPLE_VARIABLE": "value", "KUBECONFIG": [ ".kube", "${env DEPLOY_ENVIRONMENT}", "config" ] } ], "title": "Environment Variables" }, "environments": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "boolean" }, { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Explicitly enable/disable the deployment for a specific deploy environment, AWS Account ID, and AWS Region combination. Can also be set as a static boolean value. (supports lookups)", "examples": [ "${var envs.${env DEPLOY_ENVIRONMENT}}", { "dev": "123456789012", "prod": "us-east-1" }, { "dev": true, "prod": false }, { "dev": [ "us-east-1" ], "prod": [ "us-west-2", "ca-central-1" ] }, { "dev": [ "123456789012/us-east-1", "123456789012/us-west-2" ], "prod": [ "234567890123/us-east-1", "234567890123/us-west-2" ] } ], "title": "Environments" }, "name": { "default": "undefined", "description": "The name of the module to be displayed in logs and the interactive selection menu.", "title": "Name", "type": "string" }, "options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Module type specific options. (supports lookups)", "title": "Options" }, "parameters": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Used to pass variable values to modules in place of an environment configuration file. (supports lookups)", "examples": [ { "namespace": "example-${env DEPLOY_ENVIRONMENT}" }, "${var sampleapp.parameters.${env DEPLOY_ENVIRONMENT}}" ], "title": "Parameters" }, "path": { "anyOf": [ { "format": "path", "type": "string" }, { "type": "string" }, { "type": "null" } ], "default": null, "description": "Directory (relative to the Runway config file) containing IaC. (supports lookups)", "examples": [ "./", "sampleapp-${env DEPLOY_ENVIRONMENT}.cfn", "sampleapp.sls" ], "title": "Path" }, "tags": { "default": [], "description": "Array of values to categorize the module which can be used with the CLI to quickly select a group of modules. This field is only used by the `--tag` CLI option.", "examples": [ [ "type:network", "app:sampleapp" ] ], "items": { "type": "string" }, "title": "Tags", "type": "array" }, "type": { "anyOf": [ { "enum": [ "cdk", "cloudformation", "kubernetes", "serverless", "static", "terraform" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Explicitly define the module type. If not provided, this will be inferred.", "title": "Type" }, "parallel": { "default": [], "description": "Array of module definitions that can be executed asynchronously. Incompatible with class_path, path, and type.", "examples": [ [ { "path": "sampleapp-01.cfn" }, { "path": "sampleapp-02.cfn" } ] ], "items": { "$ref": "#/$defs/RunwayModuleDefinitionModel" }, "title": "Parallel", "type": "array" } }, "title": "Runway Module Definition", "type": "object" } }, "$ref": "#/$defs/RunwayModuleDefinitionModel" }
- field class_path: Annotated[str | None, Field(description='Import path to a custom Runway module class. (supports lookups)')] = None¶
Import path to a custom Runway module class. (supports lookups)
- field env_vars: Annotated[RunwayEnvVarsUnresolvedType, Field(title='Environment Variables', description='Additional variables to add to the environment when processing the deployment. (supports lookups)', examples=['${var env_vars.${env DEPLOY_ENVIRONMENT}}', {'EXAMPLE_VARIABLE': 'value', 'KUBECONFIG': ['.kube', '${env DEPLOY_ENVIRONMENT}', 'config']}])] = {}¶
Additional variables to add to the environment when processing the deployment. (supports lookups)
- field environments: Annotated[RunwayEnvironmentsUnresolvedType, Field(description='Explicitly enable/disable the deployment for a specific deploy environment, AWS Account ID, and AWS Region combination. Can also be set as a static boolean value. (supports lookups)', examples=['${var envs.${env DEPLOY_ENVIRONMENT}}', {'dev': '123456789012', 'prod': 'us-east-1'}, {'dev': True, 'prod': False}, {'dev': ['us-east-1'], 'prod': ['us-west-2', 'ca-central-1']}, {'dev': ['123456789012/us-east-1', '123456789012/us-west-2'], 'prod': ['234567890123/us-east-1', '234567890123/us-west-2']}])] = {}¶
Explicitly enable/disable the deployment for a specific deploy environment, AWS Account ID, and AWS Region combination. Can also be set as a static boolean value. (supports lookups)
- field name: Annotated[str, Field(description='The name of the module to be displayed in logs and the interactive selection menu.')] = 'undefined'¶
The name of the module to be displayed in logs and the interactive selection menu.
- field options: Annotated[dict[str, Any] | str, Field(description='Module type specific options. (supports lookups)')] = {}¶
Module type specific options. (supports lookups)
- field parallel: Annotated[list[RunwayModuleDefinitionModel], Field(description='Array of module definitions that can be executed asynchronously. Incompatible with class_path, path, and type.', examples=[[{'path': 'sampleapp-01.cfn'}, {'path': 'sampleapp-02.cfn'}]])] = []¶
List of module definitions that can be executed asynchronously. Incompatible with class_path, path, and type.
- field parameters: Annotated[dict[str, Any] | str, Field(description='Used to pass variable values to modules in place of an environment configuration file. (supports lookups)', examples=[{'namespace': 'example-${env DEPLOY_ENVIRONMENT}'}, '${var sampleapp.parameters.${env DEPLOY_ENVIRONMENT}}'])] = {}¶
Used to pass variable values to modules in place of an environment configuration file. (supports lookups)
- field path: Annotated[Path | str | None, Field(description='Directory (relative to the Runway config file) containing IaC. (supports lookups)', examples=['./', 'sampleapp-${env DEPLOY_ENVIRONMENT}.cfn', 'sampleapp.sls'])] = None¶
Directory (relative to the Runway config file) containing IaC. (supports lookups)
- field tags: Annotated[list[str], Field(description='Array of values to categorize the module which can be used with the CLI to quickly select a group of modules. This field is only used by the `--tag` CLI option.', examples=[['type:network', 'app:sampleapp']])] = []¶
Array of values to categorize the module which can be used with the CLI to quickly select a group of modules.
This field is only used by the
--tag
CLI option.
- pydantic model runway.config.models.runway.RunwayTestDefinitionModel[source]¶
Bases:
ConfigProperty
Model for a Runway test definition.
Show JSON schema
{ "title": "Runway Test Definition", "description": "Tests that can be run via the 'test' command.", "type": "object", "properties": { "args": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" } ], "default": {}, "description": "Arguments to be passed to the test. Support varies by test type.", "title": "Arguments" }, "name": { "default": "test-name", "description": "Name of the test.", "title": "Name", "type": "string" }, "required": { "anyOf": [ { "type": "boolean" }, { "type": "string" } ], "default": false, "description": "Whether the test must pass for subsequent tests to be run.", "title": "Required" }, "type": { "enum": [ "cfn-lint", "script", "yamllint" ], "title": "Type", "type": "string" } }, "required": [ "type" ] }
- field args: Annotated[dict[str, Any] | str, Field(title='Arguments', description='Arguments to be passed to the test. Support varies by test type.')] = {}¶
- field required: Annotated[bool | str, Field(description='Whether the test must pass for subsequent tests to be run.')] = False¶
- field type: ValidRunwayTestTypeValues = PydanticUndefined¶
- pydantic model runway.config.models.runway.RunwayVariablesDefinitionModel[source]¶
Bases:
ConfigProperty
A variable definitions for the Runway config file.
This is used to resolve the
var
lookup.Show JSON schema
{ "title": "Runway Variables Definition", "description": "A variable definitions for the Runway config file. This is used to resolve the 'var' lookup.", "type": "object", "properties": { "file_path": { "anyOf": [ { "format": "path", "type": "string" }, { "type": "null" } ], "default": null, "description": "Explicit path to a variables file that will be loaded and merged with the variables defined here.", "title": "Variables File Path" }, "sys_path": { "default": "./", "description": "Directory to use as the root of a relative 'file_path'. If not provided, the current working directory is used.", "format": "path", "title": "Sys Path", "type": "string" } }, "additionalProperties": true }
- field file_path: Annotated[Path | None, Field(title='Variables File Path', description='Explicit path to a variables file that will be loaded and merged with the variables defined here.')] = None¶
Explicit path to a variables file that will be loaded and merged with the variables defined here.
- field sys_path: Annotated[Path, Field(description="Directory to use as the root of a relative 'file_path'. If not provided, the current working directory is used.")] = './'¶
Directory to use as the root of a relative ‘file_path’. If not provided, the current working directory is used.
- class runway.config.models.runway.RunwayVersionField¶
Bases:
SpecifierSet
Extends packaging.specifiers.SpecifierSet for use with pydantic.
- classmethod __get_pydantic_core_schema__(source_type: Any, handler: GetCoreSchemaHandler) InvalidSchema | AnySchema | NoneSchema | BoolSchema | IntSchema | FloatSchema | DecimalSchema | StringSchema | BytesSchema | DateSchema | TimeSchema | DatetimeSchema | TimedeltaSchema | LiteralSchema | EnumSchema | IsInstanceSchema | IsSubclassSchema | CallableSchema | ListSchema | TupleSchema | SetSchema | FrozenSetSchema | GeneratorSchema | DictSchema | AfterValidatorFunctionSchema | BeforeValidatorFunctionSchema | WrapValidatorFunctionSchema | PlainValidatorFunctionSchema | WithDefaultSchema | NullableSchema | UnionSchema | TaggedUnionSchema | ChainSchema | LaxOrStrictSchema | JsonOrPythonSchema | TypedDictSchema | ModelFieldsSchema | ModelSchema | DataclassArgsSchema | DataclassSchema | ArgumentsSchema | ArgumentsV3Schema | CallSchema | CustomErrorSchema | JsonSchema | UrlSchema | MultiHostUrlSchema | DefinitionsSchema | DefinitionReferenceSchema | UuidSchema | ComplexSchema ¶
Yield one of more validators with will be called to validate the input.
Each validator will receive, as input, the value returned from the previous validator.
- classmethod __get_pydantic_json_schema__(schema: core_schema.JsonSchema, handler: GetJsonSchemaHandler) JsonSchemaValue ¶
Mutate the field schema in place.
This is only called when output JSON schema from a model.