{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/ide.host.json","definitions":{"text":{"required":["text"],"type":"object","properties":{"text":{"type":"string"},"package":{"type":"string","pattern":"^\\{?[0-9A-Fa-f]{8}[-]?([0-9A-Fa-f]{4}[-]?){3}[0-9A-Fa-f]{12}\\}?$"},"id":{"type":"string"}}},"persistenceScope":{"type":"string","description":"Determines if the user entered values should be persisted for the next template invocation.","enum":["none","templateGroup","shared"]},"overrideInfo":{"required":["id"],"type":"object","properties":{"id":{"type":"string","description":"The id of the symbol from the template.json."},"name":{"$ref":"#/definitions/text","description":"Overrides the name specified in the template.json"},"description":{"$ref":"#/definitions/text","description":"Overrides the name specified in the template.json"}}},"symbolInfo":{"$ref":"#/definitions/overrideInfo","type":"object","properties":{"isVisible":{"type":"boolean","description":"Should be shown in the IDE. If not specified, defaults value is the value specified by defaultSymbolVisibility."},"invertBoolean":{"type":"boolean","description":"If the referenced symbol should be shown in the IDE."},"defaultValue":{"type":"string","description":"Overrides the default value specified for the "},"persistenceScope":{"$ref":"#/definitions/persistenceScope","description":"Determines if the user entered value should be persisted and used the next time a template is selected. Default value is the value specified by defaultSymbolVisibility Used starting in Visual Studio 2022 17.3"},"persistenceScopeName":{"description":"Specifies the scope name of the persisted template option. To avoid conflicts with other templates, treat this like a namespace. Used starting in Visual Studio 2022 17.3","type":"string"},"choices":{"description":"Specifies the name and description overrides for individual choice parameters","type":"array","items":{"$ref":"#/definitions/overrideInfo"}}}},"tags":{"type":"object","required":["type"],"properties":{"type":{"description":"The tag to modify","type":"string","enum":["platform","projectType"]},"add":{"description":"Tags to add","type":"array","items":{"type":"string"}},"remove":{"description":"Tags to remove. * can be specified to remove all tags specified in template.json","type":"array","items":{"type":"string"}}}},"unsupportedHost":{"type":"object","required":["id"],"properties":{"id":{"description":"The host identifier.","type":"string","const":"vs"},"version":{"description":"A version range specifying the unsupported host versions. This uses the nuget package format."}}},"requiredComponent":{"type":"object","required":["hostId"],"description":"To require a particular host version specify the hostId and optionally version only. To require a particular SetupComponent or Extension, specify the ID and set the componentType appropriately. Version range is optional.","properties":{"id":{"description":"The id of the component","type":"string"},"hostId":{"description":"The host id that the component applies to","type":"string","const":"vs"},"componentType":{"type":"string","enum":["setupComponent","extension"]},"version":{"description":"A version range specifying the required version range. This uses the nuget package format."}}}},"properties":{"name":{"$ref":"#/definitions/text","description":"Name of the template"},"description":{"$ref":"#/definitions/text","description":"Description of the template"},"order":{"description":"The order of the template as shown in the New Project dialog","type":"integer","default":0},"icon":{"description":"The relative file name of the icon to show in the New Project dialog","type":"string"},"supportsDocker":{"description":"Determines if the checkbox for adding Docker support in the New Project dialog should be visible","type":"boolean"},"disableHttpsSymbol":{"description":"The symbol in the template.json which when set, would cause the template to generate non-https ports and settings","type":"string"},"defaultSymbolVisibility":{"description":"Sets the default isVisible for a symbolInfo if not explicitly specified. Controls if the parameter is displayed in the IDE. Defaults to false if not specified","type":"boolean"},"defaultPersistenceScope":{"$ref":"#/definitions/persistenceScope","description":"The default value for a symbolInfo if not explicitly specified. Determines if the user entered value should be persisted and used the next time a template is selected. Used starting in Visual Studio 2022 17.3"},"defaultPersistenceScopeName":{"description":"The default value for a symbolInfo if not explicitly specified. Specifies the scope name of the persisted template option. To avoid conflicts with other templates, treat this like a namespace. Used starting in Visual Studio 2022 17.3","type":"string"},"symbolInfo":{"description":"Controls display characteristics of symbols declared in template.json","type":"array","items":{"$ref":"#/definitions/symbolInfo"}},"tags":{"description":"Modifigy the project and platform tags displayed in the IDE","type":"array","items":{"$ref":"#/definitions/tags"}},"unsupportedHosts":{"description":"Unsupported Hosts. This can be used to suppress the template from being displayed in the new project dialog in Visual Studio.","type":"array","items":{"$ref":"#/definitions/unsupportedHost"}},"requiredComponents":{"description":"Required components in order to display this template.","type":"array","items":{"$ref":"#/definitions/requiredComponent"}}},"title":"JSON schema for IDE template host files","type":"object"}