Windows WinGet REST API 1.1.0

Contents

Server

Server Related Functions.

1. Server : GET /information

Get Server Information.

This will retrieve server information.

Request

curl --location --request GET 'https://localhost:7071/api/information' \
--header 'Windows-Package-Manager: <string>' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "SourceIdentifier": "winget-cli-restsource-dev",
        "ServerSupportedVersions": [
            "1.0.0",
            "1.1.0"
        ],
        "UnsupportedPackageMatchFields": [],
        "RequiredPackageMatchFields": [],
        "UnsupportedQueryParameters": [],
        "RequiredQueryParameters": []
    }
}
Response Parameters
Parameter type Description
ServerSupportedVersions string The source identifier is a unique identifier for the source server.

Packages

Everything about packages.

1. Packages : POST /packages

Add Package Metadata

This will create a new package in the repository with its associated metadata.

Request

curl --location --request POST 'https://localhost:7071/api/packages?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
  "PackageIdentifier": "Raw.DemoApp"
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description
PackageIdentifier string This is the Package Identifier Parameter.

Response

{
    "Data": {
        "PackageIdentifier": "Raw.DemoApp"
    }
}

2. Packages : GET /packages

Get Package Metadata

This will retrieve a set of packages.

Request

curl --location --request GET 'https://localhost:7071/api/packages' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": [
        {
            "PackageIdentifier": "Raw.DemoApp"
        },
        {
            "PackageIdentifier": "DemoCorp.DemoApp-2"
        }
    ]
}

3. Packages : PUT /packages/{PackageIdentifier}

Replace Package Metadata

This will replace a package in the repository.

Weird no parameter can change

Request

curl --location --request PUT 'https://localhost:7071/api/packages/Raw.DemoApp?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
  "PackageIdentifier": "Raw.DemoApp"
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description
PackageIdentifier string This is the Package Identifier Parameter.

Response

{
    "Data": {
        "PackageIdentifier": "Raw.DemoApp"
    }
}

4. Packages : DELETE /packages/{PackageIdentifier}

Delete a Package

This will delete a package in the repository.

Request

curl --location --request DELETE 'https://localhost:7071/api/packages/Raw.DemoApp?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

204 No Content

5. Packages : GET /packages/{PackageIdentifier}

Get Package Metadata

This will retrieve a set of packages.

Request

curl --location --request GET 'https://localhost:7071/api/packages/Raw.DemoApp' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageIdentifier": "Raw.DemoApp"
    }
}

Package Manifests

Package Manifests are a collated set of data to aid clients in search and consumption of the data sets.

1. Package Manifests : POST /packageManifests

This creates all subcomponents contained in the logical representation of a package manifest

This will create all subcomponents contained in the logical representation of a package manifest.

Request

curl --location --request POST 'https://localhost:7071/api/packageManifests?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
    "PackageIdentifier": "DemoCorp.DemoApp-2",
    "Versions": [
        {
            "PackageVersion": "7.0.0.2",
            "DefaultLocale": {
                "PackageLocale": "en-US",
                "Publisher": "Kimi",
                "PublisherUrl": "https://kimi0230.github.io/",
                "PublisherSupportUrl": "https://kimi0230.github.io/",
                "Author": "Kimi",
                "PackageName": "DemoApp-2",
                "License": "MIT",
                "ShortDescription": "ShortDescription",
                "Description": "Description",
                "Tags": [
                    "demo",
                    "kimi"
                ],
                "Moniker": "DemoApp"
            },
            "Locales": [
                {
                    "PackageLocale": "en-US",
                    "Publisher": "Kimi",
                    "PublisherUrl": "https://kimi0230.github.io/",
                    "Author": "Kimi",
                    "PackageName": "DempApp-2",
                    "License": "MIT",
                    "ShortDescription": "ShortDescription",
                    "Description": "Description",
                    "Tags": [
                        "demo",
                        "kimi"
                    ],
                }
            ],
            "Installers": [
                {
                    "InstallerIdentifier": "kkyy",
                    "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
                    "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
                    "Architecture": "x64",
                    "Platform": [
                        "Windows.Desktop"
                    ],
                    "InstallerType": "exe",
                    "Scope": "user",
                    "InstallModes": [
                        "interactive",
                        "silent",
                        "silentWithProgress"
                    ],
                    "InstallerSwitches": {
                        "Silent": "/M",
                        "SilentWithProgress": "/M"
                    },
                    "UpgradeBehavior": "install",
                    "ProductCode": "LINE",
                    "ReleaseDate": "2022-10-24",
                    "AppsAndFeaturesEntries": [
                        {
                            "ProductCode": "LINE",
                        }
                    ]
                }
            ]
        }
    ]
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageIdentifier": "DemoCorp.DemoApp-2",
        "Versions": [
            {
                "PackageVersion": "7.0.0.2",
                "DefaultLocale": {
                    "Moniker": "DemoApp",
                    "PackageLocale": "en-US",
                    "Publisher": "Kimi",
                    "PublisherUrl": "https://kimi0230.github.io/",
                    "PublisherSupportUrl": "https://kimi0230.github.io/",
                    "Author": "Kimi",
                    "PackageName": "DemoApp-2",
                    "License": "MIT",
                    "ShortDescription": "ShortDescription",
                    "Description": "Description",
                    "Tags": [
                        "demo",
                        "kimi"
                    ]
                },
                "Installers": [
                    {
                        "InstallerIdentifier": "kkyy",
                        "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
                        "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
                        "Architecture": "x64",
                        "Platform": [
                            "Windows.Desktop"
                        ],
                        "InstallerType": "exe",
                        "Scope": "user",
                        "InstallModes": [
                            "interactive",
                            "silent",
                            "silentWithProgress"
                        ],
                        "InstallerSwitches": {
                            "Silent": "/M",
                            "SilentWithProgress": "/M"
                        },
                        "UpgradeBehavior": "install",
                        "ProductCode": "LINE",
                        "InstallerAbortsTerminal": false,
                        "ReleaseDate": "2022-10-24T00:00:00",
                        "InstallLocationRequired": false,
                        "RequireExplicitUpgrade": false,
                        "AppsAndFeaturesEntries": [
                            {
                                "ProductCode": "LINE"
                            }
                        ]
                    }
                ],
                "Locales": [
                    {
                        "PackageLocale": "en-US",
                        "Publisher": "Kimi",
                        "PublisherUrl": "https://kimi0230.github.io/",
                        "Author": "Kimi",
                        "PackageName": "DempApp-2",
                        "License": "MIT",
                        "ShortDescription": "ShortDescription",
                        "Description": "Description",
                        "Tags": [
                            "demo",
                            "kimi"
                        ]
                    }
                ]
            }
        ]
    }
}

2. Package Manifests : PUT /packageManifests/{PackageIdentifier}

This updates all subcomponents contained in the logical representation of a package manifest for a given package id.

This will update all subcomponents contained in the logical representation of a package manifest.

Request

