mirror of https://github.com/pulumi/pulumi.git
343 lines
11 KiB
JSON
343 lines
11 KiB
JSON
{
|
|
"$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
|
|
},
|
|
"description":{
|
|
"description":"Description of the project.",
|
|
"type":[
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"author":{
|
|
"description":"Author is an optional author that created this project.",
|
|
"type":[
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"website":{
|
|
"description":"Website is an optional website for additional info about this project.",
|
|
"type":[
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"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",
|
|
"string",
|
|
"null"
|
|
],
|
|
"properties":{
|
|
"secret":{
|
|
"description":"If true this configuration value should be encrypted.",
|
|
"type":"boolean",
|
|
"default":false
|
|
}
|
|
},
|
|
"additionalProperties":{
|
|
"oneOf":[
|
|
{
|
|
"type":"string"
|
|
},
|
|
{
|
|
"type":"integer"
|
|
},
|
|
{
|
|
"type":"boolean"
|
|
},
|
|
{
|
|
"type": "array"
|
|
},
|
|
{
|
|
"$ref":"#/$defs/configTypeDeclaration"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"stackConfigDir":{
|
|
"description":"Config directory location relative to the location of Pulumi.yaml.",
|
|
"type":[
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"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
|
|
},
|
|
"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
|
|
},
|
|
"template":{
|
|
"title":"ProjectTemplate",
|
|
"description":"ProjectTemplate is a Pulumi project template manifest.",
|
|
"type":[
|
|
"object",
|
|
"null"
|
|
],
|
|
"properties":{
|
|
"displayName":{
|
|
"description":"Optional user-friendly name of the template.",
|
|
"type":[
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"metadata":{
|
|
"description":"Metadata is a map of key/value pairs to associate with the template",
|
|
"type":[
|
|
"object",
|
|
"null"
|
|
],
|
|
"additionalProperties":{
|
|
"type": "string"
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required":[
|
|
"name",
|
|
"runtime"
|
|
],
|
|
"additionalProperties":true,
|
|
"$defs":{
|
|
"pluginOptions":{
|
|
"title":"PluginOptions",
|
|
"type":"object",
|
|
"additionalProperties":false,
|
|
"required":[
|
|
"name",
|
|
"path"
|
|
],
|
|
"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."
|
|
}
|
|
}
|
|
},
|
|
"simpleConfigType":{
|
|
"title":"SimpleConfigType",
|
|
"enum":[
|
|
"string",
|
|
"integer",
|
|
"boolean",
|
|
"array"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
},
|
|
"configTypeDeclaration":{
|
|
"title":"ConfigTypeDeclaration",
|
|
"type":"object",
|
|
"additionalProperties":false,
|
|
"properties":{
|
|
"type":{
|
|
"$ref":"#/$defs/simpleConfigType"
|
|
},
|
|
"items":{
|
|
"$ref":"#/$defs/configItemsType"
|
|
},
|
|
"description":{
|
|
"type":"string"
|
|
},
|
|
"secret":{
|
|
"type":"boolean"
|
|
},
|
|
"default":{ },
|
|
"value": { }
|
|
}
|
|
}
|
|
}
|
|
}
|