/** A registered Terraform module: a folder of Terraform code, relative to the modules folder of Cloud Platform. */ export type TfModule = { name: string root: string description: string /** The address of the module's configurator, the application that edits the variables of its instances. */ configuratorUrl: string | null } /** A deployment of a module, whose state is kept in the schema stateSchema of the pg backend. */ export type TfInstance = { module: string name: string stateSchema: string /** ISO 8601. */ created: string } /** A variable file of an instance, without its content. */ export type TfvarsFileStatus = { name: string bytes: number /** ISO 8601, the time of the last write. */ modified: string /** Whether the content the last write replaced is kept. */ previous: boolean } /** The names of modules and instances: a lower-case letter, then lower-case letters, digits and hyphens. */ export const TF_NAME_PATTERN = /^[a-z][a-z0-9-]*$/ /** The names of variable files: letters, digits, '_', '.' and '-', ending in .tfvars.json. */ export const TFVARS_FILE_PATTERN = /^[A-Za-z0-9_.-]+\.tfvars\.json$/ /** The names of pg schemas of a state: a lower-case letter or '_', then lower-case letters, digits and '_'. */ export const STATE_SCHEMA_PATTERN = /^[a-z_][a-z0-9_]*$/