curl --location --request PUT 'https://localhost:7071/api/packageManifests/DemoCorp.DemoApp-2?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
    "PackageIdentifier": "DemoCorp.DemoApp-2",
    "Versions": [
        {
            "PackageVersion": "7.0.0.2",
            "DefaultLocale": {
                "PackageLocale": "en-US",
                "Publisher": "Kimi",
                "PublisherUrl": "https://kimi0230.github.io/",
                "PublisherSupportUrl": "https://kimi0230.github.io/",
                "Author": "Kimi",
                "PackageName": "DemoApp-2",
                "License": "MIT",
                "ShortDescription": "Update : ShortDescription",
                "Description": "Update : Description",
                "Tags": [
                    "demo",
                    "kimi",
                    "acer"
                ],
                "Moniker": "DemoApp"
            },
            "Locales": [
                {
                    "PackageLocale": "en-US",
                    "Publisher": "Kimi",
                    "PublisherUrl": "https://kimi0230.github.io/",
                    "Author": "Kimi",
                    "PackageName": "DempApp-2",
                    "License": "MIT",
                    "ShortDescription": "ShortDescription",
                    "Description": "Description",
                    "Tags": [
                        "demo",
                        "kimi"
                    ],
                }
            ],
            "Installers": [
                {
                    "InstallerIdentifier": "kkyy",
                    "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
                    "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
                    "Architecture": "x64",
                    "Platform": [
                        "Windows.Desktop"
                    ],
                    "InstallerType": "exe",
                    "Scope": "user",
                    "InstallModes": [
                        "interactive",
                        "silent",
                        "silentWithProgress"
                    ],
                    "InstallerSwitches": {
                        "Silent": "/M",
                        "SilentWithProgress": "/M"
                    },
                    "UpgradeBehavior": "install",
                    "ProductCode": "LINE",
                    "ReleaseDate": "2022-10-24",
                    "AppsAndFeaturesEntries": [
                        {
                            "ProductCode": "LINE",
                        }
                    ]
                }
            ]
        }
    ]
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageIdentifier": "DemoCorp.DemoApp-2",
        "Versions": [
            {
                "PackageVersion": "7.0.0.2",
                "DefaultLocale": {
                    "Moniker": "DemoApp",
                    "PackageLocale": "en-US",
                    "Publisher": "Kimi",
                    "PublisherUrl": "https://kimi0230.github.io/",
                    "PublisherSupportUrl": "https://kimi0230.github.io/",
                    "Author": "Kimi",
                    "PackageName": "DemoApp-2",
                    "License": "MIT",
                    "ShortDescription": "Update : ShortDescription",
                    "Description": "Update : Description",
                    "Tags": [
                        "demo",
                        "kimi",
                        "acer"
                    ]
                },
                "Installers": [
                    {
                        "InstallerIdentifier": "kkyy",
                        "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
                        "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
                        "Architecture": "x64",
                        "Platform": [
                            "Windows.Desktop"
                        ],
                        "InstallerType": "exe",
                        "Scope": "user",
                        "InstallModes": [
                            "interactive",
                            "silent",
                            "silentWithProgress"
                        ],
                        "InstallerSwitches": {
                            "Silent": "/M",
                            "SilentWithProgress": "/M"
                        },
                        "UpgradeBehavior": "install",
                        "ProductCode": "LINE",
                        "InstallerAbortsTerminal": false,
                        "ReleaseDate": "2022-10-24T00:00:00",
                        "InstallLocationRequired": false,
                        "RequireExplicitUpgrade": false,
                        "AppsAndFeaturesEntries": [
                            {
                                "ProductCode": "LINE"
                            }
                        ]
                    }
                ],
                "Locales": [
                    {
                        "PackageLocale": "en-US",
                        "Publisher": "Kimi",
                        "PublisherUrl": "https://kimi0230.github.io/",
                        "Author": "Kimi",
                        "PackageName": "DempApp-2",
                        "License": "MIT",
                        "ShortDescription": "ShortDescription",
                        "Description": "Description",
                        "Tags": [
                            "demo",
                            "kimi"
                        ]
                    }
                ]
            }
        ]
    }
}

3. Package Manifests : DELETE /packageManifests/{PackageIdentifier}

Delete a package manifest

This will delete a version in the repository.

Request

curl --location --request DELETE 'https://localhost:7071/api/packageManifests/DemoCorp.DemoApp-2?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

204

4. Package Manifests : GET /packageManifests/{PackageIdentifier}

This returns a package manifest This will retrieve a package manifest.

Request

curl --location --request GET 'https://localhost:7071/api/packageManifests/DemoCorp.DemoApp-2?Version=7.0.0.2' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageIdentifier": "DemoCorp.DemoApp-2",
        "Versions": [
            {
                "PackageVersion": "7.0.0.2",
                "DefaultLocale": {
                    "Moniker": "DemoApp",
                    "PackageLocale": "en-US",
                    "Publisher": "Kimi",
                    "PublisherUrl": "https://kimi0230.github.io/",
                    "PublisherSupportUrl": "https://kimi0230.github.io/",
                    "Author": "Kimi",
                    "PackageName": "DemoApp-2",
                    "License": "MIT",
                    "ShortDescription": "ShortDescription",
                    "Description": "Description",
                    "Tags": [
                        "demo",
                        "kimi"
                    ]
                },
                "Installers": [
                    {
                        "InstallerIdentifier": "kkyy",
                        "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
                        "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
                        "Architecture": "x64",
                        "Platform": [
                            "Windows.Desktop"
                        ],
                        "InstallerType": "exe",
                        "Scope": "user",
                        "InstallModes": [
                            "interactive",
                            "silent",
                            "silentWithProgress"
                        ],
                        "InstallerSwitches": {
                            "Silent": "/M",
                            "SilentWithProgress": "/M"
                        },
                        "UpgradeBehavior": "install",
                        "ProductCode": "LINE",
                        "InstallerAbortsTerminal": false,
                        "ReleaseDate": "2022-10-24T00:00:00",
                        "InstallLocationRequired": false,
                        "RequireExplicitUpgrade": false,
                        "AppsAndFeaturesEntries": [
                            {
                                "ProductCode": "LINE"
                            }
                        ]
                    }
                ],
                "Locales": [
                    {
                        "PackageLocale": "en-US",
                        "Publisher": "Kimi",
                        "PublisherUrl": "https://kimi0230.github.io/",
                        "Author": "Kimi",
                        "PackageName": "DempApp-2",
                        "License": "MIT",
                        "ShortDescription": "ShortDescription",
                        "Description": "Description",
                        "Tags": [
                            "demo",
                            "kimi"
                        ]
                    }
                ]
            }
        ]
    },
    "UnsupportedQueryParameters": [],
    "RequiredQueryParameters": []
}

5. Package Manifests : POST /manifestSearch

This retrieves package manifests for a given search request. This will retrieve a set of package manifests.

MatchType = [ Exact, CaseInsensitive, StartsWith, Substring, Wildcard, Fuzzy, FuzzySubstring ]

Request

curl --location --request POST 'https://localhost:7071/api/manifestSearch' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
  "MaximumResults": 0,
  "FetchAllManifests": true,
  "Query": {
    "KeyWord": "DemoCorp",
    "MatchType": "Substring"
  },
  "Inclusions": [
    {
      "PackageMatchField": "PackageIdentifier",
      "RequestMatch": {
        "KeyWord": "DemoCorp",
        "MatchType": "Substring"
      }
    }
  ],
  "Filters": [
    {
      "PackageMatchField": "PackageIdentifier",
      "RequestMatch": {
        "KeyWord": "DemoCorp",
        "MatchType": "Substring"
      }
    }
  ]
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": [
        {
            "PackageIdentifier": "Democorp.Demoapp"
        },
        {
            "PackageIdentifier": "DemoCorp.DemoApp",
            "PackageName": "DemoApp",
            "Publisher": "Kimi",
            "Versions": [
                {
                    "PackageVersion": "7.0.0.1"
                }
            ]
        }
    ],
    "UnsupportedPackageMatchFields": [],
    "RequiredPackageMatchFields": []
}

Versions

Everything about versions.

1. Versions : POST /packages/{PackageIdentifier}/versions

Add Version Metadata

This will create a new version in the repository with its associated metadata.

Request

curl --location --request POST 'https://localhost:7071/api/packages/Raw.DemoApp/versions?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
    "PackageVersion": "9.0.0.1",
    "DefaultLocale": {
        "PackageLocale": "en-US",
        "Publisher": "Kimi",
        "PackageName": "Raw.DemoApp",
        "License": "MIT",
        "ShortDescription": "string",
        "Description": "string",
        "Tags": [
            "demo","Kimi","Raw"
        ]
    }
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageVersion": "9.0.0.1",
        "DefaultLocale": {
            "PackageLocale": "en-US",
            "Publisher": "Kimi",
            "PackageName": "Raw.DemoApp",
            "License": "MIT",
            "ShortDescription": "string",
            "Description": "string",
            "Tags": [
                "demo",
                "Kimi",
                "Raw"
            ]
        }
    }
}

