2022-08-24 08:49:46 +00:00
{
2022-10-13 17:52:09 +00:00
"$schema" : "https://json-schema.org/draft/2020-12/schema" ,
"$id" : "https://github.com/pulumi/pulumi/blob/master/sdk/go/common/workspace/project.json" ,
"title" : "Pulumi Project" ,
"description" : "A schema for Pulumi project files." ,
"type" : "object" ,
"properties" : {
"name" : {
"description" : "Name of the project containing alphanumeric characters, hyphens, underscores, and periods." ,
"type" : "string" ,
"minLength" : 1
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"description" : {
"description" : "Description of the project." ,
"type" : [
"string" ,
"null"
]
2022-08-24 08:49:46 +00:00
} ,
2022-10-13 17:52:09 +00:00
"author" : {
"description" : "Author is an optional author that created this project." ,
"type" : [
"string" ,
"null"
]
2022-08-24 08:49:46 +00:00
} ,
2022-10-13 17:52:09 +00:00
"website" : {
"description" : "Website is an optional website for additional info about this project." ,
"type" : [
"string" ,
"null"
]
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"license" : {
"description" : "License is the optional license governing this project's usage." ,
"type" : [
"string" ,
"null"
]
} ,
"runtime" : {
"title" : "ProjectRuntimeInfo" ,
"oneOf" : [
{
"title" : "Name" ,
"type" : "string" ,
"minLength" : 1
} ,
{
"type" : "object" ,
"properties" : {
"name" : {
"title" : "Name" ,
"type" : "string" ,
"minLength" : 1
} ,
"options" : {
"title" : "Options" ,
"type" : "object" ,
"additionalProperties" : true
}
} ,
"additionalProperties" : false
}
]
} ,
"main" : {
"description" : "Path to the Pulumi program. The default is the working directory." ,
"type" : [
"string" ,
"null"
]
} ,
"config" : {
"description" : "A map of configuration keys to their types. Using config directory location relative to the location of Pulumi.yaml is a deprecated use of this key. Use stackConfigDir instead." ,
"type" : [
"object" ,
2022-10-13 18:09:32 +00:00
"string" ,
2022-10-13 17:52:09 +00:00
"null"
] ,
2022-10-19 08:12:25 +00:00
"properties" : {
"secret" : {
"description" : "If true this configuration value should be encrypted." ,
"type" : "boolean" ,
"default" : false
}
} ,
2022-10-13 17:52:09 +00:00
"additionalProperties" : {
"oneOf" : [
{
"type" : "string"
} ,
{
"type" : "integer"
} ,
{
"type" : "boolean"
} ,
2022-10-30 22:42:39 +00:00
{
"type" : "array"
} ,
2022-10-13 17:52:09 +00:00
{
"$ref" : "#/$defs/configTypeDeclaration"
}
2022-09-24 12:01:35 +00:00
]
2022-09-20 18:13:45 +00:00
}
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"stackConfigDir" : {
"description" : "Config directory location relative to the location of Pulumi.yaml." ,
"type" : [
"string" ,
"null"
]
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"backend" : {
"description" : "Backend of the project." ,
"type" : [
"object" ,
"null"
] ,
"properties" : {
"url" : {
"description" : "URL is optional field to explicitly set backend url" ,
"type" : "string"
}
} ,
"additionalProperties" : false
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"options" : {
"description" : "Additional project options." ,
"type" : [
"object" ,
"null"
] ,
"properties" : {
"refresh" : {
"description" : "Set to \"always\" to refresh the state before performing a Pulumi operation." ,
"type" : "string" ,
"const" : "always"
}
} ,
"additionalProperties" : false
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"template" : {
"title" : "ProjectTemplate" ,
"description" : "ProjectTemplate is a Pulumi project template manifest." ,
"type" : [
"object" ,
"null"
] ,
"properties" : {
2023-11-18 19:04:13 +00:00
"displayName" : {
"description" : "Optional user-friendly name of the template." ,
"type" : [
"string" ,
"null"
]
} ,
2022-10-13 17:52:09 +00:00
"description" : {
"description" : "Description of the template." ,
"type" : [
"string" ,
"null"
]
} ,
"quickstart" : {
"description" : "Quickstart contains optional text to be displayed after template creation." ,
"type" : [
"string" ,
"null"
]
} ,
"important" : {
"description" : "Important indicates the template is important and should be listed by default." ,
"type" : [
"boolean" ,
"null"
]
} ,
2023-11-18 19:04:13 +00:00
"metadata" : {
"description" : "Metadata is a map of key/value pairs to associate with the template" ,
"type" : [
"object" ,
"null"
] ,
"additionalProperties" : {
"type" : "string"
}
} ,
2022-10-13 17:52:09 +00:00
"config" : {
"description" : "Config to apply to each stack in the project." ,
"type" : [
"object" ,
"null"
] ,
"additionalProperties" : {
"properties" : {
"description" : {
"description" : "Description of the config." ,
"type" : [
"string" ,
"null"
]
} ,
"default" : {
"description" : "Default value of the config."
} ,
"secret" : {
"description" : "Boolean indicating if the configuration is labeled as a secret." ,
"type" : [
"boolean" ,
"null"
]
}
}
}
}
} ,
"additionalProperties" : false
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"plugins" : {
"description" : "Override for the plugin selection. Intended for use in developing pulumi plugins." ,
"type" : "object" ,
"properties" : {
"providers" : {
"description" : "Plugins for resource providers." ,
"type" : "array" ,
"items" : {
"$ref" : "#/$defs/pluginOptions"
}
} ,
"analyzers" : {
"description" : "Plugins for policy analyzers." ,
"type" : "array" ,
"items" : {
"$ref" : "#/$defs/pluginOptions"
}
} ,
"languages" : {
"description" : "Plugins for languages." ,
"type" : "array" ,
"items" : {
"$ref" : "#/$defs/pluginOptions"
}
}
2022-08-24 08:49:46 +00:00
}
2022-09-24 12:01:35 +00:00
}
} ,
2022-10-13 17:52:09 +00:00
"required" : [
"name" ,
"runtime"
] ,
"additionalProperties" : true ,
"$defs" : {
"pluginOptions" : {
"title" : "PluginOptions" ,
"type" : "object" ,
2023-01-17 22:13:43 +00:00
"additionalProperties" : false ,
"required" : [
"name" ,
"path"
] ,
2022-10-13 17:52:09 +00:00
"properties" : {
"name" : {
"type" : "string" ,
"description" : "Name of the plugin"
} ,
"path" : {
"type" : "string" ,
"description" : "Path to the plugin folder"
} ,
"version" : {
"type" : "string" ,
"description" : "Version of the plugin, if not set, will match any version the engine requests."
}
}
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"simpleConfigType" : {
"title" : "SimpleConfigType" ,
"enum" : [
"string" ,
"integer" ,
"boolean" ,
"array"
]
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"configItemsType" : {
"type" : "object" ,
"required" : [
"type"
] ,
"properties" : {
"type" : {
"oneOf" : [
{
"$ref" : "#/$defs/simpleConfigType"
} ,
{
"$ref" : "#/$defs/configItemsType"
}
]
} ,
"items" : {
"$ref" : "#/$defs/configItemsType"
}
} ,
"if" : {
"properties" : {
"type" : {
"const" : "array"
}
}
} ,
"then" : {
"required" : [
"items"
]
}
2022-09-24 12:01:35 +00:00
} ,
2022-10-13 17:52:09 +00:00
"configTypeDeclaration" : {
"title" : "ConfigTypeDeclaration" ,
"type" : "object" ,
"additionalProperties" : false ,
"properties" : {
"type" : {
"$ref" : "#/$defs/simpleConfigType"
} ,
"items" : {
"$ref" : "#/$defs/configItemsType"
} ,
"description" : {
"type" : "string"
} ,
"secret" : {
"type" : "boolean"
} ,
2022-10-30 22:42:39 +00:00
"default" : { } ,
"value" : { }
2022-10-13 17:52:09 +00:00
}
2022-09-24 12:01:35 +00:00
}
2022-08-24 08:49:46 +00:00
}
2023-01-17 22:13:43 +00:00
}