{
  "components": {
    "schemas": {
      "AppRegistrationFlags": {
        "enum": [
          0,
          1,
          2,
          4,
          8,
          16,
          32,
          64,
          128,
          256,
          512,
          1024,
          2048,
          4096,
          8192,
          16384,
          32768
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "Automatic",
          "StopCurrentDeploymentOnNewVersion",
          "RunDeploymentsConcurrently",
          "DoNotUseSupersedence",
          "DoNotRemoveSupersededApps",
          "UninstallPreviousVersionOnSupersedence",
          "DoNotMoveToNextWaveAutomatically",
          "UploadMsixAsWin32",
          "AllowCompanyPortalAvailableUninstall",
          "DisableScriptAnalysis",
          "RequireScriptAnalysis",
          "DisableAutoRepair",
          "DisableLocaleFiltering",
          "DisableAppRename",
          "EnableRadarAutoUpdate",
          "UseGreaterThanOrEqualsToDetection"
        ]
      },
      "AppToClose": {
        "properties": {
          "appTitle": {
            "nullable": true,
            "type": "string"
          },
          "processName": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AzureTenantFlags": {
        "enum": [
          0,
          1,
          2,
          4,
          128,
          256,
          512,
          1024
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "AdminConsentGranted",
          "ServiceConfigAccessGranted",
          "ManagedDevicesCountAccessGranted",
          "DisableRobopackLogon",
          "CustomAppRegistration",
          "OperateInAdministrativeUnit",
          "AdministrativeUnitAccessGranted"
        ]
      },
      "ConfigurationTemplateFlags": {
        "enum": [
          0,
          1,
          2,
          4,
          8
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "Deleted",
          "Enabled",
          "ManuallyCreated",
          "Default"
        ]
      },
      "ConfigurationTemplateViewModel": {
        "properties": {
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "flags": {
            "$ref": "#/components/schemas/ConfigurationTemplateFlags"
          },
          "hasBannerImage": {
            "type": "boolean"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organizationId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "organizationName": {
            "nullable": true,
            "type": "string"
          },
          "scriptBannerImageFileId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "scriptSource": {
            "$ref": "#/components/schemas/InstallationScriptViewModel"
          },
          "scriptSourceId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "scriptTemplate": {
            "$ref": "#/components/schemas/PsAppDeployToolkitTemplateViewModel"
          },
          "shared": {
            "type": "boolean"
          },
          "updated": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "DeploymentTargetFlags": {
        "enum": [
          0,
          1,
          2,
          4,
          8,
          16,
          32,
          64,
          128,
          256
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "HideToastNotifications",
          "HideToastNotificationsExceptRestart",
          "DownloadContentForeground",
          "FilterExcludeDevices",
          "GroupExcludes",
          "CreateGroup",
          "RadarTargetGroup",
          "AutomaticallyCreated",
          "DisableAutoUpdate"
        ]
      },
      "DeploymentWaveFlags": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "RemoveAssignmentsOnCompletion",
          "ManualCompleteOnly"
        ]
      },
      "DeploymentWaveTenantStatusFlags": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "RefreshFailed"
        ]
      },
      "DeploymentWaveTenantStatusViewModel": {
        "nullable": true,
        "properties": {
          "applicableDeviceCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "applicablePercent": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "applicableUserCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "failed": {
            "type": "boolean"
          },
          "failureDeviceCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "failureUserCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "flags": {
            "$ref": "#/components/schemas/DeploymentWaveTenantStatusFlags"
          },
          "lastUpdated": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "notApplicableDeviceCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "notApplicableUserCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "notInstalledDeviceCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "notInstalledUserCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "pendingDeviceCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "pendingUserCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "successDeviceCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "successPercent": {
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "successUserCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "tenantDisplayName": {
            "nullable": true,
            "type": "string"
          },
          "tenantId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DeviceInstallStatusItemViewModel": {
        "properties": {
          "deviceId": {
            "nullable": true,
            "type": "string"
          },
          "deviceName": {
            "nullable": true,
            "type": "string"
          },
          "errorCode": {
            "nullable": true,
            "type": "string"
          },
          "errorDescription": {
            "nullable": true,
            "type": "string"
          },
          "installState": {
            "nullable": true,
            "type": "string"
          },
          "installStateDetail": {
            "format": "int64",
            "type": "integer"
          },
          "lastModifiedDateTime": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "platform": {
            "nullable": true,
            "type": "string"
          },
          "userId": {
            "nullable": true,
            "type": "string"
          },
          "userName": {
            "nullable": true,
            "type": "string"
          },
          "userPrincipalName": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "InstallationScriptType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "PSADT3",
          "PSADT4_1"
        ]
      },
      "InstallationScriptViewModel": {
        "nullable": true,
        "properties": {
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "organizationId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "organizationName": {
            "nullable": true,
            "type": "string"
          },
          "public": {
            "type": "boolean"
          },
          "scriptFileId": {
            "format": "uuid",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/InstallationScriptType"
          },
          "updated": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "InstallerScope": {
        "type": "integer"
      },
      "IntuneInfoViewModel": {
        "nullable": true,
        "properties": {
          "app": {
            "$ref": "#/components/schemas/RobopackAppInfo"
          },
          "detectionRules": {
            "items": {
              "$ref": "#/components/schemas/MemDetectionMethod"
            },
            "nullable": true,
            "type": "array"
          },
          "program": {
            "$ref": "#/components/schemas/RobopackProgramInfo"
          }
        },
        "required": [
          "app"
        ],
        "type": "object"
      },
      "MemDetectionMethod": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/MemDetectionMethodMemMsiDetectionMethod"
          },
          {
            "$ref": "#/components/schemas/MemDetectionMethodMemRegistryDetectionMethod"
          },
          {
            "$ref": "#/components/schemas/MemDetectionMethodMemFileDetectionMethod"
          },
          {
            "$ref": "#/components/schemas/MemDetectionMethodMemScriptDetectionMethod"
          },
          {
            "$ref": "#/components/schemas/MemDetectionMethodMemMsixDetectionMethod"
          }
        ],
        "discriminator": {
          "mapping": {
            "File": "#/components/schemas/MemDetectionMethodMemFileDetectionMethod",
            "MSI": "#/components/schemas/MemDetectionMethodMemMsiDetectionMethod",
            "MSIX": "#/components/schemas/MemDetectionMethodMemMsixDetectionMethod",
            "Registry": "#/components/schemas/MemDetectionMethodMemRegistryDetectionMethod",
            "Script": "#/components/schemas/MemDetectionMethodMemScriptDetectionMethod"
          },
          "propertyName": "Type"
        },
        "required": [
          "Type"
        ],
        "type": "object"
      },
      "MemDetectionMethodMemFileDetectionMethod": {
        "properties": {
          "Type": {
            "enum": [
              "File"
            ],
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "fileOrFolderName": {
            "nullable": true,
            "type": "string"
          },
          "is32Bit": {
            "type": "boolean"
          },
          "isFile": {
            "type": "boolean"
          },
          "operator": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "integer",
            "x-enum-descriptions": [
              null,
              null,
              null,
              null,
              null,
              null,
              null
            ],
            "x-enum-varnames": [
              "None",
              "Equals",
              "NotEquals",
              "GreaterThanOrEqualTo",
              "GreaterThan",
              "LessThanOrEqualTo",
              "LessThan"
            ]
          },
          "option": {
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "type": "integer",
            "x-enum-descriptions": [
              null,
              null,
              null,
              null,
              null
            ],
            "x-enum-varnames": [
              "Exists",
              "DateModified",
              "DateCreated",
              "VersionString",
              "Size"
            ]
          },
          "path": {
            "nullable": true,
            "type": "string"
          },
          "targetValue": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          }
        }
      },
      "MemDetectionMethodMemMsiDetectionMethod": {
        "properties": {
          "Type": {
            "enum": [
              "MSI"
            ],
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "is32Bit": {
            "type": "boolean"
          },
          "matchVersion": {
            "type": "boolean"
          },
          "operator": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "integer",
            "x-enum-descriptions": [
              null,
              null,
              null,
              null,
              null,
              null,
              null
            ],
            "x-enum-varnames": [
              "None",
              "Equals",
              "NotEquals",
              "GreaterThanOrEqualTo",
              "GreaterThan",
              "LessThanOrEqualTo",
              "LessThan"
            ]
          },
          "productCode": {
            "nullable": true,
            "type": "string"
          },
          "targetVersion": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          }
        }
      },
      "MemDetectionMethodMemMsixDetectionMethod": {
        "properties": {
          "Type": {
            "enum": [
              "MSIX"
            ],
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "machineScope": {
            "type": "boolean"
          },
          "minVersion": {
            "nullable": true,
            "type": "string"
          },
          "operator": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "integer",
            "x-enum-descriptions": [
              null,
              null,
              null,
              null,
              null,
              null,
              null
            ],
            "x-enum-varnames": [
              "None",
              "Equals",
              "NotEquals",
              "GreaterThanOrEqualTo",
              "GreaterThan",
              "LessThanOrEqualTo",
              "LessThan"
            ]
          },
          "productName": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          }
        }
      },
      "MemDetectionMethodMemRegistryDetectionMethod": {
        "properties": {
          "Type": {
            "enum": [
              "Registry"
            ],
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "is32Bit": {
            "type": "boolean"
          },
          "keyPath": {
            "nullable": true,
            "type": "string"
          },
          "operator": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6
            ],
            "type": "integer",
            "x-enum-descriptions": [
              null,
              null,
              null,
              null,
              null,
              null,
              null
            ],
            "x-enum-varnames": [
              "None",
              "Equals",
              "NotEquals",
              "GreaterThanOrEqualTo",
              "GreaterThan",
              "LessThanOrEqualTo",
              "LessThan"
            ]
          },
          "option": {
            "enum": [
              0,
              1,
              2,
              3,
              4
            ],
            "type": "integer",
            "x-enum-descriptions": [
              null,
              null,
              null,
              null,
              null
            ],
            "x-enum-varnames": [
              "Exists",
              "DoesNotExist",
              "StringComparison",
              "VersionComparison",
              "IntegerComparison"
            ]
          },
          "targetValue": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          },
          "valueName": {
            "nullable": true,
            "type": "string"
          }
        }
      },
      "MemDetectionMethodMemScriptDetectionMethod": {
        "properties": {
          "Type": {
            "enum": [
              "Script"
            ],
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "enforceSignatureCheck": {
            "type": "boolean"
          },
          "runAs32Bit": {
            "type": "boolean"
          },
          "scriptContent": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          }
        }
      },
      "MemDeviceRestartBehavior": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "ReturnCodes",
          "NoSpecificAction",
          "MayForceRestart",
          "ForceRestart"
        ]
      },
      "MemProcessorArchitecture": {
        "enum": [
          0,
          1,
          2,
          4
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "X86",
          "X64",
          "Arm64"
        ]
      },
      "MemProcessorArchitecture2": {
        "description": "Processor architecture for the package.",
        "enum": [
          0,
          1,
          2,
          4
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "X86",
          "X64",
          "Arm64"
        ]
      },
      "MemReturnCodeType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "Success",
          "Retry",
          "HardReboot",
          "SoftReboot",
          "Failed"
        ]
      },
      "PSAppDeployToolkitInstallationProgressViewModel": {
        "nullable": true,
        "properties": {
          "show": {
            "type": "boolean"
          },
          "statusMessage": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PSAppDeployToolkitInstallationPromptViewModel": {
        "nullable": true,
        "properties": {
          "buttonRightText": {
            "nullable": true,
            "type": "string"
          },
          "message": {
            "nullable": true,
            "type": "string"
          },
          "minimizeWindows": {
            "type": "boolean"
          },
          "noWait": {
            "type": "boolean"
          },
          "persistPrompt": {
            "type": "boolean"
          },
          "show": {
            "type": "boolean"
          },
          "title": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "PSAppDeployToolkitInstallationWelcomeViewModel": {
        "nullable": true,
        "properties": {
          "allowDefer": {
            "type": "boolean"
          },
          "appsToClose": {
            "items": {
              "$ref": "#/components/schemas/AppToClose"
            },
            "nullable": true,
            "type": "array"
          },
          "closeAppsCountdown": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "customText": {
            "nullable": true,
            "type": "string"
          },
          "deferDeadline": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "deferTimes": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "disableMinimizeWindows": {
            "nullable": true,
            "type": "boolean"
          },
          "disableTopMost": {
            "nullable": true,
            "type": "boolean"
          },
          "forceCloseAppsCountdown": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "persistPrompt": {
            "type": "boolean"
          },
          "show": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "PackageRepositorySource": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "Winget",
          "MicrosoftStore",
          "MicrosoftStoreWin32",
          "RobopackInternal"
        ]
      },
      "PackageSource": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "Upload",
          "SccmMigratorApp",
          "Repo",
          "UploadInternal",
          "ApiV1_Upload"
        ]
      },
      "PackageState": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "Pending",
          "Running",
          "Completed",
          "Canceled",
          "Error",
          "Deleted",
          "WaitingForContent",
          "Deprecated"
        ]
      },
      "PackageTargetType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "MSIX",
          "VHD",
          "MSI",
          "IntuneWin",
          "CIM",
          "VHDX",
          "AppV",
          "Unspecified"
        ]
      },
      "PsAppDeployToolkitTemplateFlags": {
        "enum": [
          0,
          1,
          2,
          4,
          8,
          16,
          32,
          64
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "RemoveDesktopShortcuts",
          "DisableClientInstallerLogs",
          "DisableCloseApps",
          "ForceUserInteractive",
          "OnlyShowWelcomeDialogForAppsToClose",
          "ShowWelcomeDialogForUninstall",
          "DoNotIncludeScriptEngine"
        ]
      },
      "PsAppDeployToolkitTemplateViewModel": {
        "nullable": true,
        "properties": {
          "companyName": {
            "nullable": true,
            "type": "string"
          },
          "flags": {
            "$ref": "#/components/schemas/PsAppDeployToolkitTemplateFlags"
          },
          "logFileDirectory": {
            "nullable": true,
            "type": "string"
          },
          "logFileDirectoryMsi": {
            "nullable": true,
            "type": "string"
          },
          "psadtInstallationCompletePrompt": {
            "$ref": "#/components/schemas/PSAppDeployToolkitInstallationPromptViewModel"
          },
          "psadtInstallationProgress": {
            "$ref": "#/components/schemas/PSAppDeployToolkitInstallationProgressViewModel"
          },
          "psadtInstallationWelcome": {
            "$ref": "#/components/schemas/PSAppDeployToolkitInstallationWelcomeViewModel"
          }
        },
        "type": "object"
      },
      "RadarAppFlags": {
        "enum": [
          0,
          1,
          2,
          4,
          8
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "IntuneManaged",
          "DiscoveredApp",
          "RobopackManaged",
          "ModernApp"
        ]
      },
      "ReposAppFlags": {
        "enum": [
          0,
          1,
          2,
          4,
          8,
          16,
          32,
          64,
          128,
          256,
          512
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "None",
          "IconFetched",
          "Source_Winget",
          "Source_MsStore",
          "Source_MsStoreWin32",
          "Showcased",
          "Verified",
          "Source_RobopackInternal",
          "NoAutoStore",
          "NoAutoWinget",
          "CreatedFromStoreSearch"
        ]
      },
      "RobopackAppInfo": {
        "properties": {
          "appVersion": {
            "nullable": true,
            "type": "string"
          },
          "categories": {
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "developer": {
            "nullable": true,
            "type": "string"
          },
          "informationUrl": {
            "nullable": true,
            "type": "string"
          },
          "isFeatured": {
            "type": "boolean"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "notes": {
            "nullable": true,
            "type": "string"
          },
          "owner": {
            "nullable": true,
            "type": "string"
          },
          "privacyUrl": {
            "nullable": true,
            "type": "string"
          },
          "publisher": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "RobopackProgramInfo": {
        "nullable": true,
        "properties": {
          "allowAvailableUninstall": {
            "nullable": true,
            "type": "boolean"
          },
          "diskSpaceRequired": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "installCommand": {
            "nullable": true,
            "type": "string"
          },
          "memoryRequired": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "minimumCpuCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "minimumCpuMhz": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "processorArchitectures": {
            "$ref": "#/components/schemas/MemProcessorArchitecture"
          },
          "restartBehavior": {
            "$ref": "#/components/schemas/MemDeviceRestartBehavior"
          },
          "returnCodes": {
            "items": {
              "$ref": "#/components/schemas/RobopackProgramReturnCode"
            },
            "nullable": true,
            "type": "array"
          },
          "uninstallCommand": {
            "nullable": true,
            "type": "string"
          },
          "userContext": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "RobopackProgramReturnCode": {
        "properties": {
          "code": {
            "format": "int32",
            "type": "integer"
          },
          "type": {
            "$ref": "#/components/schemas/MemReturnCodeType"
          }
        },
        "type": "object"
      },
      "UploadFileInfoViewModel": {
        "properties": {
          "fileName": {
            "description": "Name of file to be uploaded.",
            "type": "string"
          },
          "fileSize": {
            "description": "Size of file, in bytes, to be uploaded.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "fileName",
          "fileSize"
        ],
        "type": "object"
      },
      "UploadPackageContentFinalizeViewModel": {
        "properties": {
          "files": {
            "description": "Information on files that were uploaded and are now being finalized.",
            "items": {
              "$ref": "#/components/schemas/UploadFileInfoViewModel"
            },
            "type": "array"
          }
        },
        "required": [
          "files"
        ],
        "type": "object"
      },
      "UploadViewModel": {
        "properties": {
          "deploymentId": {
            "format": "uuid",
            "type": "string"
          },
          "intuneAppId": {
            "nullable": true,
            "type": "string"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "supersededIntuneAppIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tenantId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UserInstallStatusItemViewModel": {
        "properties": {
          "failedCount": {
            "format": "int64",
            "type": "integer"
          },
          "installedCount": {
            "format": "int64",
            "type": "integer"
          },
          "pendingInstallCount": {
            "format": "int64",
            "type": "integer"
          },
          "userId": {
            "nullable": true,
            "type": "string"
          },
          "userName": {
            "nullable": true,
            "type": "string"
          },
          "userPrincipalName": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1AppDetailsViewModel": {
        "properties": {
          "description": {
            "nullable": true,
            "type": "string"
          },
          "flags": {
            "$ref": "#/components/schemas/ReposAppFlags"
          },
          "headVersion": {
            "$ref": "#/components/schemas/V1AppVersionViewModel"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "identifier": {
            "type": "string"
          },
          "lastUpdated": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "logoData": {
            "format": "byte",
            "nullable": true,
            "type": "string"
          },
          "logoId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "machineScope": {
            "nullable": true,
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "publisherId": {
            "format": "uuid",
            "type": "string"
          },
          "publisherName": {
            "type": "string"
          },
          "storeApp": {
            "type": "boolean"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "userScope": {
            "nullable": true,
            "type": "boolean"
          },
          "verified": {
            "type": "boolean"
          },
          "version": {
            "nullable": true,
            "type": "string"
          },
          "versions": {
            "items": {
              "$ref": "#/components/schemas/V1AppVersionViewModel2"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "required": [
          "publisherName",
          "name",
          "identifier",
          "tags"
        ],
        "type": "object"
      },
      "V1AppVersionViewModel": {
        "nullable": true,
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "machineScope": {
            "type": "boolean"
          },
          "shortDescription": {
            "nullable": true,
            "type": "string"
          },
          "sourceRepository": {
            "$ref": "#/components/schemas/PackageRepositorySource"
          },
          "storeApp": {
            "type": "boolean"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string"
          },
          "userScope": {
            "type": "boolean"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "V1AppVersionViewModel2": {
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "machineScope": {
            "type": "boolean"
          },
          "shortDescription": {
            "nullable": true,
            "type": "string"
          },
          "sourceRepository": {
            "$ref": "#/components/schemas/PackageRepositorySource"
          },
          "storeApp": {
            "type": "boolean"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string"
          },
          "userScope": {
            "type": "boolean"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "V1AppViewModel": {
        "properties": {
          "description": {
            "nullable": true,
            "type": "string"
          },
          "flags": {
            "$ref": "#/components/schemas/ReposAppFlags"
          },
          "headVersion": {
            "$ref": "#/components/schemas/V1AppVersionViewModel"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "identifier": {
            "type": "string"
          },
          "lastUpdated": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "machineScope": {
            "nullable": true,
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "publisherId": {
            "format": "uuid",
            "type": "string"
          },
          "publisherName": {
            "type": "string"
          },
          "storeApp": {
            "type": "boolean"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "userScope": {
            "nullable": true,
            "type": "boolean"
          },
          "verified": {
            "type": "boolean"
          },
          "version": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "publisherName",
          "name",
          "identifier",
          "tags"
        ],
        "type": "object"
      },
      "V1DeploymentCurrentViewModel": {
        "properties": {
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "currentWave": {
            "$ref": "#/components/schemas/V1WaveViewModel"
          },
          "flowId": {
            "format": "uuid",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "packageId": {
            "format": "uuid",
            "type": "string"
          },
          "patchGroupId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "patchGroupName": {
            "nullable": true,
            "type": "string"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "updated": {
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1DeploymentTargetViewModel": {
        "properties": {
          "assignmentType": {
            "nullable": true,
            "type": "string"
          },
          "filterId": {
            "nullable": true,
            "type": "string"
          },
          "filterName": {
            "nullable": true,
            "type": "string"
          },
          "flags": {
            "$ref": "#/components/schemas/DeploymentTargetFlags"
          },
          "groupDisplayName": {
            "nullable": true,
            "type": "string"
          },
          "groupNameTemplate": {
            "nullable": true,
            "type": "string"
          },
          "groupObjectId": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "targetType": {
            "nullable": true,
            "type": "string"
          },
          "tenantDisplayName": {
            "nullable": true,
            "type": "string"
          },
          "tenantId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1DeploymentViewModel": {
        "nullable": true,
        "properties": {
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "flowId": {
            "format": "uuid",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "isActive": {
            "type": "boolean"
          },
          "packageId": {
            "format": "uuid",
            "type": "string"
          },
          "patchGroupId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "patchGroupName": {
            "nullable": true,
            "type": "string"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "updated": {
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1FlowAddDeploymentViewModel": {
        "properties": {
          "packageId": {
            "description": "ID of package to use for the new deployment.",
            "format": "uuid",
            "type": "string"
          },
          "startNow": {
            "description": "If the deployment should be started.",
            "type": "boolean"
          },
          "version": {
            "description": "Override version for deployment. If not specified, the version defined by the package will be used",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "packageId"
        ],
        "type": "object"
      },
      "V1FlowCreateViewModel": {
        "properties": {
          "appId": {
            "description": "ID of instant app to create flow for. Mutually exclusive with packageId.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "flags": {
            "$ref": "#/components/schemas/AppRegistrationFlags"
          },
          "name": {
            "description": "Name of the new flow. If not specified, the name of the Instant app or package will be used instead.",
            "nullable": true,
            "type": "string"
          },
          "packageId": {
            "description": "ID of package to create flow for. Mutually exclusive with appId.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "patchGroupId": {
            "description": "ID of patch group to add the new flow to.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/V1InstallerScope"
          },
          "supersedenceHistoryCount": {
            "description": "Number of superseded packages to be kept in Intune for the flow.",
            "format": "int32",
            "maximum": 8,
            "minimum": 0,
            "type": "integer"
          },
          "templateId": {
            "description": "ID of the script template to use for the flow.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1FlowDetailsViewModel": {
        "properties": {
          "appId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "appName": {
            "nullable": true,
            "type": "string"
          },
          "architecture": {
            "nullable": true,
            "type": "string"
          },
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "deploymentCount": {
            "format": "int32",
            "type": "integer"
          },
          "deployments": {
            "items": {
              "$ref": "#/components/schemas/V1DeploymentCurrentViewModel"
            },
            "nullable": true,
            "type": "array"
          },
          "flags": {
            "$ref": "#/components/schemas/AppRegistrationFlags"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "locale": {
            "nullable": true,
            "type": "string"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "organizationId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "patchGroupId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "patchGroupName": {
            "nullable": true,
            "type": "string"
          },
          "scope": {
            "nullable": true,
            "type": "string"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "supersedenceHistoryCount": {
            "format": "int32",
            "type": "integer"
          },
          "templateId": {
            "format": "uuid",
            "type": "string"
          },
          "templateName": {
            "nullable": true,
            "type": "string"
          },
          "updated": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1FlowViewModel": {
        "properties": {
          "appId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "appName": {
            "nullable": true,
            "type": "string"
          },
          "architecture": {
            "nullable": true,
            "type": "string"
          },
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "deploymentCount": {
            "format": "int32",
            "type": "integer"
          },
          "flags": {
            "$ref": "#/components/schemas/AppRegistrationFlags"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "locale": {
            "nullable": true,
            "type": "string"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "organizationId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "patchGroupId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "patchGroupName": {
            "nullable": true,
            "type": "string"
          },
          "scope": {
            "nullable": true,
            "type": "string"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "supersedenceHistoryCount": {
            "format": "int32",
            "type": "integer"
          },
          "templateId": {
            "format": "uuid",
            "type": "string"
          },
          "templateName": {
            "nullable": true,
            "type": "string"
          },
          "updated": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1InstallerScope": {
        "description": "Scope for the new flow",
        "enum": [
          1,
          2,
          4
        ],
        "type": "integer",
        "x-enum-descriptions": [
          null,
          null,
          null
        ],
        "x-enum-varnames": [
          "Machine",
          "User",
          "Any"
        ]
      },
      "V1PackageCreateViewModel": {
        "properties": {
          "architecture": {
            "$ref": "#/components/schemas/MemProcessorArchitecture2"
          },
          "detectionRules": {
            "description": "Detection rule(s) to use for detecting the installation of the package. Required if 'runAnalysis' is not enabled.",
            "items": {
              "$ref": "#/components/schemas/MemDetectionMethod"
            },
            "type": "array"
          },
          "installCommand": {
            "description": "Command used to run the installation of the package.",
            "nullable": true,
            "type": "string"
          },
          "logoData": {
            "description": "Logo for the package as BASE64-encoded data. Standard image formats are supported (PNG, JPEG, etc.)",
            "format": "byte",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the package to create.",
            "type": "string"
          },
          "publisher": {
            "description": "Publisher name for package.",
            "nullable": true,
            "type": "string"
          },
          "runAnalysis": {
            "description": "If Robopack should run an installation analysis of the package to verify the installation command and attempt to determine the uninstall command and detection rule.",
            "type": "boolean"
          },
          "scriptTemplateId": {
            "description": "ID of script template to use for creating the package.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "sourceType": {
            "description": "Type of source files for the package. One of 'zip', 'exe', 'msi'.",
            "nullable": true,
            "type": "string"
          },
          "uninstallCommand": {
            "description": "Command used to run the uninstallation of the package. Required if 'runAnalysis' is not enabled.",
            "nullable": true,
            "type": "string"
          },
          "userContext": {
            "description": "Set to true if the package installs in the user context, false for machine context.",
            "type": "boolean"
          },
          "version": {
            "description": "Version of package.",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "V1PackageDetailsViewModel": {
        "properties": {
          "appId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "configurationTemplateId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "downloadAvailable": {
            "type": "boolean"
          },
          "errorDetails": {
            "$ref": "#/components/schemas/V1PackageIssueViewModel"
          },
          "fileName": {
            "nullable": true,
            "type": "string"
          },
          "fullProductName": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "importInfo": {
            "$ref": "#/components/schemas/IntuneInfoViewModel"
          },
          "internalState": {
            "$ref": "#/components/schemas/PackageState"
          },
          "isCustom": {
            "type": "boolean"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/V1PackageIssueViewModel2"
            },
            "nullable": true,
            "type": "array"
          },
          "latestVersion": {
            "nullable": true,
            "type": "string"
          },
          "machineScope": {
            "type": "boolean"
          },
          "manufacturer": {
            "type": "string"
          },
          "newVersionAvailable": {
            "type": "boolean"
          },
          "productName": {
            "type": "string"
          },
          "productVersion": {
            "type": "string"
          },
          "prototypeId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "size": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "source": {
            "$ref": "#/components/schemas/PackageSource"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "targetType": {
            "$ref": "#/components/schemas/PackageTargetType"
          },
          "userScope": {
            "type": "boolean"
          }
        },
        "required": [
          "productName",
          "manufacturer",
          "productVersion"
        ],
        "type": "object"
      },
      "V1PackageDownloadFormat": {
        "default": 4,
        "type": "integer"
      },
      "V1PackageIssueViewModel": {
        "nullable": true,
        "properties": {
          "level": {
            "nullable": true,
            "type": "string"
          },
          "text": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1PackageIssueViewModel2": {
        "properties": {
          "level": {
            "nullable": true,
            "type": "string"
          },
          "text": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1PackageViewModel": {
        "properties": {
          "appId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "configurationTemplateId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "downloadAvailable": {
            "type": "boolean"
          },
          "fileName": {
            "nullable": true,
            "type": "string"
          },
          "fullProductName": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "importInfo": {
            "$ref": "#/components/schemas/IntuneInfoViewModel"
          },
          "internalState": {
            "$ref": "#/components/schemas/PackageState"
          },
          "isCustom": {
            "type": "boolean"
          },
          "latestVersion": {
            "nullable": true,
            "type": "string"
          },
          "machineScope": {
            "type": "boolean"
          },
          "manufacturer": {
            "type": "string"
          },
          "newVersionAvailable": {
            "type": "boolean"
          },
          "productName": {
            "type": "string"
          },
          "productVersion": {
            "type": "string"
          },
          "prototypeId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "size": {
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "source": {
            "$ref": "#/components/schemas/PackageSource"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "targetType": {
            "$ref": "#/components/schemas/PackageTargetType"
          },
          "userScope": {
            "type": "boolean"
          }
        },
        "required": [
          "productName",
          "manufacturer",
          "productVersion"
        ],
        "type": "object"
      },
      "V1RadarAppEntryViewModel": {
        "properties": {
          "deploymentId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "deviceCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "isModernApp": {
            "type": "boolean"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "publisher": {
            "nullable": true,
            "type": "string"
          },
          "robopackManaged": {
            "type": "boolean"
          },
          "tenantAppId": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "nullable": true,
            "type": "string"
          },
          "version": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1RadarAppViewModel": {
        "properties": {
          "appId": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "deviceCount": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "entries": {
            "items": {
              "$ref": "#/components/schemas/V1RadarAppEntryViewModel"
            },
            "nullable": true,
            "type": "array"
          },
          "flags": {
            "$ref": "#/components/schemas/RadarAppFlags"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "matched": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "robopackManaged": {
            "type": "boolean"
          },
          "type": {
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "name",
          "publisher"
        ],
        "type": "object"
      },
      "V1RadarDeviceViewModel": {
        "properties": {
          "deviceId": {
            "nullable": true,
            "type": "string"
          },
          "deviceName": {
            "nullable": true,
            "type": "string"
          },
          "radarEntryId": {
            "nullable": true,
            "type": "string"
          },
          "userEmail": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1TaskViewModel": {
        "properties": {
          "completedAt": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "progress": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "startedAt": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "supportsProgress": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "V1TenantViewModel": {
        "properties": {
          "adminConsentGranted": {
            "type": "boolean"
          },
          "backgroundColor": {
            "nullable": true,
            "type": "string"
          },
          "created": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "defaultDomain": {
            "nullable": true,
            "type": "string"
          },
          "displayName": {
            "nullable": true,
            "type": "string"
          },
          "flags": {
            "$ref": "#/components/schemas/AzureTenantFlags"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "V1WaveDetailsViewModel": {
        "properties": {
          "completedAt": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "delayAfterCompletionHours": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "deployment": {
            "$ref": "#/components/schemas/V1DeploymentViewModel"
          },
          "deploymentId": {
            "format": "uuid",
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "flags": {
            "$ref": "#/components/schemas/DeploymentWaveFlags"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "maximumRuntimeHours": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "minimumAttemptRatePercent": {
            "format": "int32",
            "type": "integer"
          },
          "minimumSuccessRatePercent": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "order": {
            "format": "int32",
            "type": "integer"
          },
          "startedAt": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/DeploymentWaveTenantStatusViewModel"
          },
          "targets": {
            "items": {
              "$ref": "#/components/schemas/V1DeploymentTargetViewModel"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "V1WaveLiveDataViewModel": {
        "properties": {
          "tenants": {
            "items": {
              "$ref": "#/components/schemas/V1WaveTenantLiveDataViewModel"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "V1WaveTenantLiveDataViewModel": {
        "properties": {
          "deviceInstalls": {
            "items": {
              "$ref": "#/components/schemas/DeviceInstallStatusItemViewModel"
            },
            "type": "array"
          },
          "tenantDisplayName": {
            "nullable": true,
            "type": "string"
          },
          "tenantId": {
            "format": "uuid",
            "type": "string"
          },
          "userInstalls": {
            "items": {
              "$ref": "#/components/schemas/UserInstallStatusItemViewModel"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "V1WaveViewModel": {
        "nullable": true,
        "properties": {
          "completedAt": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created": {
            "format": "date-time",
            "type": "string"
          },
          "delayAfterCompletionHours": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "deploymentId": {
            "format": "uuid",
            "type": "string"
          },
          "description": {
            "nullable": true,
            "type": "string"
          },
          "flags": {
            "$ref": "#/components/schemas/DeploymentWaveFlags"
          },
          "id": {
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "maximumRuntimeHours": {
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "minimumAttemptRatePercent": {
            "format": "int32",
            "type": "integer"
          },
          "minimumSuccessRatePercent": {
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "nullable": true,
            "type": "string"
          },
          "order": {
            "format": "int32",
            "type": "integer"
          },
          "startedAt": {
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/DeploymentWaveTenantStatusViewModel"
          },
          "targets": {
            "items": {
              "$ref": "#/components/schemas/V1DeploymentTargetViewModel"
            },
            "type": "array"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "API key": {
        "description": "Robopack API key generated for account",
        "in": "header",
        "name": "X-API-Key",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "contact": {
      "email": "support@robopack.com",
      "name": "Robopack Support"
    },
    "description": "API for interacting with Robopack.",
    "termsOfService": "https://robopack.com/privacy/",
    "title": "Robopack public API",
    "version": "v1"
  },
  "openapi": "3.0.1",
  "paths": {
    "/v1/app": {
      "get": {
        "description": "Search the Robopack Instant app library. Supports free-text search, filtering properties and paging.",
        "parameters": [
          {
            "description": "Text to search through Instant apps for.",
            "in": "query",
            "name": "Search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If set, indicates that only showcased apps should be returned.",
            "in": "query",
            "name": "Showcased",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "If set, indicates that only verified apps should be returned.",
            "in": "query",
            "name": "Verified",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Indicates if the Logo property in the results should be populated with binary logo image data",
            "in": "query",
            "name": "Logo",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Name of property to sort query by.",
            "in": "query",
            "name": "SortBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If the sort order should be descending.",
            "in": "query",
            "name": "SortDesc",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Index of page of results to return.",
            "in": "query",
            "name": "Page",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "If paging should be disabled and all results returned.",
            "in": "query",
            "name": "DisablePaging",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "The number of results returned per page. Default: 50, max: 1000.",
            "in": "query",
            "name": "ItemsPerPage",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1AppViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Search Instant apps.",
        "tags": [
          "Instant apps"
        ]
      }
    },
    "/v1/app/import/{appId}": {
      "post": {
        "description": "Imports a specific Instant app into the account as a new package. Returns the ID of the new package. Optionally an ID of the target version to import can be specified, otherwise the latest of the app is imported. The process to import the package may take a while and the state of the created package should be checked before it is used.",
        "parameters": [
          {
            "description": "ID of Instant app to import",
            "in": "path",
            "name": "appId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Scope for the app.",
            "in": "query",
            "name": "Scope",
            "schema": {
              "$ref": "#/components/schemas/InstallerScope"
            }
          },
          {
            "description": "ID of script template to use for creating the package.",
            "in": "query",
            "name": "ScriptTemplateId",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "String with version number of app to import.",
            "in": "query",
            "name": "Version",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ID of the specific Instant app version to import.",
            "in": "query",
            "name": "VersionId",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "format": "uuid",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Import an Instant app into the account as a package.",
        "tags": [
          "Instant apps"
        ]
      }
    },
    "/v1/app/showcase": {
      "get": {
        "parameters": [
          {
            "description": "Text to search through Instant apps for.",
            "in": "query",
            "name": "Search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If set, indicates that only showcased apps should be returned.",
            "in": "query",
            "name": "Showcased",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "If set, indicates that only verified apps should be returned.",
            "in": "query",
            "name": "Verified",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Indicates if the Logo property in the results should be populated with binary logo image data",
            "in": "query",
            "name": "Logo",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Name of property to sort query by.",
            "in": "query",
            "name": "SortBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If the sort order should be descending.",
            "in": "query",
            "name": "SortDesc",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Index of page of results to return.",
            "in": "query",
            "name": "Page",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "If paging should be disabled and all results returned.",
            "in": "query",
            "name": "DisablePaging",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "The number of results returned per page. Default: 50, max: 1000.",
            "in": "query",
            "name": "ItemsPerPage",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1AppViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get list of showcased Instant apps.",
        "tags": [
          "Instant apps"
        ]
      }
    },
    "/v1/app/verified": {
      "get": {
        "parameters": [
          {
            "description": "Text to search through Instant apps for.",
            "in": "query",
            "name": "Search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If set, indicates that only showcased apps should be returned.",
            "in": "query",
            "name": "Showcased",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "If set, indicates that only verified apps should be returned.",
            "in": "query",
            "name": "Verified",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Indicates if the Logo property in the results should be populated with binary logo image data",
            "in": "query",
            "name": "Logo",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Name of property to sort query by.",
            "in": "query",
            "name": "SortBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If the sort order should be descending.",
            "in": "query",
            "name": "SortDesc",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Index of page of results to return.",
            "in": "query",
            "name": "Page",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "If paging should be disabled and all results returned.",
            "in": "query",
            "name": "DisablePaging",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "The number of results returned per page. Default: 50, max: 1000.",
            "in": "query",
            "name": "ItemsPerPage",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1AppViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get list of verified Instant apps.",
        "tags": [
          "Instant apps"
        ]
      }
    },
    "/v1/app/{id}": {
      "get": {
        "description": "Gets detailed information for a single Instant app.",
        "parameters": [
          {
            "description": "ID of Instant app",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1AppDetailsViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get Instant app details.",
        "tags": [
          "Instant apps"
        ]
      }
    },
    "/v1/flow": {
      "get": {
        "description": "Gets a list of deployment flows in the account. Supports searching, filtering properties and paging.",
        "parameters": [
          {
            "description": "Text to search flows for.",
            "in": "query",
            "name": "Search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If deleted flows should also be returned.",
            "in": "query",
            "name": "ShowDeleted",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Specify an ID of an Instant app to only return flows for that app.",
            "in": "query",
            "name": "AppId",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Name of property to sort query by.",
            "in": "query",
            "name": "SortBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If the sort order should be descending.",
            "in": "query",
            "name": "SortDesc",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Index of page of results to return.",
            "in": "query",
            "name": "Page",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "If paging should be disabled and all results returned.",
            "in": "query",
            "name": "DisablePaging",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "The number of results returned per page. Default: 50, max: 1000.",
            "in": "query",
            "name": "ItemsPerPage",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Optional list of tenant IDs to filter the returned flows by.",
            "in": "query",
            "name": "tenants[]",
            "schema": {
              "default": null,
              "items": {
                "format": "uuid",
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1FlowViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List deployment flows.",
        "tags": [
          "Flow"
        ]
      }
    },
    "/v1/flow/create": {
      "post": {
        "description": "Creates a new deployment flow. If a patch group ID is specified, the flow will inherit the waves and settings specified in the patch group. Otherwise the created flow will be empty. Returns the ID of the created flow.",
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/V1FlowCreateViewModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1FlowCreateViewModel"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/V1FlowCreateViewModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/V1FlowCreateViewModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "format": "uuid",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Create deployment flow.",
        "tags": [
          "Flow"
        ]
      }
    },
    "/v1/flow/deployment/{id}": {
      "delete": {
        "description": "Deletes a deployment from Robopack. Optionally deletes the app from Intune as well.",
        "parameters": [
          {
            "description": "ID of target deployment.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "If set, will delete the app from any Intune tenants, otherwise it will only be removed from Robopack but left in Intune.",
            "in": "query",
            "name": "deleteFromIntune",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Delete deployment.",
        "tags": [
          "Deployment"
        ]
      },
      "get": {
        "description": "Gets detailed information for a single deployment.",
        "parameters": [
          {
            "description": "ID of target deployment.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigurationTemplateViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get deployment details.",
        "tags": [
          "Deployment"
        ]
      }
    },
    "/v1/flow/deployment/{id}/refresh": {
      "post": {
        "description": "Refreshes the status of a deployment, updating the waves depending on the current state of deployment in Intune.",
        "parameters": [
          {
            "description": "ID of target deployment.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Refresh deployment status.",
        "tags": [
          "Deployment"
        ]
      }
    },
    "/v1/flow/deployment/{id}/skip-wave": {
      "post": {
        "description": "Jumps to the next wave in the deployment, regardless of the progress of the current wave.",
        "parameters": [
          {
            "description": "ID of target deployment.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Skip to next deployment wave.",
        "tags": [
          "Deployment"
        ]
      }
    },
    "/v1/flow/deployment/{id}/start": {
      "post": {
        "description": "Starts a deployment. The process to upload the app to Intune runs in the background and it is necessary to check the status of the deployment to see when this operation is complete.",
        "parameters": [
          {
            "description": "ID of target deployment.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Start deployment.",
        "tags": [
          "Deployment"
        ]
      }
    },
    "/v1/flow/deployment/{id}/stop": {
      "post": {
        "description": "Stops the processing of a deployment. This does not stop Intune from deploying the app based on the assignments already created by Robopack, but it prevents Robopack from moving to the next wave.",
        "parameters": [
          {
            "description": "ID of target deployment.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Stop deployment.",
        "tags": [
          "Deployment"
        ]
      }
    },
    "/v1/flow/deployment/{id}/update-content": {
      "post": {
        "description": "Starts a task to update the app content for the deployment. The task runs in the background and regenerates the package and updates the content in Intune for any Intune tenants in the deployment. It is necessary to check the status of the deployment to see when this operation is complete.",
        "parameters": [
          {
            "description": "ID of target deployment.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Update app content.",
        "tags": [
          "Deployment"
        ]
      }
    },
    "/v1/flow/wave/{id}": {
      "get": {
        "description": "Gets detailed information on a single deployment wave.",
        "parameters": [
          {
            "description": "ID of target deployment wave.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1WaveDetailsViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Gets details for a deployment wave.",
        "tags": [
          "Wave"
        ]
      }
    },
    "/v1/flow/wave/{id}/live": {
      "get": {
        "description": "Gets live data from Intune for a specific deployment wave.",
        "parameters": [
          {
            "description": "ID of target deployment wave.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1WaveLiveDataViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Gets live deployment data for a wave.",
        "tags": [
          "Wave"
        ]
      }
    },
    "/v1/flow/{id}": {
      "delete": {
        "description": "Deletes a deployment flow from Robopack. Optionally deletes the app from Intune as well.",
        "parameters": [
          {
            "description": "ID of deployment flow to delete.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "If set, will delete the app from any Intune tenants, otherwise the flow will only be removed from Robopack.",
            "in": "query",
            "name": "deleteFromIntune",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Delete deployment flow.",
        "tags": [
          "Flow"
        ]
      },
      "get": {
        "description": "Gets detailed information for a single deployment flow.",
        "parameters": [
          {
            "description": "ID of target deployment flow.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1FlowDetailsViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "View deployment flow details.",
        "tags": [
          "Flow"
        ]
      }
    },
    "/v1/flow/{id}/add-deployment": {
      "post": {
        "description": "Adds a new deployment to an existing flow using a specific package. Returns the ID of the created deployment. Deployment may optionally be started after creation if the 'startNow' property is set.",
        "parameters": [
          {
            "description": "ID of target deployment flow.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/V1FlowAddDeploymentViewModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1FlowAddDeploymentViewModel"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/V1FlowAddDeploymentViewModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/V1FlowAddDeploymentViewModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "format": "uuid",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Add deployment to flow.",
        "tags": [
          "Flow"
        ]
      }
    },
    "/v1/package": {
      "get": {
        "description": "Gets a list of packages. Supports searching, filtering properties and paging.",
        "parameters": [
          {
            "description": "Text to search packages for.",
            "in": "query",
            "name": "Search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Specify an ID of an Instant app to only return packages for that app.",
            "in": "query",
            "name": "AppId",
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Name of property to sort query by.",
            "in": "query",
            "name": "SortBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If the sort order should be descending.",
            "in": "query",
            "name": "SortDesc",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Index of page of results to return.",
            "in": "query",
            "name": "Page",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "If paging should be disabled and all results returned.",
            "in": "query",
            "name": "DisablePaging",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "The number of results returned per page. Default: 50, max: 1000.",
            "in": "query",
            "name": "ItemsPerPage",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1PackageViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List packages.",
        "tags": [
          "Package"
        ]
      }
    },
    "/v1/package/content/{id}": {
      "post": {
        "description": "Uploads an indexed chunk of data for package content. The body of the request should contain the binary data of the chunk being uploaded.",
        "parameters": [
          {
            "description": "ID of the package the content is being uploaded for.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Index of the file being uploaded.",
            "in": "query",
            "name": "index",
            "required": true,
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Size of the chunk being uploaded.",
            "in": "query",
            "name": "size",
            "required": true,
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "Offset in file to where the chunk starts.",
            "in": "query",
            "name": "offset",
            "schema": {
              "default": 0,
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Index of the chunk in the file being uploaded.",
            "in": "query",
            "name": "chunk",
            "schema": {
              "default": 0,
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Upload content chunk.",
        "tags": [
          "Package content"
        ]
      }
    },
    "/v1/package/content/{id}/finalize": {
      "post": {
        "description": "Finalize a content upload after all chunks have been uploaded. Must contain a list of information on the files that were uploaded.",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UploadPackageContentFinalizeViewModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadPackageContentFinalizeViewModel"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UploadPackageContentFinalizeViewModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadPackageContentFinalizeViewModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Finalize content upload.",
        "tags": [
          "Package content"
        ]
      }
    },
    "/v1/package/create": {
      "post": {
        "description": "Create a new custom package. Returns object representing the new package. After sending this request the content for the package must be uploaded separately using the /v1/package/content/{id} endpoint.",
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/V1PackageCreateViewModel"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1PackageCreateViewModel"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/V1PackageCreateViewModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/V1PackageCreateViewModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1PackageViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Create package.",
        "tags": [
          "Package"
        ]
      }
    },
    "/v1/package/{id}": {
      "get": {
        "description": "Gets detailed information for a single package.",
        "parameters": [
          {
            "description": "ID of target package.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1PackageDetailsViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Gets package details.",
        "tags": [
          "Package"
        ]
      }
    },
    "/v1/package/{id}/documentation/pdf": {
      "get": {
        "description": "Downloads a PDF file containing App Documentation for a package.",
        "parameters": [
          {
            "description": "ID of package to download documentation for.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "byte",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Download package PDF documentation.",
        "tags": [
          "Package"
        ]
      }
    },
    "/v1/package/{id}/download": {
      "get": {
        "description": "Downloads a package in a specified format.",
        "parameters": [
          {
            "description": "ID of package to download.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "The format to download the package as. Not all packages support all formats.",
            "in": "query",
            "name": "format",
            "schema": {
              "$ref": "#/components/schemas/V1PackageDownloadFormat"
            }
          },
          {
            "description": "If the package should not be wrapped in an installation script.",
            "in": "query",
            "name": "noScriptWrap",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "ID of script template to use for wrapping the package. If not specified, will use the default for the package.",
            "in": "query",
            "name": "templateId",
            "schema": {
              "default": null,
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "format": "byte",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Download package.",
        "tags": [
          "Package"
        ]
      }
    },
    "/v1/template": {
      "get": {
        "description": "Returns a list of script templates, both custom and standard, that can be used for wrapping packages.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ConfigurationTemplateViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List available script templates.",
        "tags": [
          "Script template"
        ]
      }
    },
    "/v1/template/{id}": {
      "get": {
        "description": "Gets detailed information for a single script template.",
        "parameters": [
          {
            "description": "ID of target script template.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigurationTemplateViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get script template details.",
        "tags": [
          "Script template"
        ]
      }
    },
    "/v1/template/{id}/banner": {
      "get": {
        "description": "Gets detailed information for a single script template.",
        "parameters": [
          {
            "description": "ID of target script template.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/png": {
                "schema": {
                  "format": "byte",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get logo/banner image for script template.",
        "tags": [
          "Script template"
        ]
      }
    },
    "/v1/template/{id}/logo": {
      "get": {
        "description": "Gets detailed information for a single script template.",
        "parameters": [
          {
            "description": "ID of target script template.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/png": {
                "schema": {
                  "format": "byte",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get logo/banner image for script template.",
        "tags": [
          "Script template"
        ]
      }
    },
    "/v1/tenant": {
      "get": {
        "description": "Gets a list of Intune tenants in the account.",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1TenantViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List tenants.",
        "tags": [
          "Tenant"
        ]
      }
    },
    "/v1/tenant/upload/{uploadId}": {
      "get": {
        "description": "Gets an object an Intune upload task.",
        "parameters": [
          {
            "description": "ID of target upload task.",
            "in": "path",
            "name": "uploadId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1TaskViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get status for Intune upload task.",
        "tags": [
          "Tenant"
        ]
      }
    },
    "/v1/tenant/{id}": {
      "get": {
        "description": "Gets detailed information for a single Intune tenant.",
        "parameters": [
          {
            "description": "ID of target tenant.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1TenantViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get tenant details.",
        "tags": [
          "Tenant"
        ]
      }
    },
    "/v1/tenant/{id}/upload": {
      "post": {
        "description": "Uploads a specific package to an Intune tenant. This is a manual upload and will not be kept up-to-date by Robopack. Use the /v1/flow endpoints to set up a patch flow that is automatically kept up-to-date in Intune. Returns an object representing the task that will upload the package to Intune.",
        "parameters": [
          {
            "description": "ID of the Intune tenant.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "ID of the package to upload.",
            "in": "query",
            "name": "packageId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "[only applies to MSIX packages] Indicates if the package should be wrapped in an installation script and created as a Win32 app in Intune rather than a LoB (line-of-business) app.",
            "in": "query",
            "name": "uploadMsixAsWin32",
            "schema": {
              "default": true,
              "type": "boolean"
            }
          },
          {
            "description": "If specified, the request will not complete until the package has been fully uploaded to Intune.",
            "in": "query",
            "name": "wait",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1TaskViewModel"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Upload package to tenant.",
        "tags": [
          "Tenant"
        ]
      }
    },
    "/v1/tenant/{tenantId}/radar": {
      "get": {
        "description": "Gets a list of all apps discovered by Radar in an Intune tenant.",
        "parameters": [
          {
            "description": "ID of target Intune tenant.",
            "in": "path",
            "name": "tenantId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Search term",
            "in": "query",
            "name": "Search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Indicates if only matched or unmatched Radar apps should be returned.",
            "in": "query",
            "name": "Matched",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "If apps already managed by Robopack should be included.",
            "in": "query",
            "name": "IncludeManaged",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "If modern apps (MSIX / Microsoft Store) should be included.",
            "in": "query",
            "name": "IncludeModernApps",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Name of property to sort query by.",
            "in": "query",
            "name": "SortBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "If the sort order should be descending.",
            "in": "query",
            "name": "SortDesc",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Index of page of results to return.",
            "in": "query",
            "name": "Page",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "If paging should be disabled and all results returned.",
            "in": "query",
            "name": "DisablePaging",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "The number of results returned per page. Default: 50, max: 1000.",
            "in": "query",
            "name": "ItemsPerPage",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1RadarAppViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Gets Radar apps.",
        "tags": [
          "Radar"
        ]
      }
    },
    "/v1/tenant/{tenantId}/radar/entry/{entryId}/devices": {
      "get": {
        "description": "Gets a list of all devices in the Intune tenant that has a specific version of a Radar app installed.",
        "parameters": [
          {
            "description": "ID of target Intune tenant.",
            "in": "path",
            "name": "tenantId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "ID of target Radar app version.",
            "in": "path",
            "name": "entryId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1RadarDeviceViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Gets Radar devices for entry.",
        "tags": [
          "Radar"
        ]
      }
    },
    "/v1/tenant/{tenantId}/radar/{appId}/devices": {
      "get": {
        "description": "Gets a list of all devices in the Intune tenant that have the specified Radar app installed.",
        "parameters": [
          {
            "description": "ID of target Intune tenant.",
            "in": "path",
            "name": "tenantId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "ID of target Radar app.",
            "in": "path",
            "name": "appId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/V1RadarDeviceViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Gets Radar devices by app.",
        "tags": [
          "Radar"
        ]
      }
    },
    "/v1/tenant/{tenantId}/uploads": {
      "get": {
        "description": "Gets a list of all apps created in Intune by Robopack through patch flows.",
        "parameters": [
          {
            "description": "ID of target Intune tenant.",
            "in": "path",
            "name": "tenantId",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "If specified, only returns uploads performed after this time.",
            "in": "query",
            "name": "fromDate",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "If specified, only returns uploads performed before this time.",
            "in": "query",
            "name": "toDate",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Only return uploads that have been superseded.",
            "in": "query",
            "name": "onlySuperseded",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/UploadViewModel"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Gets uploads to Intune from Robopack.",
        "tags": [
          "Tenant"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "https://api.robopack.com/"
    }
  ],
  "tags": [
    {
      "name": "Instant apps"
    },
    {
      "name": "Script template"
    },
    {
      "name": "Deployment"
    },
    {
      "name": "Flow"
    },
    {
      "name": "Package content"
    },
    {
      "name": "Package"
    },
    {
      "name": "Tenant"
    },
    {
      "name": "Radar"
    },
    {
      "name": "Wave"
    }
  ]
}