2. Versions : GET /packages/{PackageIdentifier}/versions

Get Version Metadata This will retrieve a set of versions.

Request

curl --location --request GET 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageVersion": "9.0.0.1",
        "DefaultLocale": {
            "PackageLocale": "en-US",
            "Publisher": "Kimi",
            "PackageName": "Raw.DemoApp",
            "License": "MIT",
            "ShortDescription": "string",
            "Description": "string",
            "Tags": [
                "demo",
                "Kimi",
                "Raw"
            ]
        }
    }
}

3. Versions : PUT /packages/{PackageIdentifier}/versions/{PackageVersion}

Replace Version Metadata

This will replace a version in the repository.

Request

curl --location --request PUT 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
    "PackageVersion": "9.0.0.1",
    "DefaultLocale": {
        "PackageLocale": "en-US",
        "Publisher": "Kimi",
        "Author": "kimi",
        "PackageName": "RawApp-Update",
        "License": "MIT",
        "ShortDescription": "My Demoapp short description 123",
        "Description": "My Demoapp description 123",
        "Tags": [
            "demo",
            "Kimi",
            "Raw"
        ]
    }
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

 Response

{
    "Data": {
        "PackageVersion": "9.0.0.1",
        "DefaultLocale": {
            "PackageLocale": "en-US",
            "Publisher": "Kimi",
            "Author": "kimi",
            "PackageName": "RawApp-Update",
            "License": "MIT",
            "ShortDescription": "My Demoapp short description 123",
            "Description": "My Demoapp description 123",
            "Tags": [
                "demo",
                "Kimi",
                "Raw"
            ]
        }
    }
}

4. Versions : DELETE /packages/{PackageIdentifier}/versions/{PackageVersion}

Delete a Version

This will delete a version in the repository.

Request

curl --location --request DELETE 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

204 No Content

5. Versions : GET /packages/{PackageIdentifier}/versions/{PackageVersion}

Get Version Metadata This will retrieve a version.

Request

curl --location --request GET 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageVersion": "9.0.0.1",
        "DefaultLocale": {
            "PackageLocale": "en-US",
            "Publisher": "Kimi",
            "Author": "kimi",
            "PackageName": "RawApp-Update",
            "License": "MIT",
            "ShortDescription": "My Demoapp short description 123",
            "Description": "My Demoapp description 123",
            "Tags": [
                "demo",
                "Kimi",
                "Raw"
            ]
        }
    }
}

Locale

Everything about locale.

1. Locale : POST /packages/{PackageIdentifier}/versions/{PackageVersion}/locales

Add Locale Metadata

This will create a new Locale in the repository with its associated metadata.

Request

curl --location --request POST 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/locales?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
    "PackageLocale": "en-US",
    "Publisher": "Kimi",
    "PublisherUrl": "https://kimi0230.github.io/",
    "Author": "Kimi",
    "PackageName": "Raw.DemoApp",
    "License": "MIT",
    "ShortDescription": "locale: this is raw demo app",
    "Description": "locale: Raw demo app locale",
    "Tags": [
        "demo",
        "kimi"
    ]
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageLocale": "en-US",
        "Publisher": "Kimi",
        "PublisherUrl": "https://kimi0230.github.io/",
        "Author": "Kimi",
        "PackageName": "Raw.DemoApp",
        "License": "MIT",
        "ShortDescription": "locale: this is raw demo app",
        "Description": "locale: Raw demo app locale",
        "Tags": [
            "demo",
            "kimi"
        ]
    }
}

2. Locale : GET /packages/{PackageIdentifier}/versions/{PackageVersion}/locales

Get Locale Metadata This will retrieve a set of Locale.

Request

curl --location --request GET 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/locales' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageLocale": "en-US",
        "Publisher": "Kimi",
        "PublisherUrl": "https://kimi0230.github.io/",
        "Author": "Kimi",
        "PackageName": "Raw.DemoApp",
        "License": "MIT",
        "ShortDescription": "locale: this is raw demo app",
        "Description": "locale: Raw demo app locale",
        "Tags": [
            "demo",
            "kimi"
        ]
    }
}

3. Locale : PUT /packages/{PackageIdentifier}/versions/{PackageVersion}/locales/{PackageLocale}

Replace Locale Metadata

This will replace an Locale in the repository.

Request

curl --location --request PUT 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/locales/en-US?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
    "PackageLocale": "en-US",
    "Publisher": "Kimi",
    "PublisherUrl": "https://kimi0230.github.io/",
    "Author": "Kimi",
    "PackageName": "Raw.DemoApp",
    "License": "MIT",
    "ShortDescription": "locale: this is raw demo app update",
    "Description": "locale: Raw demo app locale update",
    "Tags": [
        "demo",
        "kimi",
        "Raw"
    ]
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageLocale": "en-US",
        "Publisher": "Kimi",
        "PublisherUrl": "https://kimi0230.github.io/",
        "Author": "Kimi",
        "PackageName": "Raw.DemoApp",
        "License": "MIT",
        "ShortDescription": "locale: this is raw demo app update",
        "Description": "locale: Raw demo app locale update",
        "Tags": [
            "demo",
            "kimi",
            "Raw"
        ]
    }
}

4. Locale : DELETE /packages/{PackageIdentifier}/versions/{PackageVersion}/locales/{PackageLocale}

Delete an Locale

This will delete a Locale in the repository.

Request

curl --location --request DELETE 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/locales/en-US?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

204 No Content

5. Locale : GET /packages/{PackageIdentifier}/versions/{PackageVersion}/locales/{PackageLocale}

Get Locale Metadata This will retrieve an Locale.

Request

curl --location --request GET 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/locales/en-US' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "PackageLocale": "en-US",
        "Publisher": "Kimi",
        "PublisherUrl": "https://kimi0230.github.io/",
        "Author": "Kimi",
        "PackageName": "Raw.DemoApp",
        "License": "MIT",
        "ShortDescription": "locale: this is raw demo app update",
        "Description": "locale: Raw demo app locale update",
        "Tags": [
            "demo",
            "kimi",
            "Raw"
        ]
    }
}

Installers

Everything about installers.

1. Installers : POST /packages/{PackageIdentifier}/versions/{PackageVersion}/installers

Add Installer Metadata

This will create a new Installer in the repository with its associated metadata.

Request

curl --location --request POST 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/installers?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
    "InstallerIdentifier": "Raw.LINE",
    "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
    "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
    "Architecture": "x64",
    "Platform": [
        "Windows.Desktop"
    ],
    "InstallerType": "exe",
    "Scope": "user",
    "InstallModes": [
        "interactive",
        "silent",
        "silentWithProgress"
    ],
    "InstallerSwitches": {
        "Silent": "/M",
        "SilentWithProgress": "/M"
    },
    "UpgradeBehavior": "install",
    "ProductCode": "LINE",
    "ReleaseDate": "2022-10-25",
    "AppsAndFeaturesEntries": [
        {
            "ProductCode": "LINE"
        }
    ]
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "InstallerIdentifier": "Raw.LINE",
        "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
        "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
        "Architecture": "x64",
        "Platform": [
            "Windows.Desktop"
        ],
        "InstallerType": "exe",
        "Scope": "user",
        "InstallModes": [
            "interactive",
            "silent",
            "silentWithProgress"
        ],
        "InstallerSwitches": {
            "Silent": "/M",
            "SilentWithProgress": "/M"
        },
        "UpgradeBehavior": "install",
        "ProductCode": "LINE",
        "InstallerAbortsTerminal": false,
        "ReleaseDate": "2022-10-25T00:00:00",
        "InstallLocationRequired": false,
        "RequireExplicitUpgrade": false,
        "AppsAndFeaturesEntries": [
            {
                "ProductCode": "LINE"
            }
        ]
    }
}

