Repository navigation
Expand file tree
/
Copy pathcdktf.schema.json
More file actions
137 lines (137 loc) · 4.52 KB
/
Copy pathcdktf.schema.json
File metadata and controls
137 lines (137 loc) · 4.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "CDK Terrain project configuration (cdktf.json)",
"type": "object",
"required": ["language", "app"],
"additionalProperties": false,
"patternProperties": {
"^//": {
"description": "Comment. Keys starting with // are ignored."
}
},
"properties": {
"$schema": {
"type": "string",
"description": "URI of the JSON schema used to validate this file."
},
"language": {
"description": "Language the project is written in.",
"enum": ["typescript", "python", "csharp", "java", "go"]
},
"app": {
"type": "string",
"minLength": 1,
"description": "Command that runs the app and synthesizes its stacks, e.g. \"npx tsx main.ts\"."
},
"output": {
"type": "string",
"description": "Directory synthesized stacks are written to.",
"default": "cdktf.out"
},
"codeMakerOutput": {
"type": "string",
"description": "Directory generated provider and module bindings are written to. For Java, the package prefix instead, e.g. \"imports\" or \"com.my-company\", not a path.",
"default": ".gen"
},
"projectId": {
"type": "string",
"description": "Anonymous project identifier attached to telemetry and crash reports."
},
"sendCrashReports": {
"allOf": [{ "$ref": "#/definitions/booleanish" }],
"description": "Whether the CLI sends crash reports."
},
"sendUsageTelemetry": {
"allOf": [{ "$ref": "#/definitions/booleanish" }],
"description": "Whether the CLI sends anonymous usage telemetry."
},
"terraformProviders": {
"type": "array",
"description": "Providers to generate bindings for with `cdktn get`.",
"items": {
"allOf": [{ "$ref": "#/definitions/dependency" }],
"examples": ["hashicorp/aws@~> 5.0"]
}
},
"terraformModules": {
"type": "array",
"description": "Modules to generate bindings for with `cdktn get`.",
"items": {
"allOf": [{ "$ref": "#/definitions/dependency" }],
"examples": ["terraform-aws-modules/vpc/aws@~> 5.0"]
}
},
"context": {
"type": "object",
"description": "Context values passed to the app, including feature flags."
},
"targetVersions": {
"type": "object",
"description": "npm semver ranges of the Terraform-compatible CLIs the project supports, written to required_version.",
"properties": {
"terraform": {
"allOf": [{ "$ref": "#/definitions/semverRange" }],
"description": "Supported Terraform versions, e.g. \">=1.5.7\"."
},
"opentofu": {
"allOf": [{ "$ref": "#/definitions/semverRange" }],
"description": "Supported OpenTofu versions, e.g. \">=1.6.0\"."
}
},
"additionalProperties": false,
"minProperties": 1
},
"watchPattern": {
"description": "Glob pattern or patterns `cdktn watch` watches. Written with the language's default on the first run if unset.",
"anyOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
]
},
"validateInstalledBinary": {
"type": "boolean",
"description": "When true, diff, deploy and destroy check the installed binary satisfies targetVersions before running it."
},
"languageOptions": {
"type": "object",
"description": "Language-specific code generation options.",
"properties": {
"importExtension": {
"type": "string",
"description": "TypeScript only. Suffix appended to relative imports in generated code; use \".js\" or \".ts\" for ESM.",
"default": ""
}
},
"additionalProperties": false
}
},
"definitions": {
"semverRange": {
"type": "string",
"description": "An npm semver range, not Terraform's ~> constraint syntax.",
"pattern": "\\S",
"not": { "pattern": "~>" }
},
"booleanish": {
"oneOf": [{ "type": "boolean" }, { "enum": ["true", "false"] }]
},
"dependency": {
"oneOf": [
{
"type": "string",
"description": "Source with an optional version constraint, e.g. \"<source>@<version>\"."
},
{
"type": "object",
"properties": {
"name": { "type": "string" },
"source": { "type": "string" },
"version": { "type": "string" },
"namespace": { "type": "string" }
},
"required": ["name", "source"]
}
]
}
}
}