winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

manifest.singleton.latest.json (34617B)


      1 {
      2   "$id": "https://aka.ms/winget-manifest.singleton.1.12.0.schema.json",
      3   "$schema": "http://json-schema.org/draft-07/schema#",
      4   "description": "A representation of a single-file manifest representing an app in the OWC. v1.12.0",
      5   "definitions": {
      6     "PackageIdentifier": {
      7       "type": "string",
      8       "pattern": "^[^\\.\\s\\\\/:\\*\\?\"<>\\|\\x01-\\x1f]{1,32}(\\.[^\\.\\s\\\\/:\\*\\?\"<>\\|\\x01-\\x1f]{1,32}){1,7}$",
      9       "maxLength": 128,
     10       "description": "The package unique identifier"
     11     },
     12     "PackageVersion": {
     13       "type": "string",
     14       "pattern": "^[^\\\\/:\\*\\?\"<>\\|\\x01-\\x1f]+$",
     15       "maxLength": 128,
     16       "description": "The package version"
     17     },
     18     "Locale": {
     19       "type": [ "string", "null" ],
     20       "pattern": "^([a-zA-Z]{2,3}|[iI]-[a-zA-Z]+|[xX]-[a-zA-Z]{1,8})(-[a-zA-Z]{1,8})*$",
     21       "maxLength": 20,
     22       "description": "The package meta-data locale"
     23     },
     24     "Url": {
     25       "type": [ "string", "null" ],
     26       "pattern": "^([Hh][Tt][Tt][Pp][Ss]?)://.+$",
     27       "maxLength": 2048,
     28       "description": "Optional Url type"
     29     },
     30     "Tag": {
     31       "type": [ "string", "null" ],
     32       "minLength": 1,
     33       "maxLength": 40,
     34       "description": "Package moniker or tag"
     35     },
     36     "Agreement": {
     37       "type": "object",
     38       "properties": {
     39         "AgreementLabel": {
     40           "type": [ "string", "null" ],
     41           "minLength": 1,
     42           "maxLength": 100,
     43           "description": "The label of the Agreement. i.e. EULA, AgeRating, etc. This field should be localized. Either Agreement or AgreementUrl is required. When we show the agreements, we would Bold the AgreementLabel"
     44         },
     45         "Agreement": {
     46           "type": [ "string", "null" ],
     47           "minLength": 1,
     48           "maxLength": 10000,
     49           "description": "The agreement text content."
     50         },
     51         "AgreementUrl": {
     52           "$ref": "#/definitions/Url",
     53           "description": "The agreement URL."
     54         }
     55       }
     56     },
     57     "Documentation": {
     58       "type": "object",
     59       "properties": {
     60         "DocumentLabel": {
     61           "type": [ "string", "null" ],
     62           "minLength": 1,
     63           "maxLength": 100,
     64           "description": "The label of the documentation for providing software guides such as manuals and troubleshooting URLs."
     65         },
     66         "DocumentUrl": {
     67           "$ref": "#/definitions/Url",
     68           "description": "The documentation URL."
     69         }
     70       }
     71     },
     72     "Icon": {
     73       "type": "object",
     74       "properties": {
     75         "IconUrl": {
     76           "type": "string",
     77           "pattern": "^([Hh][Tt][Tt][Pp][Ss]?)://.+$",
     78           "maxLength": 2048,
     79           "description": "The url of the hosted icon file"
     80         },
     81         "IconFileType": {
     82           "type": "string",
     83           "enum": [
     84             "png",
     85             "jpeg",
     86             "ico"
     87           ],
     88           "description": "The icon file type"
     89         },
     90         "IconResolution": {
     91           "type": [ "string", "null" ],
     92           "enum": [
     93             "custom",
     94             "16x16",
     95             "20x20",
     96             "24x24",
     97             "30x30",
     98             "32x32",
     99             "36x36",
    100             "40x40",
    101             "48x48",
    102             "60x60",
    103             "64x64",
    104             "72x72",
    105             "80x80",
    106             "96x96",
    107             "256x256"
    108           ],
    109           "description": "Optional icon resolution"
    110         },
    111         "IconTheme": {
    112           "type": [ "string", "null" ],
    113           "enum": [
    114             "default",
    115             "light",
    116             "dark",
    117             "highContrast"
    118           ],
    119           "description": "Optional icon theme"
    120         },
    121         "IconSha256": {
    122           "type": [ "string", "null" ],
    123           "pattern": "^[A-Fa-f0-9]{64}$",
    124           "description": "Optional Sha256 of the icon file"
    125         }
    126       },
    127       "required": [
    128         "IconUrl",
    129         "IconFileType"
    130       ]
    131     },
    132     "Channel": {
    133       "type": [ "string", "null" ],
    134       "minLength": 1,
    135       "maxLength": 16,
    136       "description": "The distribution channel"
    137     },
    138     "Platform": {
    139       "type": [ "array", "null" ],
    140       "items": {
    141         "title": "Platform",
    142         "type": "string",
    143         "enum": [
    144           "Windows.Desktop",
    145           "Windows.Universal"
    146         ]
    147       },
    148       "maxItems": 2,
    149       "uniqueItems": true,
    150       "description": "The installer supported operating system"
    151     },
    152     "MinimumOSVersion": {
    153       "type": [ "string", "null" ],
    154       "pattern": "^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])(\\.(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])){0,3}$",
    155       "description": "The installer minimum operating system version"
    156     },
    157     "InstallerType": {
    158       "type": [ "string", "null" ],
    159       "enum": [
    160         "msix",
    161         "msi",
    162         "appx",
    163         "exe",
    164         "zip",
    165         "inno",
    166         "nullsoft",
    167         "wix",
    168         "burn",
    169         "pwa",
    170         "portable",
    171         "font"
    172       ],
    173       "description": "Enumeration of supported installer types. InstallerType is required in either root level or individual Installer level"
    174     },
    175     "NestedInstallerType": {
    176       "type": [ "string", "null" ],
    177       "enum": [
    178         "msix",
    179         "msi",
    180         "appx",
    181         "exe",
    182         "inno",
    183         "nullsoft",
    184         "wix",
    185         "burn",
    186         "portable",
    187         "font"
    188       ],
    189       "description": "Enumeration of supported nested installer types contained inside an archive file"
    190     },
    191     "NestedInstallerFiles": {
    192       "type": [ "array", "null" ],
    193       "items": {
    194         "type": "object",
    195         "title": "NestedInstallerFile",
    196         "properties": {
    197           "RelativeFilePath": {
    198             "type": "string",
    199             "minLength": 1,
    200             "maxLength": 512,
    201             "description": "The relative path to the nested installer file"
    202           },
    203           "PortableCommandAlias": {
    204             "type": [ "string", "null" ],
    205             "minLength": 1,
    206             "maxLength": 40,
    207             "description": "The command alias to be used for calling the package. Only applies to the nested portable package"
    208           }
    209         },
    210         "required": [ "RelativeFilePath" ],
    211         "description": "A nested installer file contained inside an archive"
    212       },
    213       "maxItems": 1024,
    214       "description": "List of nested installer files contained inside an archive"
    215     },
    216     "Architecture": {
    217       "type": "string",
    218       "enum": [
    219         "x86",
    220         "x64",
    221         "arm",
    222         "arm64",
    223         "neutral"
    224       ],
    225       "description": "The installer target architecture"
    226     },
    227     "Scope": {
    228       "type": [ "string", "null" ],
    229       "enum": [
    230         "user",
    231         "machine"
    232       ],
    233       "description": "Scope indicates if the installer is per user or per machine"
    234     },
    235     "InstallModes": {
    236       "type": [ "array", "null" ],
    237       "items": {
    238         "title": "InstallModes",
    239         "type": "string",
    240         "enum": [
    241           "interactive",
    242           "silent",
    243           "silentWithProgress"
    244         ]
    245       },
    246       "maxItems": 3,
    247       "uniqueItems": true,
    248       "description": "List of supported installer modes"
    249     },
    250     "InstallerSwitches": {
    251       "type": "object",
    252       "properties": {
    253         "Silent": {
    254           "type": [ "string", "null" ],
    255           "minLength": 1,
    256           "maxLength": 512,
    257           "description": "Silent is the value that should be passed to the installer when user chooses a silent or quiet install"
    258         },
    259         "SilentWithProgress": {
    260           "type": [ "string", "null" ],
    261           "minLength": 1,
    262           "maxLength": 512,
    263           "description": "SilentWithProgress is the value that should be passed to the installer when user chooses a non-interactive install"
    264         },
    265         "Interactive": {
    266           "type": [ "string", "null" ],
    267           "minLength": 1,
    268           "maxLength": 512,
    269           "description": "Interactive is the value that should be passed to the installer when user chooses an interactive install"
    270         },
    271         "InstallLocation": {
    272           "type": [ "string", "null" ],
    273           "minLength": 1,
    274           "maxLength": 512,
    275           "description": "InstallLocation is the value passed to the installer for custom install location. <INSTALLPATH> token can be included in the switch value so that winget will replace the token with user provided path"
    276         },
    277         "Log": {
    278           "type": [ "string", "null" ],
    279           "minLength": 1,
    280           "maxLength": 512,
    281           "description": "Log is the value passed to the installer for custom log file path. <LOGPATH> token can be included in the switch value so that winget will replace the token with user provided path"
    282         },
    283         "Upgrade": {
    284           "type": [ "string", "null" ],
    285           "minLength": 1,
    286           "maxLength": 512,
    287           "description": "Upgrade is the value that should be passed to the installer when user chooses an upgrade"
    288         },
    289         "Custom": {
    290           "type": [ "string", "null" ],
    291           "minLength": 1,
    292           "maxLength": 2048,
    293           "description": "Custom switches will be passed directly to the installer by winget"
    294         },
    295         "Repair": {
    296           "type": [ "string", "null" ],
    297           "minLength": 1,
    298           "maxLength": 512,
    299           "description": "The 'Repair' value must be passed to the installer, ModifyPath ARP command, or uninstaller ARP command when the user opts for a repair"
    300         }
    301       }
    302     },
    303     "InstallerReturnCode": {
    304       "type": "integer",
    305       "format": "long",
    306       "not": {
    307         "enum": [ 0 ]
    308       },
    309       "minimum": -2147483648,
    310       "maximum": 4294967295,
    311       "description": "An exit code that can be returned by the installer after execution"
    312     },
    313     "InstallerSuccessCodes": {
    314       "type": [ "array", "null" ],
    315       "items": {
    316         "$ref": "#/definitions/InstallerReturnCode"
    317       },
    318       "maxItems": 16,
    319       "uniqueItems": true,
    320       "description": "List of additional non-zero installer success exit codes other than known default values by winget"
    321     },
    322     "ExpectedReturnCodes": {
    323       "type": [ "array", "null" ],
    324       "items": {
    325         "type": "object",
    326         "title": "ExpectedReturnCode",
    327         "properties": {
    328           "InstallerReturnCode": {
    329             "$ref": "#/definitions/InstallerReturnCode"
    330           },
    331           "ReturnResponse": {
    332             "type": "string",
    333             "enum": [
    334               "packageInUse",
    335               "packageInUseByApplication",
    336               "installInProgress",
    337               "fileInUse",
    338               "missingDependency",
    339               "diskFull",
    340               "insufficientMemory",
    341               "invalidParameter",
    342               "noNetwork",
    343               "contactSupport",
    344               "rebootRequiredToFinish",
    345               "rebootRequiredForInstall",
    346               "rebootInitiated",
    347               "cancelledByUser",
    348               "alreadyInstalled",
    349               "downgrade",
    350               "blockedByPolicy",
    351               "systemNotSupported",
    352               "custom"
    353             ]
    354           },
    355           "ReturnResponseUrl": {
    356             "$ref": "#/definitions/Url",
    357             "description": "The return response url to provide additional guidance for expected return codes"
    358           }
    359         },
    360         "required": [ "InstallerReturnCode", "ReturnResponse" ]
    361       },
    362       "maxItems": 128,
    363       "description": "Installer exit codes for common errors"
    364     },
    365     "UpgradeBehavior": {
    366       "type": [ "string", "null" ],
    367       "enum": [
    368         "install",
    369         "uninstallPrevious",
    370         "deny"
    371       ],
    372       "description": "The upgrade method"
    373     },
    374     "Commands": {
    375       "type": [ "array", "null" ],
    376       "items": {
    377         "type": "string",
    378         "minLength": 1,
    379         "maxLength": 40
    380       },
    381       "maxItems": 16,
    382       "uniqueItems": true,
    383       "description": "List of commands or aliases to run the package"
    384     },
    385     "Protocols": {
    386       "type": [ "array", "null" ],
    387       "items": {
    388         "type": "string",
    389         "maxLength": 2048
    390       },
    391       "maxItems": 64,
    392       "uniqueItems": true,
    393       "description": "List of protocols the package provides a handler for"
    394     },
    395     "FileExtensions": {
    396       "type": [ "array", "null" ],
    397       "items": {
    398         "type": "string",
    399         "pattern": "^[^\\\\/:\\*\\?\"<>\\|\\x01-\\x1f]+$",
    400         "maxLength": 64
    401       },
    402       "maxItems": 512,
    403       "uniqueItems": true,
    404       "description": "List of file extensions the package could support"
    405     },
    406     "Dependencies": {
    407       "type": [ "object", "null" ],
    408       "properties": {
    409         "WindowsFeatures": {
    410           "type": [ "array", "null" ],
    411           "items": {
    412             "type": "string",
    413             "minLength": 1,
    414             "maxLength": 128
    415           },
    416           "maxItems": 16,
    417           "uniqueItems": true,
    418           "description": "List of Windows feature dependencies"
    419         },
    420         "WindowsLibraries": {
    421           "type": [ "array", "null" ],
    422           "items": {
    423             "type": "string",
    424             "minLength": 1,
    425             "maxLength": 128
    426           },
    427           "maxItems": 16,
    428           "uniqueItems": true,
    429           "description": "List of Windows library dependencies"
    430         },
    431         "PackageDependencies": {
    432           "type": [ "array", "null" ],
    433           "items": {
    434             "type": "object",
    435             "properties": {
    436               "PackageIdentifier": {
    437                 "$ref": "#/definitions/PackageIdentifier"
    438               },
    439               "MinimumVersion": {
    440                 "$ref": "#/definitions/PackageVersion"
    441               }
    442             },
    443             "required": [ "PackageIdentifier" ]
    444           },
    445           "maxItems": 16,
    446           "description": "List of package dependencies from current source"
    447         },
    448         "ExternalDependencies": {
    449           "type": [ "array", "null" ],
    450           "items": {
    451             "type": "string",
    452             "minLength": 1,
    453             "maxLength": 128
    454           },
    455           "maxItems": 16,
    456           "uniqueItems": true,
    457           "description": "List of external package dependencies"
    458         }
    459       }
    460     },
    461     "PackageFamilyName": {
    462       "type": [ "string", "null" ],
    463       "pattern": "^[A-Za-z0-9][-\\.A-Za-z0-9]+_[A-Za-z0-9]{13}$",
    464       "maxLength": 255,
    465       "description": "PackageFamilyName for appx or msix installer. Could be used for correlation of packages across sources"
    466     },
    467     "ProductCode": {
    468       "type": [ "string", "null" ],
    469       "minLength": 1,
    470       "maxLength": 255,
    471       "description": "ProductCode could be used for correlation of packages across sources"
    472     },
    473     "Capabilities": {
    474       "type": [ "array", "null" ],
    475       "items": {
    476         "type": "string",
    477         "minLength": 1,
    478         "maxLength": 40
    479       },
    480       "maxItems": 1000,
    481       "uniqueItems": true,
    482       "description": "List of appx or msix installer capabilities"
    483     },
    484     "RestrictedCapabilities": {
    485       "type": [ "array", "null" ],
    486       "items": {
    487         "type": "string",
    488         "minLength": 1,
    489         "maxLength": 40
    490       },
    491       "maxItems": 1000,
    492       "uniqueItems": true,
    493       "description": "List of appx or msix installer restricted capabilities"
    494     },
    495     "Market": {
    496       "type": "string",
    497       "pattern": "^[A-Z]{2}$",
    498       "description": "The installer target market"
    499     },
    500     "MarketArray": {
    501       "type": [ "array", "null" ],
    502       "uniqueItems": true,
    503       "maxItems": 256,
    504       "items": {
    505         "$ref": "#/definitions/Market"
    506       },
    507       "description": "Array of markets"
    508     },
    509     "Markets": {
    510       "description": "The installer markets",
    511       "type": [ "object", "null" ],
    512       "oneOf": [
    513         {
    514           "properties": {
    515             "AllowedMarkets": {
    516               "$ref": "#/definitions/MarketArray"
    517             }
    518           },
    519           "required": [ "AllowedMarkets" ]
    520         },
    521         {
    522           "properties": {
    523             "ExcludedMarkets": {
    524               "$ref": "#/definitions/MarketArray"
    525             }
    526           },
    527           "required": [ "ExcludedMarkets" ]
    528         }
    529       ]
    530     },
    531     "InstallerAbortsTerminal": {
    532       "type": [ "boolean", "null" ],
    533       "description": "Indicates whether the installer will abort terminal. Default is false"
    534     },
    535     "ReleaseDate": {
    536       "type": [ "string", "null" ],
    537       "format": "date",
    538       "description": "The installer release date"
    539     },
    540     "InstallLocationRequired": {
    541       "type": [ "boolean", "null" ],
    542       "description": "Indicates whether the installer requires an install location provided"
    543     },
    544     "RequireExplicitUpgrade": {
    545       "type": [ "boolean", "null" ],
    546       "description": "Indicates whether the installer should be pinned by default from upgrade"
    547     },
    548     "DisplayInstallWarnings": {
    549       "type": [ "boolean", "null" ],
    550       "description": "Indicates whether winget should display a warning message if the install or upgrade is known to interfere with running applications."
    551     },
    552     "UnsupportedOSArchitectures": {
    553       "type": [ "array", "null" ],
    554       "uniqueItems": true,
    555       "items": {
    556         "type": "string",
    557         "title": "UnsupportedOSArchitecture",
    558         "enum": [
    559           "x86",
    560           "x64",
    561           "arm",
    562           "arm64"
    563         ]
    564       },
    565       "description": "List of OS architectures the installer does not support"
    566     },
    567     "UnsupportedArguments": {
    568       "type": [ "array", "null" ],
    569       "uniqueItems": true,
    570       "items": {
    571         "type": "string",
    572         "title": "UnsupportedArgument",
    573         "enum": [
    574           "log",
    575           "location"
    576         ]
    577       },
    578       "description": "List of winget arguments the installer does not support"
    579     },
    580     "AppsAndFeaturesEntry": {
    581       "type": "object",
    582       "properties": {
    583         "DisplayName": {
    584           "type": [ "string", "null" ],
    585           "minLength": 1,
    586           "maxLength": 256,
    587           "description": "The DisplayName registry value"
    588         },
    589         "Publisher": {
    590           "type": [ "string", "null" ],
    591           "minLength": 1,
    592           "maxLength": 256,
    593           "description": "The Publisher registry value"
    594         },
    595         "DisplayVersion": {
    596           "type": [ "string", "null" ],
    597           "minLength": 1,
    598           "maxLength": 128,
    599           "description": "The DisplayVersion registry value"
    600         },
    601         "ProductCode": {
    602           "$ref": "#/definitions/ProductCode"
    603         },
    604         "UpgradeCode": {
    605           "$ref": "#/definitions/ProductCode"
    606         },
    607         "InstallerType": {
    608           "$ref": "#/definitions/InstallerType"
    609         }
    610       },
    611       "description": "Various key values under installer's ARP entry"
    612     },
    613     "AppsAndFeaturesEntries": {
    614       "type": [ "array", "null" ],
    615       "uniqueItems": true,
    616       "maxItems": 128,
    617       "items": {
    618         "$ref": "#/definitions/AppsAndFeaturesEntry"
    619       },
    620       "description": "List of ARP entries."
    621     },
    622     "ElevationRequirement": {
    623       "type": [ "string", "null" ],
    624       "enum": [
    625         "elevationRequired",
    626         "elevationProhibited",
    627         "elevatesSelf"
    628       ],
    629       "description": "The installer's elevation requirement"
    630     },
    631     "InstallationMetadata": {
    632       "type": "object",
    633       "title": "InstallationMetadata",
    634       "properties": {
    635         "DefaultInstallLocation": {
    636           "type": [ "string", "null" ],
    637           "minLength": 1,
    638           "maxLength": 2048,
    639           "description": "Represents the default installed package location. Used for deeper installation detection."
    640         },
    641         "Files": {
    642           "type": [ "array", "null" ],
    643           "uniqueItems": true,
    644           "maxItems": 2048,
    645           "items": {
    646             "type": "object",
    647             "title": "InstalledFile",
    648             "properties": {
    649               "RelativeFilePath": {
    650                 "type": "string",
    651                 "minLength": 1,
    652                 "maxLength": 2048,
    653                 "description": "The relative path to the installed file."
    654               },
    655               "FileSha256": {
    656                 "type": [ "string", "null" ],
    657                 "pattern": "^[A-Fa-f0-9]{64}$",
    658                 "description": "Optional Sha256 of the installed file."
    659               },
    660               "FileType": {
    661                 "type": [ "string", "null" ],
    662                 "enum": [
    663                   "launch",
    664                   "uninstall",
    665                   "other"
    666                 ],
    667                 "description": "The optional installed file type. If not specified, the file is treated as other."
    668               },
    669               "InvocationParameter": {
    670                 "type": [ "string", "null" ],
    671                 "minLength": 1,
    672                 "maxLength": 2048,
    673                 "description": "Optional parameter for invocable files."
    674               },
    675               "DisplayName": {
    676                 "type": [ "string", "null" ],
    677                 "minLength": 1,
    678                 "maxLength": 256,
    679                 "description": "Optional display name for invocable files."
    680               }
    681             },
    682             "required": [ "RelativeFilePath" ],
    683             "description": "Represents an installed file."
    684           },
    685           "description": "List of installed files."
    686         }
    687       },
    688       "description": "Details about the installation. Used for deeper installation detection."
    689     },
    690     "DownloadCommandProhibited": {
    691       "type": [ "boolean", "null" ],
    692       "description": "Indicates whether the installer is prohibited from being downloaded for offline installation."
    693     },
    694     "RepairBehavior": {
    695       "type": [ "string", "null" ],
    696       "enum": [
    697         "modify",
    698         "uninstaller",
    699         "installer"
    700       ],
    701       "description": "The repair method"
    702     },
    703     "ArchiveBinariesDependOnPath": {
    704       "type": [ "boolean", "null" ],
    705       "description": "Indicates whether the install location should be added directly to the PATH environment variable. Only applies to an archive containing portable packages."
    706     },
    707     "Authentication": {
    708       "type": [ "object", "null" ],
    709       "properties": {
    710         "AuthenticationType": {
    711           "type": "string",
    712           "enum": [
    713             "none",
    714             "microsoftEntraId",
    715             "microsoftEntraIdForAzureBlobStorage"
    716           ],
    717           "description": "The authentication type"
    718         },
    719         "MicrosoftEntraIdAuthenticationInfo": {
    720           "type": [ "object", "null" ],
    721           "properties": {
    722             "Resource": {
    723               "type": [ "string", "null" ],
    724               "minLength": 1,
    725               "maxLength": 512,
    726               "description": "The resource value for Microsoft Entra Id authentication."
    727             },
    728             "Scope": {
    729               "type": [ "string", "null" ],
    730               "minLength": 1,
    731               "maxLength": 512,
    732               "description": "The scope value for Microsoft Entra Id authentication."
    733             }
    734           },
    735           "description": "The Microsoft Entra Id authentication info"
    736         }
    737       },
    738       "required": [
    739         "AuthenticationType"
    740       ],
    741       "description": "The authentication requirement for downloading the installer."
    742     },
    743     "Installer": {
    744       "type": "object",
    745       "properties": {
    746         "InstallerLocale": {
    747           "$ref": "#/definitions/Locale"
    748         },
    749         "Platform": {
    750           "$ref": "#/definitions/Platform"
    751         },
    752         "MinimumOSVersion": {
    753           "$ref": "#/definitions/MinimumOSVersion"
    754         },
    755         "Architecture": {
    756           "$ref": "#/definitions/Architecture"
    757         },
    758         "InstallerType": {
    759           "$ref": "#/definitions/InstallerType"
    760         },
    761         "NestedInstallerType": {
    762           "$ref": "#/definitions/NestedInstallerType"
    763         },
    764         "NestedInstallerFiles": {
    765           "$ref": "#/definitions/NestedInstallerFiles"
    766         },
    767         "Scope": {
    768           "$ref": "#/definitions/Scope"
    769         },
    770         "InstallerUrl": {
    771           "type": "string",
    772           "pattern": "^([Hh][Tt][Tt][Pp][Ss]?)://.+$",
    773           "maxLength": 2048,
    774           "description": "The installer Url"
    775         },
    776         "InstallerSha256": {
    777           "type": "string",
    778           "pattern": "^[A-Fa-f0-9]{64}$",
    779           "description": "Sha256 is required. Sha256 of the installer"
    780         },
    781         "SignatureSha256": {
    782           "type": [ "string", "null" ],
    783           "pattern": "^[A-Fa-f0-9]{64}$",
    784           "description": "SignatureSha256 is recommended for appx or msix. It is the sha256 of signature file inside appx or msix. Could be used during streaming install if applicable"
    785         },
    786         "InstallModes": {
    787           "$ref": "#/definitions/InstallModes"
    788         },
    789         "InstallerSwitches": {
    790           "$ref": "#/definitions/InstallerSwitches"
    791         },
    792         "InstallerSuccessCodes": {
    793           "$ref": "#/definitions/InstallerSuccessCodes"
    794         },
    795         "ExpectedReturnCodes": {
    796           "$ref": "#/definitions/ExpectedReturnCodes"
    797         },
    798         "UpgradeBehavior": {
    799           "$ref": "#/definitions/UpgradeBehavior"
    800         },
    801         "Commands": {
    802           "$ref": "#/definitions/Commands"
    803         },
    804         "Protocols": {
    805           "$ref": "#/definitions/Protocols"
    806         },
    807         "FileExtensions": {
    808           "$ref": "#/definitions/FileExtensions"
    809         },
    810         "Dependencies": {
    811           "$ref": "#/definitions/Dependencies"
    812         },
    813         "PackageFamilyName": {
    814           "$ref": "#/definitions/PackageFamilyName"
    815         },
    816         "ProductCode": {
    817           "$ref": "#/definitions/ProductCode"
    818         },
    819         "Capabilities": {
    820           "$ref": "#/definitions/Capabilities"
    821         },
    822         "RestrictedCapabilities": {
    823           "$ref": "#/definitions/RestrictedCapabilities"
    824         },
    825         "Markets": {
    826           "$ref": "#/definitions/Markets"
    827         },
    828         "InstallerAbortsTerminal": {
    829           "$ref": "#/definitions/InstallerAbortsTerminal"
    830         },
    831         "ReleaseDate": {
    832           "$ref": "#/definitions/ReleaseDate"
    833         },
    834         "InstallLocationRequired": {
    835           "$ref": "#/definitions/InstallLocationRequired"
    836         },
    837         "RequireExplicitUpgrade": {
    838           "$ref": "#/definitions/RequireExplicitUpgrade"
    839         },
    840         "DisplayInstallWarnings": {
    841           "$ref": "#/definitions/DisplayInstallWarnings"
    842         },
    843         "UnsupportedOSArchitectures": {
    844           "$ref": "#/definitions/UnsupportedOSArchitectures"
    845         },
    846         "UnsupportedArguments": {
    847           "$ref": "#/definitions/UnsupportedArguments"
    848         },
    849         "AppsAndFeaturesEntries": {
    850           "$ref": "#/definitions/AppsAndFeaturesEntries"
    851         },
    852         "ElevationRequirement": {
    853           "$ref": "#/definitions/ElevationRequirement"
    854         },
    855         "InstallationMetadata": {
    856           "$ref": "#/definitions/InstallationMetadata"
    857         },
    858         "DownloadCommandProhibited": {
    859           "$ref": "#/definitions/DownloadCommandProhibited"
    860         },
    861         "RepairBehavior": {
    862           "$ref": "#/definitions/RepairBehavior"
    863         },
    864         "ArchiveBinariesDependOnPath": {
    865           "$ref": "#/definitions/ArchiveBinariesDependOnPath"
    866         },
    867         "Authentication": {
    868           "$ref": "#/definitions/Authentication"
    869         }
    870       },
    871       "required": [
    872         "Architecture",
    873         "InstallerUrl",
    874         "InstallerSha256"
    875       ]
    876     }
    877   },
    878   "type": "object",
    879   "properties": {
    880     "PackageIdentifier": {
    881       "$ref": "#/definitions/PackageIdentifier"
    882     },
    883     "PackageVersion": {
    884       "$ref": "#/definitions/PackageVersion"
    885     },
    886     "PackageLocale": {
    887       "$ref": "#/definitions/Locale"
    888     },
    889     "Publisher": {
    890       "type": "string",
    891       "minLength": 2,
    892       "maxLength": 256,
    893       "description": "The publisher name"
    894     },
    895     "PublisherUrl": {
    896       "$ref": "#/definitions/Url",
    897       "description": "The publisher home page"
    898     },
    899     "PublisherSupportUrl": {
    900       "$ref": "#/definitions/Url",
    901       "description": "The publisher support page"
    902     },
    903     "PrivacyUrl": {
    904       "$ref": "#/definitions/Url",
    905       "description": "The publisher privacy page or the package privacy page"
    906     },
    907     "Author": {
    908       "type": [ "string", "null" ],
    909       "minLength": 2,
    910       "maxLength": 256,
    911       "description": "The package author"
    912     },
    913     "PackageName": {
    914       "type": "string",
    915       "minLength": 2,
    916       "maxLength": 256,
    917       "description": "The package name"
    918     },
    919     "PackageUrl": {
    920       "$ref": "#/definitions/Url",
    921       "description": "The package home page"
    922     },
    923     "License": {
    924       "type": "string",
    925       "minLength": 3,
    926       "maxLength": 512,
    927       "description": "The package license"
    928     },
    929     "LicenseUrl": {
    930       "$ref": "#/definitions/Url",
    931       "description": "The license page"
    932     },
    933     "Copyright": {
    934       "type": [ "string", "null" ],
    935       "minLength": 3,
    936       "maxLength": 512,
    937       "description": "The package copyright"
    938     },
    939     "CopyrightUrl": {
    940       "$ref": "#/definitions/Url",
    941       "description": "The package copyright page"
    942     },
    943     "ShortDescription": {
    944       "type": "string",
    945       "minLength": 3,
    946       "maxLength": 256,
    947       "description": "The short package description"
    948     },
    949     "Description": {
    950       "type": [ "string", "null" ],
    951       "minLength": 3,
    952       "maxLength": 10000,
    953       "description": "The full package description"
    954     },
    955     "Moniker": {
    956       "$ref": "#/definitions/Tag",
    957       "description": "The most common package term"
    958     },
    959     "Tags": {
    960       "type": [ "array", "null" ],
    961       "items": {
    962         "$ref": "#/definitions/Tag"
    963       },
    964       "maxItems": 16,
    965       "uniqueItems": true,
    966       "description": "List of additional package search terms"
    967     },
    968     "Agreements": {
    969       "type": [ "array", "null" ],
    970       "items": {
    971         "$ref": "#/definitions/Agreement"
    972       },
    973       "maxItems": 128
    974     },
    975     "ReleaseNotes": {
    976       "type": [ "string", "null" ],
    977       "minLength": 1,
    978       "maxLength": 10000,
    979       "description": "The package release notes"
    980     },
    981     "ReleaseNotesUrl": {
    982       "$ref": "#/definitions/Url",
    983       "description": "The package release notes url"
    984     },
    985     "PurchaseUrl": {
    986       "$ref": "#/definitions/Url",
    987       "description": "The purchase url for acquiring entitlement for the package."
    988     },
    989     "InstallationNotes": {
    990       "type": [ "string", "null" ],
    991       "minLength": 1,
    992       "maxLength": 10000,
    993       "description": "The notes displayed to the user upon completion of a package installation."
    994     },
    995     "Documentations": {
    996       "type": [ "array", "null" ],
    997       "items": {
    998         "$ref": "#/definitions/Documentation"
    999       },
   1000       "maxItems": 256
   1001     },
   1002     "Icons": {
   1003       "type": [ "array", "null" ],
   1004       "items": {
   1005         "$ref": "#/definitions/Icon"
   1006       },
   1007       "maxItems": 1024
   1008     },
   1009     "Channel": {
   1010       "$ref": "#/definitions/Channel"
   1011     },
   1012     "InstallerLocale": {
   1013       "$ref": "#/definitions/Locale"
   1014     },
   1015     "Platform": {
   1016       "$ref": "#/definitions/Platform"
   1017     },
   1018     "MinimumOSVersion": {
   1019       "$ref": "#/definitions/MinimumOSVersion"
   1020     },
   1021     "InstallerType": {
   1022       "$ref": "#/definitions/InstallerType"
   1023     },
   1024     "NestedInstallerType": {
   1025       "$ref": "#/definitions/NestedInstallerType"
   1026     },
   1027     "NestedInstallerFiles": {
   1028       "$ref": "#/definitions/NestedInstallerFiles"
   1029     },
   1030     "Scope": {
   1031       "$ref": "#/definitions/Scope"
   1032     },
   1033     "InstallModes": {
   1034       "$ref": "#/definitions/InstallModes"
   1035     },
   1036     "InstallerSwitches": {
   1037       "$ref": "#/definitions/InstallerSwitches"
   1038     },
   1039     "InstallerSuccessCodes": {
   1040       "$ref": "#/definitions/InstallerSuccessCodes"
   1041     },
   1042     "ExpectedReturnCodes": {
   1043       "$ref": "#/definitions/ExpectedReturnCodes"
   1044     },
   1045     "UpgradeBehavior": {
   1046       "$ref": "#/definitions/UpgradeBehavior"
   1047     },
   1048     "Commands": {
   1049       "$ref": "#/definitions/Commands"
   1050     },
   1051     "Protocols": {
   1052       "$ref": "#/definitions/Protocols"
   1053     },
   1054     "FileExtensions": {
   1055       "$ref": "#/definitions/FileExtensions"
   1056     },
   1057     "Dependencies": {
   1058       "$ref": "#/definitions/Dependencies"
   1059     },
   1060     "PackageFamilyName": {
   1061       "$ref": "#/definitions/PackageFamilyName"
   1062     },
   1063     "ProductCode": {
   1064       "$ref": "#/definitions/ProductCode"
   1065     },
   1066     "Capabilities": {
   1067       "$ref": "#/definitions/Capabilities"
   1068     },
   1069     "RestrictedCapabilities": {
   1070       "$ref": "#/definitions/RestrictedCapabilities"
   1071     },
   1072     "Markets": {
   1073       "$ref": "#/definitions/Markets"
   1074     },
   1075     "InstallerAbortsTerminal": {
   1076       "$ref": "#/definitions/InstallerAbortsTerminal"
   1077     },
   1078     "ReleaseDate": {
   1079       "$ref": "#/definitions/ReleaseDate"
   1080     },
   1081     "InstallLocationRequired": {
   1082       "$ref": "#/definitions/InstallLocationRequired"
   1083     },
   1084     "RequireExplicitUpgrade": {
   1085       "$ref": "#/definitions/RequireExplicitUpgrade"
   1086     },
   1087     "DisplayInstallWarnings": {
   1088       "$ref": "#/definitions/DisplayInstallWarnings"
   1089     },
   1090     "UnsupportedOSArchitectures": {
   1091       "$ref": "#/definitions/UnsupportedOSArchitectures"
   1092     },
   1093     "UnsupportedArguments": {
   1094       "$ref": "#/definitions/UnsupportedArguments"
   1095     },
   1096     "AppsAndFeaturesEntries": {
   1097       "$ref": "#/definitions/AppsAndFeaturesEntries"
   1098     },
   1099     "ElevationRequirement": {
   1100       "$ref": "#/definitions/ElevationRequirement"
   1101     },
   1102     "InstallationMetadata": {
   1103       "$ref": "#/definitions/InstallationMetadata"
   1104     },
   1105     "DownloadCommandProhibited": {
   1106       "$ref": "#/definitions/DownloadCommandProhibited"
   1107     },
   1108     "RepairBehavior": {
   1109       "$ref": "#/definitions/RepairBehavior"
   1110     },
   1111     "ArchiveBinariesDependOnPath": {
   1112       "$ref": "#/definitions/ArchiveBinariesDependOnPath"
   1113     },
   1114     "Authentication": {
   1115       "$ref": "#/definitions/Authentication"
   1116     },
   1117     "Installers": {
   1118       "type": "array",
   1119       "items": {
   1120         "$ref": "#/definitions/Installer"
   1121       },
   1122       "minItems": 1,
   1123       "maxItems": 1
   1124     },
   1125     "ManifestType": {
   1126       "type": "string",
   1127       "default": "singleton",
   1128       "const": "singleton",
   1129       "description": "The manifest type"
   1130     },
   1131     "ManifestVersion": {
   1132       "type": "string",
   1133       "default": "1.12.0",
   1134       "pattern": "^(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])(\\.(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])){2}$",
   1135       "description": "The manifest syntax version"
   1136     }
   1137   },
   1138   "required": [
   1139     "PackageIdentifier",
   1140     "PackageVersion",
   1141     "PackageLocale",
   1142     "Publisher",
   1143     "PackageName",
   1144     "License",
   1145     "ShortDescription",
   1146     "Installers",
   1147     "ManifestType",
   1148     "ManifestVersion"
   1149   ]
   1150 }