2. Installers : GET /packages/{PackageIdentifier}/versions/{PackageVersion}/installers

Get Installer Metadata This will retrieve a set of installers.

Request

curl --location --request GET 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/installers' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "InstallerIdentifier": "Raw.LINE",
        "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
        "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
        "Architecture": "x64",
        "Platform": [
            "Windows.Desktop"
        ],
        "InstallerType": "exe",
        "Scope": "user",
        "InstallModes": [
            "interactive",
            "silent",
            "silentWithProgress"
        ],
        "InstallerSwitches": {
            "Silent": "/M",
            "SilentWithProgress": "/M"
        },
        "UpgradeBehavior": "install",
        "ProductCode": "LINE",
        "InstallerAbortsTerminal": false,
        "ReleaseDate": "2022-10-25T00:00:00",
        "InstallLocationRequired": false,
        "RequireExplicitUpgrade": false,
        "AppsAndFeaturesEntries": [
            {
                "ProductCode": "LINE"
            }
        ]
    }
}

3. Installers : PUT /packages/{PackageIdentifier}/versions/{PackageVersion}/installers/{InstallerIdentifier}

Replace Installer Metadata

This will replace an installer in the repository.

Request

curl --location --request PUT 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/installers/Raw.LINE?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Content-Type: application/json' \
--header 'Accept: application/Json' \
--data-raw '{
    "InstallerIdentifier": "Raw.LINE",
    "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
    "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
    "Architecture": "x64",
    "Platform": [
        "Windows.Desktop"
    ],
    "InstallerType": "exe",
    "Scope": "user",
    "InstallModes": [
        "interactive",
        "silent",
        "silentWithProgress"
    ],
    "InstallerSwitches": {
        "Silent": "/M",
        "SilentWithProgress": "/M"
    },
    "UpgradeBehavior": "install",
    "ProductCode": "LINE",
    "ReleaseDate": "2022-10-26",
    "AppsAndFeaturesEntries": [
        {
            "ProductCode": "LINE"
        }
    ]
}'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "InstallerIdentifier": "Raw.LINE",
        "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
        "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
        "Architecture": "x64",
        "Platform": [
            "Windows.Desktop"
        ],
        "InstallerType": "exe",
        "Scope": "user",
        "InstallModes": [
            "interactive",
            "silent",
            "silentWithProgress"
        ],
        "InstallerSwitches": {
            "Silent": "/M",
            "SilentWithProgress": "/M"
        },
        "UpgradeBehavior": "install",
        "ProductCode": "LINE",
        "InstallerAbortsTerminal": false,
        "ReleaseDate": "2022-10-26T00:00:00",
        "InstallLocationRequired": false,
        "RequireExplicitUpgrade": false,
        "AppsAndFeaturesEntries": [
            {
                "ProductCode": "LINE"
            }
        ]
    }
}

4. Installers : DELETE /packages/{PackageIdentifier}/versions/{PackageVersion}/installers/{InstallerIdentifier}

Delete an Installer

This will delete an installer in the repository.

Request

curl --location --request DELETE 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/installers/Raw.LINE?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
code string APIAuthenticationQueryCode (apiKey)
Body Parameters
Parameter type Description

Response

204 No Content

5. Installers : GET /packages/{PackageIdentifier}/versions/{PackageVersion}/installers/{InstallerIdentifier}

Get Installer Metadata This will retrieve an installer.

Request

curl --location --request GET 'https://localhost:7071/api/packages/Raw.DemoApp/versions/9.0.0.1/installers/Raw.LINE' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/Json'

Version: 1.1.0 Windows-Package-Manager: winget-cli-restsource-dev

Query Parameters
Parameter type Description
Body Parameters
Parameter type Description

Response

{
    "Data": {
        "InstallerIdentifier": "Raw.LINE",
        "InstallerSha256": "018D9F09794718FB3F17608A03DD3AFC1F6699F86045E494086B875465359DF5",
        "InstallerUrl": "https://desktop.line-scdn.net/win/new/LineInst.exe",
        "Architecture": "x64",
        "Platform": [
            "Windows.Desktop"
        ],
        "InstallerType": "exe",
        "Scope": "user",
        "InstallModes": [
            "interactive",
            "silent",
            "silentWithProgress"
        ],
        "InstallerSwitches": {
            "Silent": "/M",
            "SilentWithProgress": "/M"
        },
        "UpgradeBehavior": "install",
        "ProductCode": "LINE",
        "InstallerAbortsTerminal": false,
        "ReleaseDate": "2022-10-26T00:00:00",
        "InstallLocationRequired": false,
        "RequireExplicitUpgrade": false,
        "AppsAndFeaturesEntries": [
            {
                "ProductCode": "LINE"
            }
        ]
    }
}

Issues

1. "ErrorMessage": "The selected resource was not found."

When Call REST Api DELETE /packageManifests/{PackageIdentifier}

curl --location --request DELETE 'https://localhost:7071/api/packageManifests/DemoCorp.DemoApp-2?code=<API Key>' \
--header 'Version: 1.1.0' \
--header 'Windows-Package-Manager: winget-cli-restsource-dev' \
--header 'Accept: application/json'

Show below error

{
    "ErrorCode": 404,
    "ErrorMessage": "The selected resource was not found."
}

REST-Delete-error

Solution

Partition key Setting in CosmosDB. It should be /id. cosmos-partiotion-key

Demo

Call API

  1. Create Package

     curl --location --request POST 'https://localhost:7071/api/packages?code=<API Key>' \
     --header 'Version: 1.1.0' \
     --header 'Windows-Package-Manager: winget-cli-restsource-dev' \
     --header 'Content-Type: application/json' \
     --header 'Accept: application/Json' \
     --data-raw '{
     "PackageIdentifier": "AcerIncorporated.AcerProductRegistration"
     }'
    
  2. Create Version

     curl --location --request POST 'https://localhost:7071/api/packages/AcerIncorporated.AcerProductRegistration/versions?code=<API Key>' \
     --header 'Version: 1.1.0' \
     --header 'Windows-Package-Manager: winget-cli-restsource-dev' \
     --header 'Content-Type: application/json' \
     --header 'Accept: application/Json' \
     --data-raw '{
         "PackageVersion": "2.0.3030.0",
         "DefaultLocale": {
             "PackageLocale": "en-US",
             "Publisher": "Acer Incorporated",
             "PackageName": "Acer Product Registration",
             "License": "MIT",
             "ShortDescription": "Acer Product Registration Installer",
             "Description": "Acer Product Registration Installer",
             "Tags": [
                 "demo","Kimi","Acer","registration"
             ]
         }
     }'
    
  3. Create Locale

    curl --location --request POST 'https://localhost:7071/api/packages/AcerIncorporated.AcerProductRegistration/versions/2.0.3030.0/locales?code=<API Key>' \
     --header 'Version: 1.1.0' \
     --header 'Windows-Package-Manager: winget-cli-restsource-dev' \
     --header 'Content-Type: application/json' \
     --header 'Accept: application/Json' \
     --data-raw '{
         "PackageLocale": "en-US",
         "Publisher": "Acer Incorporated",
         "PublisherUrl": "http://10.36.22.111:8180/TsaiKimi",
         "Author": "Kimi",
         "PackageName": "AcerIncorporated.AcerProductRegistration",
         "License": "MIT",
         "ShortDescription": "Acer Product Registration Installer",
         "Description": "Acer Product Registration Installer",
         "Tags": [
             "demo",
             "Kimi",
             "Acer",
             "registration"
         ]
     }'
    
  4. Create Installer
    curl --location --request POST 'https://localhost:7071/api/packages/AcerIncorporated.AcerProductRegistration/versions/2.0.3030.0/installers?code=<API Key>' \
     --header 'Version: 1.1.0' \
     --header 'Windows-Package-Manager: winget-cli-restsource-dev' \
     --header 'Content-Type: application/json' \
     --header 'Accept: application/Json' \
     --data-raw '{
         "InstallerIdentifier": "prodreginstallers.x64",
         "InstallerSha256": "B95069BC4B6494E942DA6D61A05E046CAABF4565FCC54A6A170CA6682728A30A",
         "InstallerUrl": "http://10.36.22.111:8180/TsaiKimi/public-executable/-/raw/main/manifests/a/AcerIncorporated/AcerProductRegistration/2.0.3030.0/2b39f60c02594a838bf4de7851532b59.msix",
         "Architecture": "x64",
         "Platform": [
             "Windows.Universal"
         ],
         "InstallerType": "msix"
     }'
    

