{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false,
  "definitions": {
    "imunify.analyst.v1.AnalystCleanupAllowed": {
      "additionalProperties": false,
      "properties": {
        "is_allowed": {
          "type": "boolean"
        }
      },
      "required": [
        "is_allowed"
      ],
      "type": "object"
    },
    "imunify.core.rpc.v1.Messages": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "$ref": "#/definitions/imunify.core.rpc.v1.StringList"
        }
      ]
    },
    "imunify.core.rpc.v1.StringList": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "imunify.license.v1.Eula": {
      "additionalProperties": false,
      "properties": {
        "message": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "updated": {
          "type": "string"
        }
      },
      "required": [
        "message",
        "text",
        "updated"
      ],
      "type": "object"
    },
    "imunify.license.v1.FullLicense": {
      "additionalProperties": false,
      "properties": {
        "demo": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        },
        "eligible_for_imunify_patch": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        },
        "expiration": {
          "description": "Legacy license expiration accepts any JSON value in AgentResponseData."
        },
        "id": {
          "type": "string"
        },
        "ip_license": {
          "type": "boolean"
        },
        "license_type": {
          "anyOf": [
            {
              "enum": [
                "imunifyAV",
                "imunifyAVPlus",
                "imunify360Trial",
                "imunify360"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "pricing": {
          "$ref": "#/definitions/imunify.license.v1.LicensePricing"
        },
        "redirect_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "status": {
          "type": "boolean"
        },
        "upgrade_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "upgrade_url_360": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "user_count": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "user_limit": {
          "type": "number"
        }
      },
      "required": [
        "eligible_for_imunify_patch",
        "id",
        "license_type",
        "message",
        "status",
        "upgrade_url",
        "upgrade_url_360",
        "user_count",
        "user_limit"
      ],
      "type": "object"
    },
    "imunify.license.v1.License": {
      "anyOf": [
        {
          "$ref": "#/definitions/imunify.license.v1.FullLicense"
        },
        {
          "$ref": "#/definitions/imunify.license.v1.Unlicensed"
        },
        {
          "$ref": "#/definitions/imunify.license.v1.UserLicense"
        }
      ]
    },
    "imunify.license.v1.LicensePrice": {
      "additionalProperties": false,
      "properties": {
        "bulk": {
          "type": "string"
        },
        "standard": {
          "type": "string"
        }
      },
      "required": [
        "standard"
      ],
      "type": "object"
    },
    "imunify.license.v1.LicensePricing": {
      "additionalProperties": false,
      "properties": {
        "im_360_1": {
          "$ref": "#/definitions/imunify.license.v1.LicensePrice"
        },
        "im_360_250": {
          "$ref": "#/definitions/imunify.license.v1.LicensePrice"
        },
        "im_360_30": {
          "$ref": "#/definitions/imunify.license.v1.LicensePrice"
        },
        "im_360_unlimited": {
          "$ref": "#/definitions/imunify.license.v1.LicensePrice"
        },
        "im_av": {
          "$ref": "#/definitions/imunify.license.v1.LicensePrice"
        }
      },
      "type": "object"
    },
    "imunify.license.v1.Unlicensed": {
      "additionalProperties": false,
      "properties": {
        "eligible_for_imunify_patch": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        },
        "expiration": {
          "description": "Legacy license expiration accepts any JSON value in AgentResponseData."
        },
        "redirect_url": {
          "type": "null"
        },
        "status": {
          "const": false,
          "type": "boolean"
        },
        "upgrade_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "upgrade_url_360": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "eligible_for_imunify_patch",
        "redirect_url",
        "status",
        "upgrade_url",
        "upgrade_url_360"
      ],
      "type": "object"
    },
    "imunify.license.v1.UserLicense": {
      "additionalProperties": false,
      "properties": {
        "eligible_for_imunify_patch": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        },
        "expiration": {
          "description": "Legacy license expiration accepts any JSON value in AgentResponseData."
        },
        "license_type": {
          "anyOf": [
            {
              "enum": [
                "imunifyAV",
                "imunifyAVPlus",
                "imunify360Trial",
                "imunify360"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "status": {
          "type": "boolean"
        }
      },
      "required": [
        "eligible_for_imunify_patch",
        "license_type",
        "status"
      ],
      "type": "object"
    }
  },
  "properties": {
    "data": {
      "additionalProperties": false,
      "properties": {
        "eula": {
          "anyOf": [
            {
              "$ref": "#/definitions/imunify.license.v1.Eula"
            },
            {
              "type": "null"
            }
          ]
        },
        "items": {
          "$ref": "#/definitions/imunify.analyst.v1.AnalystCleanupAllowed"
        },
        "license": {
          "$ref": "#/definitions/imunify.license.v1.License"
        },
        "strategy": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "warnings": {
          "$ref": "#/definitions/imunify.core.rpc.v1.StringList"
        }
      },
      "required": [
        "items",
        "license",
        "version"
      ],
      "type": "object"
    },
    "messages": {
      "$ref": "#/definitions/imunify.core.rpc.v1.Messages"
    },
    "result": {
      "enum": [
        "success",
        "error",
        "warnings"
      ],
      "type": "string"
    },
    "status": {
      "enum": [
        "running",
        "downgrading",
        "installing",
        "upgrading",
        "not_installed",
        "failed_to_install",
        "socket_inaccessible",
        "stopped"
      ],
      "type": "string"
    }
  },
  "required": [
    "data",
    "messages",
    "result"
  ],
  "type": "object"
}