Run winget commands

winget source list
winget search Acer -s winget-pkgs-restsource
winget install --id  AcerIncorporated.AcerProductRegistration -s winget-pkgs-restsource --force
winget list | Select-String "Acer"
winget uninstall --id AcerIncorporated.AcerRegistration_48frkmn4z8aw4 -s winget-pkgs-restsource

winget source list
winget search Acer -s winget-pkgs-restsource
winget install --id  AcerIncorporated.AcerProductRegistration -s winget-pkgs-restsource --force
winget list | Select-String "Acer"
winget uninstall --id AcerIncorporated.AcerRegistration_48frkmn4z8aw4 -s winget-pkgs-restsource

Reference


Security Components

  securitySchemes:

    APIAuthenticationQueryCode:
      type: apiKey
      in: query
      name: code

    APIAuthenticationHeaderXFunctionKey:
      type: apiKey
      in: header
      name: x-functions-key

    APIAuthenticationHeaderOcpApimSubscriptionKey:
      type: apiKey
      in: header
      name: Ocp-Apim-Subscription-Key

API Schemas

  schemas:

    # API Definitions
    APIVersion:
      description: The API Version to use for the request
      type: string
      pattern: "^([0-9]+\\.){0,3}(\\*|[0-9]+)$"
      maxLength: 128

    Windows-Package-Manager:
      description: Custom header value to be passed along all rest calls from winget.
      type: string
      maxLength: 1024

    # Definitions
    PackageIdentifier:
      description: The package unique identifier
      type: string
      pattern: "^[^\\.\\s\\\\/:\\*\\?\"<>\\|\\x01-\\x1f]{1,32}(\\.[^\\.\\s\\\\/:\\*\\?\"<>\\|\\x01-\\x1f]{1,32}){1,3}$"
      maxLength: 128

    ContinuationToken:
      description: A generic continuation token to be used by the server.
      type: string
      maxLength: 4096

    PackageVersion:
      description: Version Type
      type: string
      pattern: "^[^\\\\/:\\*\\?\"<>\\|\\x01-\\x1f]+$"
      maxLength: 128

    InstallerIdentifier:
      description: Version Type
      type: string
      maxLength: 128

    Publisher:
      description: Publisher Name
      type: string
      minLength: 2
      maxLength: 256

    Author:
      description: The package author
      type: string
      nullable: true
      minLength: 2
      maxLength: 256

    PackageName:
      description: The package name
      type: string
      minLength: 2
      maxLength: 256

    License:
      description: The package license
      type: string
      minLength: 3
      maxLength: 512

    Copyright:
      description: The package copyright
      type: string
      nullable: true
      minLength: 3
      maxLength: 512

    ShortDescription:
      description: The short package description
      type: string
      minLength: 3
      maxLength: 256

    Description:
      description: The full package description
      type: string
      nullable: true
      minLength: 3
      maxLength: 10000

    Locale:
      description: The package meta-data locale
      type: string
      nullable: true
      pattern: "^([a-zA-Z]{2}|[iI]-[a-zA-Z]+|[xX]-[a-zA-Z]{1,8})(-[a-zA-Z]{1,8})*$"
      maxLength: 20

    Url:
      description: URL type
      type: string
      nullable: true
      pattern: "^([Hh][Tt][Tt][Pp][Ss]?)://"
      maxLength: 2048

    Tag:
      description: Package moniker or tag
      type: string
      nullable: true
      pattern: "^\\S+$"
      minLength: 1
      maxLength: 40

    Tags:
      description: List of additional package search terms
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 16
      items:
        $ref: '#/components/schemas/Tag'

    Agreement:
      description: One Agreement entry.
      type: object
      properties:
        AgreementLabel:
          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 AgreementL
          type: string
          minLength: 1
          maxLength: 100
        Agreement:
          description: The agreement text content.
          nullable: true
          type: string
          minLength: 1
          maxLength: 10000
        AgreementUrl:
          description: The agreement url.
          $ref: '#/components/schemas/Url'

    Agreements:
      description: List of agreements. Agreements are shown in the order of this list.
      type: array
      nullable: true
      maxItems: 128
      items:
        $ref: '#/components/schemas/Agreement'

    ReleaseNotes:
      description: Package release notes.
      type: string
      nullable: true
      minLength: 1
      maxLength: 10000

    Channel:
      description: This field is not supported by the client yet. The client will set this to null when processing.
      type: string
      nullable: true
      minLength: 1
      maxLength: 16

    Platform:
      description: The installer supported operating system
      type: array
      nullable: true
      items:
        type: string
        uniqueItems: true
        minItems: 1
        maxItems: 2
        enum:
          - Windows.Desktop
          - Windows.Universal

    MinimumOSVersion:
      description: The installer minimum operating system version
      type: string
      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}$"
      nullable: true

    InstallerType:
      description: Enumeration of supported installer types.
      type: string
      enum:
        - msix
        - msi
        - appx
        - exe
        - zip
        - inno
        - nullsoft
        - wix
        - burn
        - pwa
        - msstore

    Scope:
      description: Enumeration of Values for Scope
      type: string
      nullable: true
      enum:
        - user
        - machine

    InstallMode:
      description: Enumeration of Values for InstallModes
      type: string
      nullable: true
      enum:
        - interactive
        - silent
        - silentWithProgress

    InstallModes:
      description: List of supported installer modes
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 3
      items:
        $ref: '#/components/schemas/InstallMode'

    PackageDependency:
      description: A Package Dependency consists of a Package Identifier and an optional Minimum Version.
      type: object
      properties:
        PackageIdentifier:
          $ref: '#/components/schemas/PackageIdentifier'
        MinimumVersion:
          $ref: '#/components/schemas/PackageVersion'
      required:
        - PackageIdentifier

    InstallerSwitches:
      description: Installer Switches
      type: object
      properties:

        Silent:
          description: Silent is the value that should be passed to the installer when user chooses a silent or quiet install
          type: string
          nullable: true
          minLength: 1
          maxLength: 512

        SilentWithProgress:
          description: SilentWithProgress is the value that should be passed to the installer when user chooses a non-interactive install
          type: string
          nullable: true
          minLength: 1
          maxLength: 512

        Interactive:
          description: Interactive is the value that should be passed to the installer when user chooses an interactive install
          type: string
          nullable: true
          minLength: 1
          maxLength: 512

        InstallLocation:
          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
          type: string
          nullable: true
          minLength: 1
          maxLength: 512

        Log:
          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
          type: string
          nullable: true
          minLength: 1
          maxLength: 512

        Upgrade:
          description: Upgrade is the value that should be passed to the installer when user chooses an upgrade
          type: string
          nullable: true
          minLength: 1
          maxLength: 512

        Custom:
          description: Custom switches will be passed directly to the installer by winget
          type: string
          nullable: true
          minLength: 1
          maxLength: 2048

    InstallerReturnCode:
      description: An exit code that can be returned by the installer after execution
      type: integer
      not:
        enum: [0]
      minimum : -2147483648
      maximum : 4294967295

    InstallerSuccessCodes:
      description: List of supported installer modes
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 16
      items:
        $ref: '#/components/schemas/InstallerReturnCode'

    ExpectedReturnCodes:
      description: Installer exit codes for common errors. Should contain unique installer return codes.
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 128
      items:
        $ref: '#/components/schemas/ExpectedReturnCode'

    ExpectedReturnCodeResponse:
      description: Installer expected return code response.
      type: string
      enum:
        - packageInUse
        - installInProgress
        - fileInUse
        - missingDependency
        - diskFull
        - insufficientMemory
        - noNetwork
        - contactSupport
        - rebootRequiredToFinish
        - rebootRequiredForInstall
        - rebootInitiated
        - cancelledByUser
        - alreadyInstalled
        - downgrade
        - blockedByPolicy

    ExpectedReturnCode:
      description: Installer exit code for a common error.
      type: object
      properties:
        InstallerReturnCode:
          $ref: '#/components/schemas/InstallerReturnCode'
        ReturnResponse:
          $ref: '#/components/schemas/ExpectedReturnCodeResponse'
      required:
        - InstallerReturnCode
        - ReturnResponse

    UpgradeBehavior:
      description: The upgrade method
      type: string
      nullable: true
      enum:
        - install
        - uninstallPrevious

    Commands:
      description: List of commands or aliases to run the package
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 16
      items:
        type: string
        minLength: 1
        maxLength: 40

    Protocols:
      description: List of protocols the package provides a handler for
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 16
      items:
        type: string
        pattern: "^[a-z][-a-z0-9\\.\\+]*$"
        maxLength: 2048

    FileExtensions:
      description: List of file extensions the package could support
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 256
      items:
        type: string
        pattern: "^[^\\\\/:\\*\\?\"<>\\|\\x01-\\x1f]+$"
        maxLength: 64

    Dependencies:
      description: List of dependencies
      type: object
      properties:

        WindowsFeatures:
          description: List of Windows feature dependencies
          type: array
          nullable: true
          uniqueItems: true
          maxItems: 16
          items:
            type: string
            minLength: 1
            maxLength: 128

        WindowsLibraries:
          description: List of Windows library dependencies
          type: array
          nullable: true
          uniqueItems: true
          maxItems: 16
          items:
            type: string
            minLength: 1
            maxLength: 128

        PackageDependencies:
          description: List of package dependencies from current source
          type: array
          nullable: true
          uniqueItems: true
          maxItems: 16
          items:
            $ref: '#/components/schemas/PackageDependency'

        ExternalDependencies:
          description: List of external package dependencies
          type: array
          nullable: true
          uniqueItems: true
          maxItems: 16
          items:
            type: string
            minLength: 1
            maxLength: 128

    PackageFamilyName:
      description: PackageFamilyName for appx or msix installer. Could be used for correlation of packages across sources. This is restricted to appx or msix.
      type: string
      nullable: true
      pattern: "^[A-Za-z0-9][-\\.A-Za-z0-9]+_[A-Za-z0-9]{13}$"
      maxLength: 255

    ProductCode:
      description: ProductCode could be used for correlation of packages across sources. This is restricted to exe, inno, msi, nullsoft, wix, or burn.
      type: string
      nullable: true
      minLength: 1
      maxLength: 255

    Capabilities:
      description: List of appx or msix installer capabilities
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 1000
      items:
        type: string
        minLength: 1
        maxLength: 40

    RestrictedCapabilities:
      description: List of appx or msix installer restricted capabilities
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 1000
      items:
        type: string
        minLength: 1
        maxLength: 40

    InstallerSha256:
      description: Sha256 is required. Sha256 of the installer
      type: string
      nullable: true
      pattern: "^[A-Fa-f0-9]{64}$"

    SignatureSha256:
      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
      type: string
      nullable: true
      pattern: "^[A-Fa-f0-9]{64}$"

    ArchitectureNonNeutral:
      description: The architecture non neutral.
      type: string
      enum:
        - x86
        - x64
        - arm
        - arm64

    Architecture:
      description: The installer target architecture.
      oneOf:
        - $ref: '#/components/schemas/ArchitectureNonNeutral'
        - type: string
          enum:
            - neutral

    MSStoreProductIdentifier:
      description: The Microsoft Store product id.
      type: string
      nullable: true
      pattern: "^[A-Za-z0-9]{12}$"

    Market:
      description: The installer target market.
      type: string
      nullable: true
      pattern: "^[A-Z]{2}$"

    MarketArray:
      description: Array of markets.
      type: array
      nullable: true
      uniqueItems: true
      maxItems: 256
      items:
        $ref: '#/components/schemas/Market'

    Markets:
      description: The installer markets
      oneOf:
        - type: object
          properties:
            AllowedMarkets:
              $ref: '#/components/schemas/MarketArray'
        - type: object
          properties:
            ExcludedMarkets:
              $ref: '#/components/schemas/MarketArray'

    InstallerAbortsTerminal:
      description: Indicates whether the installer will abort terminal.
      type: boolean

    ReleaseDate:
      description: The installer release date.
      nullable: true
      type: string
      format: date

    InstallLocationRequired:
      description: Indicates whether the installer requires an install location provided.
      type: boolean

    RequireExplicitUpgrade:
      description: Indicates whether the installer should be pinned by default from upgrade.
      type: boolean

    ElevationRequirement:
      description: The installer's elevation requirement.
      type: string
      nullable: true
      enum:
        - elevationRequired
        - elevationProhibited
        - elevatesSelf

    UnsupportedOSArchitectures:
      description: List of OS architectures the installer does not support.
      type: array
      uniqueItems: true
      items:
        $ref: '#/components/schemas/ArchitectureNonNeutral'

    AppsAndFeaturesEntry:
      description: Various key values under installer's ARP entry.
      type: object
      properties:
        DisplayName:
          description: The DisplayName registry value.
          type: string
          nullable: true
          minLength: 1
          maxLength: 256
        Publisher:
          description: The Publisher registry value.
          type: string
          nullable: true
          minLength: 1
          maxLength: 256
        DisplayVersion:
          description: The DisplayVersion registry value.
          type: string
          nullable: true
          minLength: 1
          maxLength: 128
        ProductCode:
          $ref: '#/components/schemas/ProductCode'
        UpgradeCode:
          $ref: '#/components/schemas/ProductCode'
        InstallerType:
          $ref: '#/components/schemas/InstallerType'

    AppsAndFeaturesEntries:
      description: List of ARP entries.
      type: array
      uniqueItems: true
      maxItems: 128
      items:
        $ref: '#/components/schemas/AppsAndFeaturesEntry'

    SourceIdentifier:
      description: The source identifier is a unique identifier for the source server.
      type: string
      minLength: 3
      maxLength: 128

    SourceAgreements:
      description: The source agreements users must accept before using the source.
      type: object
      properties:
        AgreementsIdentifier:
          type: string
          minLength: 1
          maxLength: 128
        Agreements:
          $ref: '#/components/schemas/Agreements'
      required:
        - AgreementsIdentifier

    ServerSupportedVersions:
      description: The API Versions supported by the server.
      type: array
      uniqueItems: true
      items:
        type: string
        minLength: 1
        maxLength: 128
      minItems: 1

    PackageMatchFieldArray:
      description: The Package Match Fields not supported by the server.
      type: array
      uniqueItems: true
      items:
        $ref: '#/components/schemas/PackageMatchField'

    QueryParameterArray:
      description: The query parameter not supported by the server.
      type: array
      uniqueItems: true
      items:
        type: string
        enum:
          - Version
          - Channel
          - Market

    Installer:
      description: Installer. If InstallerType is msstore, MSStoreProductIdentifier is required. In other cases, InstallerUrl and InstallerSha256 are required.
      type: object
      properties:
        InstallerIdentifier:
          $ref: '#/components/schemas/InstallerIdentifier'
        InstallerSha256:
          $ref: '#/components/schemas/InstallerSha256'
        InstallerUrl:
          $ref: '#/components/schemas/Url'
        Architecture:
          $ref: '#/components/schemas/Architecture'
        InstallerLocale:
          $ref: '#/components/schemas/Locale'
        Platform:
          $ref: '#/components/schemas/Platform'
        MinimumOSVersion:
          $ref: '#/components/schemas/MinimumOSVersion'
        InstallerType:
          $ref: '#/components/schemas/InstallerType'
        Scope:
          $ref: '#/components/schemas/Scope'
        SignatureSha256:
          $ref: '#/components/schemas/SignatureSha256'
        InstallModes:
          $ref: '#/components/schemas/InstallModes'
        InstallerSwitches:
          $ref: '#/components/schemas/InstallerSwitches'
        InstallerSuccessCodes:
          $ref: '#/components/schemas/InstallerSuccessCodes'
        ExpectedReturnCodes:
          $ref: '#/components/schemas/ExpectedReturnCodes'
        UpgradeBehavior:
          $ref: '#/components/schemas/UpgradeBehavior'
        Commands:
          $ref: '#/components/schemas/Commands'
        Protocols:
          $ref: '#/components/schemas/Protocols'
        FileExtensions:
          $ref: '#/components/schemas/FileExtensions'
        Dependencies:
          $ref: '#/components/schemas/Dependencies'
        PackageFamilyName:
          $ref: '#/components/schemas/PackageFamilyName'
        ProductCode:
          $ref: '#/components/schemas/ProductCode'
        Capabilities:
          $ref: '#/components/schemas/Capabilities'
        RestrictedCapabilities:
          $ref: '#/components/schemas/RestrictedCapabilities'
        MSStoreProductIdentifier:
          $ref: '#/components/schemas/MSStoreProductIdentifier'
        InstallerAbortsTerminal:
          $ref: '#/components/schemas/InstallerAbortsTerminal'
        ReleaseDate:
          $ref: '#/components/schemas/ReleaseDate'
        InstallLocationRequired:
          $ref: '#/components/schemas/InstallLocationRequired'
        RequireExplicitUpgrade:
          $ref: '#/components/schemas/RequireExplicitUpgrade'
        ElevationRequirement:
          $ref: '#/components/schemas/ElevationRequirement'
        UnsupportedOSArchitectures:
          $ref: '#/components/schemas/UnsupportedOSArchitectures'
        AppsAndFeaturesEntries:
          $ref: '#/components/schemas/AppsAndFeaturesEntries'
        Markets:
          $ref: '#/components/schemas/Markets'
      required:
        - Architecture
        - InstallerType

    # Package Schema
    PackageSchema:
      description: Model containing Package Schema
      allOf:
        - type: object
          properties:
            PackageIdentifier:
                $ref: '#/components/schemas/PackageIdentifier'
      required:
        - PackageIdentifier

    # Version Schema
    VersionSchema:
      description: Model containing Version Schema
      allOf:
        - type: object
          properties:
            PackageVersion:
              $ref: '#/components/schemas/PackageVersion'
        - type: object
          properties:
            DefaultLocale:
              $ref: '#/components/schemas/DefaultLocale'
        - type: object
          properties:
            Channel:
              $ref: '#/components/schemas/Channel'
      required:
        - PackageVersion
        - DefaultLocale

    # Locale Schema
    LocaleSchema:
      description: Model containing Locale Schema
      allOf:
        - type: object
          properties:
            PackageLocale:
              $ref: '#/components/schemas/Locale'
        - type: object
          properties:
            Publisher:
              $ref: '#/components/schemas/Publisher'
        - type: object
          properties:
            PublisherUrl:
              description: The publisher home page
              $ref: '#/components/schemas/Url'
        - type: object
          properties:
            PublisherSupportUrl:
              description: The publisher support page
              $ref: '#/components/schemas/Url'
        - type: object
          properties:
            PrivacyUrl:
              description: The privacy page
              $ref: '#/components/schemas/Url'
        - type: object
          properties:
            Author:
              $ref: '#/components/schemas/Author'
        - type: object
          properties:
            PackageName:
              $ref: '#/components/schemas/PackageName'
        - type: object
          properties:
            PackageUrl:
              description: The package home page
              $ref: '#/components/schemas/Url'
        - type: object
          properties:
            License:
              $ref: '#/components/schemas/License'
        - type: object
          properties:
            LicenseUrl:
              description: The license page
              $ref: '#/components/schemas/Url'
        - type: object
          properties:
            Copyright:
              $ref: '#/components/schemas/Copyright'
        - type: object
          properties:
            CopyrightUrl:
              description: The package copyright page
              $ref: '#/components/schemas/Url'
        - type: object
          properties:
            ShortDescription:
              $ref: '#/components/schemas/ShortDescription'
        - type: object
          properties:
            Description:
              $ref: '#/components/schemas/Description'
        - type: object
          properties:
            Tags:
              $ref: '#/components/schemas/Tags'
        - type: object
          properties:
            ReleaseNotes:
              $ref: '#/components/schemas/ReleaseNotes'
        - type: object
          properties:
            ReleaseNotesUrl:
              description: The release notes page
              $ref: '#/components/schemas/Url'
        - type: object
          properties:
            Agreements:
              $ref: '#/components/schemas/Agreements'
      required:
        - PackageLocale

    DefaultLocale:
      description: Model containing DefaultLocale Schema
      allOf:
        - $ref: '#/components/schemas/LocaleSchema'
        - type: object
          properties:
            Moniker:
              description: The most common package term. Can only be used in default locale.
              $ref: '#/components/schemas/Tag'
      required:
        - Publisher
        - PackageName
        - License
        - ShortDescription

    OptionalLocale:
      description: Model containing OptionalLocale Schema
      allOf:
        - $ref: '#/components/schemas/LocaleSchema'

    # Installer Schema
    InstallerSchema:
      description: Model containing Installer Schema
      allOf:
        - $ref: '#/components/schemas/Installer'

    #Manifest Schema
    ManifestSchema:
      description: Model containing Manifest Schema.
      allOf:
        - $ref: '#/components/schemas/PackageSchema'
        - type: object
          properties:
            Versions:
              type: array
              items:
                allOf:
                  - $ref: '#/components/schemas/VersionSchema'
                  - type: object
                    properties:
                      Locales:
                        type: array
                        items:
                          $ref: '#/components/schemas/OptionalLocale'
                  - type: object
                    properties:
                      Installers:
                        type: array
                        items:
                          $ref: '#/components/schemas/InstallerSchema'

    # Manifest Search Version Response Schema
    ManifestSearchVersionSchema:
      description: Model containing version schema used by Manifest Search Response.
      allOf:
        - type: object
          properties:
            PackageVersion:
              $ref: '#/components/schemas/PackageVersion'
        - type: object
          properties:
            Channel:
              $ref: '#/components/schemas/Channel'
        - type: object
          properties:
            PackageFamilyNames:
              type: array
              items:
                $ref: '#/components/schemas/PackageFamilyName'
        - type: object
          properties:
            ProductCodes:
              type: array
              items:
                $ref: '#/components/schemas/ProductCode'
      required:
        - PackageVersion

    # Manifest Search Response Schema
    ManifestSearchResponseSchema:
      description: Model containing Manifest Search Response Schema.
      allOf:
        - $ref: '#/components/schemas/PackageSchema'
        - type: object
          properties:
            PackageName:
              $ref: '#/components/schemas/PackageName'
        - type: object
          properties:
            Publisher:
              $ref: '#/components/schemas/Publisher'
        - type: object
          properties:
            Versions:
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/ManifestSearchVersionSchema'

      required:
        - PackageName
        - Publisher

    #Server Schemas:
    InformationSchema:
      description: Server Information Schema.
      allOf:
        - type: object
          properties:
            SourceIdentifier:
              $ref: '#/components/schemas/SourceIdentifier'
        - type: object
          properties:
            SourceAgreements:
              $ref: '#/components/schemas/SourceAgreements'
        - type: object
          properties:
            ServerSupportedVersions:
              $ref: '#/components/schemas/ServerSupportedVersions'
        - type: object
          properties:
            UnsupportedPackageMatchFields:
              $ref: '#/components/schemas/PackageMatchFieldArray'
        - type: object
          properties:
            RequiredPackageMatchFields:
              $ref: '#/components/schemas/PackageMatchFieldArray'
        - type: object
          properties:
            UnsupportedQueryParameters:
              $ref: '#/components/schemas/QueryParameterArray'
        - type: object
          properties:
            RequiredQueryParameters:
              $ref: '#/components/schemas/QueryParameterArray'
      required:
        - SourceIdentifier
        - ServerSupportedVersions

    # Response Object Schemas
    ResponseObjectSchema:
      description: Base API Response Object
      properties:
        Data:
          oneOf:
            - type: object
            - type: array
        ContinuationToken:
          allOf:
            - $ref: '#/components/schemas/ContinuationToken'
      required:
        - Data

    PackageMultipleResponseSchema:
      description: Package Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/PackageSchema'

    PackageSingleResponseSchema:
      description: Package Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              $ref: '#/components/schemas/PackageSchema'

    VersionMultipleResponseSchema:
      description: Version Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/VersionSchema'

    VersionSingleResponseSchema:
      description: Version Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              $ref: '#/components/schemas/VersionSchema'

    LocaleMultipleResponseSchema:
      description: Locale Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/OptionalLocale'

    LocaleSingleResponseSchema:
      description: Locale Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              $ref: '#/components/schemas/OptionalLocale'

    InstallerMultipleResponseSchema:
      description: Installer Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/InstallerSchema'

    InstallerSingleResponseSchema:
      description: Installer Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              $ref: '#/components/schemas/InstallerSchema'

    ManifestMultipleResponseSchema:
      description: Manifest Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/ManifestSchema'

    ManifestSingleResponseSchema:
      description: Manifest Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              nullable: true
              allOf:
                - $ref: '#/components/schemas/ManifestSchema'
            UnsupportedQueryParameters:
              $ref: '#/components/schemas/QueryParameterArray'
            RequiredQueryParameters:
              $ref: '#/components/schemas/QueryParameterArray'

    InformationResponseSchema:
      description: Manifest Response Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              $ref: '#/components/schemas/InformationSchema'

    ManifestSearchResultSchema:
      description: Package Search Result Schema
      allOf:
        - $ref: '#/components/schemas/ResponseObjectSchema'
        - type: object
          properties:
            Data:
              type: array
              items:
                $ref: '#/components/schemas/ManifestSearchResponseSchema'
            RequiredPackageMatchFields:
              $ref: '#/components/schemas/PackageMatchFieldArray'
            UnsupportedPackageMatchFields:
              $ref: '#/components/schemas/PackageMatchFieldArray'

    # Manifest Search Request Match Type Schema
    MatchType:
      description: Model containing manifest request match type.
      type: string
      enum:
        - Exact
        - CaseInsensitive
        - StartsWith
        - Substring
        - Wildcard
        - Fuzzy
        - FuzzySubstring

    # Manifest Search Request Package Match Field Schema
    PackageMatchField:
      description: Model containing manifest request package match field schema.
      type: string
      enum:
        - PackageIdentifier
        - PackageName
        - Moniker
        - Command
        - Tag
        - PackageFamilyName
        - ProductCode
        - NormalizedPackageNameAndPublisher
        - Market

    KeyWord:
      description: Search Keyword.
      type: string
      maxLength: 255

    # Manifest Search Request Match Schema
    SearchRequestMatch:
      description: Model containing manifest request match schema.
      allOf:
        - type: object
          properties:
            KeyWord:
              $ref: '#/components/schemas/KeyWord'
            MatchType:
              $ref: '#/components/schemas/MatchType'

    # Manifest Search Request Package Match Filter Schema
    SearchRequestPackageMatchFilterSchema:
      description: Model containing manifest search request Package Match Filter schema.
      properties:
        PackageMatchField:
          $ref: '#/components/schemas/PackageMatchField'
        RequestMatch:
          $ref: '#/components/schemas/SearchRequestMatch'

    # Manifest Search Request Schema
    ManifestSearchRequestSchema:
      description: Model containing manifest search request schema.
      properties:
        MaximumResults:
          type: integer
        FetchAllManifests:
          type: boolean
        Query:
          $ref: '#/components/schemas/SearchRequestMatch'
        Inclusions:
          type: array
          items:
            $ref: '#/components/schemas/SearchRequestInclusionAndFilterSchema'
        Filters:
          type: array
          items:
            $ref: '#/components/schemas/SearchRequestInclusionAndFilterSchema'

    # Manifest Search Request Inclusion or Filters Schema
    SearchRequestInclusionAndFilterSchema:
      description: Model containing manifest search request Inclusion or filter schema.
      allOf:
        - $ref: '#/components/schemas/SearchRequestPackageMatchFilterSchema'

    # Misc Schemas
    Error:
      description: A schema for a generic error.
      properties:
        ErrorCode:
          type: integer
        ErrorMessage:
          type: string
      required:
        - ErrorCode
        - ErrorMessage

Parameters

  parameters:

    APIVersion:
      name: Version
      in: header
      description: This is the API Versions Parameter.
      required: false
      schema:
        $ref: '#/components/schemas/APIVersion'

    Windows-Package-Manager:
      name: Windows-Package-Manager
      in: header
      description: This is the Windows-Package-Manager custom header.
      required: false
      schema:
        $ref: '#/components/schemas/Windows-Package-Manager'

    ContinuationToken:
      name: ContinuationToken
      in: header
      description: This is a generic continuation token as a header parameter.
      required: false
      schema:
        $ref: '#/components/schemas/ContinuationToken'

    PackageIdentifier:
      name: PackageIdentifier
      in: path
      description: This is the Package Identifier Parameter.
      required: true
      schema:
        $ref: '#/components/schemas/PackageIdentifier'

    PackageVersion:
      name: PackageVersion
      in: path
      description: This is the Package Version Parameter.
      required: true
      schema:
        $ref: '#/components/schemas/PackageVersion'

    PackageLocale:
      name: PackageLocale
      in: path
      description: This is the Package Locale Parameter.
      required: true
      schema:
        $ref: '#/components/schemas/Locale'

    InstallerIdentifier:
      name: InstallerIdentifier
      in: path
      description: This is the Installer Key Parameter.
      required: true
      schema:
        $ref: '#/components/schemas/InstallerIdentifier'

    PackageVersionQuery:
      name: Version
      in: query
      description: This is the version to filter on.
      required: false
      schema:
        $ref: '#/components/schemas/PackageVersion'
      example: 1.0.0

    PackageChannelQuery:
      name: Channel
      in: query
      description: This is the channel to filter on.
      required: false
      schema:
        $ref: '#/components/schemas/Channel'
      example: beta

    PackageMarketQuery:
      name: Market
      in: query
      description: This is the market to filter on.
      required: false
      schema:
        $ref: '#/components/schemas/Market'
      example: US

    ContinuationTokenQuery:
      name: ContinuationToken
      in: query
      description: This is a generic continuation token as a query parameter.
      required: false
      schema:
        $ref: '#/components/schemas/ContinuationToken'
      example: beta
© Kimi Tsai all right reserved.            Updated : 2023-07-12 09:04:54

results matching ""

    No results matching ""

    results matching ""

      No results matching ""