{
  "$defs": {
    "DataEntryKey": {
      "type": [
        "string",
        "number",
        "boolean"
      ]
    },
    "DataValue": {
      "anyOf": [
        {
          "additionalProperties": false,
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "content": {
              "type": [
                "string",
                "number",
                "boolean"
              ]
            },
            "executable": {
              "type": [
                "boolean",
                "null"
              ]
            }
          },
          "required": [
            "content"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "executable": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "generate": {
              "type": [
                "string",
                "number",
                "boolean"
              ]
            },
            "image": {
              "type": [
                "string",
                "null",
                "number",
                "boolean"
              ]
            }
          },
          "required": [
            "generate"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "executable": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "file": {
              "type": [
                "string",
                "number",
                "boolean"
              ]
            }
          },
          "required": [
            "file"
          ],
          "type": "object"
        }
      ]
    },
    "InstallSpec": {
      "anyOf": [
        {
          "type": [
            "string",
            "number",
            "boolean"
          ]
        },
        {
          "additionalProperties": {
            "anyOf": [
              {
                "$ref": "#/$defs/InstallStep"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": "object"
        }
      ]
    },
    "InstallStep": {
      "anyOf": [
        {
          "type": [
            "string",
            "number",
            "boolean"
          ]
        },
        {
          "$ref": "#/$defs/InstallStepSpec"
        }
      ]
    },
    "InstallStepSpec": {
      "additionalProperties": false,
      "properties": {
        "root": {
          "type": "boolean"
        },
        "run": {
          "type": [
            "string",
            "number",
            "boolean"
          ]
        },
        "skip_if": {
          "type": [
            "string",
            "null",
            "number",
            "boolean"
          ]
        }
      },
      "required": [
        "run"
      ],
      "type": "object"
    },
    "MountSource": {
      "anyOf": [
        {
          "$ref": "#/$defs/DataEntryKey"
        },
        {
          "$ref": "#/$defs/DataValue"
        }
      ]
    },
    "RoozSidecar": {
      "additionalProperties": false,
      "properties": {
        "args": {
          "items": {
            "type": [
              "string",
              "number",
              "boolean"
            ]
          },
          "type": [
            "array",
            "null"
          ]
        },
        "command": {
          "items": {
            "type": [
              "string",
              "number",
              "boolean"
            ]
          },
          "type": [
            "array",
            "null"
          ]
        },
        "egress": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "env": {
          "additionalProperties": {
            "type": [
              "string",
              "number",
              "boolean"
            ]
          },
          "type": [
            "object",
            "null"
          ]
        },
        "image": {
          "type": [
            "string",
            "null",
            "number",
            "boolean"
          ]
        },
        "init": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "install": {
          "anyOf": [
            {
              "$ref": "#/$defs/InstallSpec"
            },
            {
              "type": "null"
            }
          ]
        },
        "mounts": {
          "additionalProperties": {
            "$ref": "#/$defs/MountSource"
          },
          "type": [
            "object",
            "null"
          ]
        },
        "peers": {
          "items": {
            "type": [
              "string",
              "number",
              "boolean"
            ]
          },
          "type": [
            "array",
            "null"
          ]
        },
        "ports": {
          "items": {
            "type": [
              "string",
              "number",
              "boolean"
            ]
          },
          "type": [
            "array",
            "null"
          ]
        },
        "privileged": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "shell": {
          "items": {
            "type": [
              "string",
              "number",
              "boolean"
            ]
          },
          "type": [
            "array",
            "null"
          ]
        },
        "uid": {
          "format": "int32",
          "type": [
            "integer",
            "null"
          ]
        },
        "vpn": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "work_dir": {
          "type": [
            "string",
            "null",
            "number",
            "boolean"
          ]
        }
      },
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "properties": {
    "args": {
      "items": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "array",
        "null"
      ]
    },
    "bases": {
      "items": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "array",
        "null"
      ]
    },
    "caches": {
      "items": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "array",
        "null"
      ]
    },
    "command": {
      "items": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "array",
        "null"
      ]
    },
    "data": {
      "additionalProperties": {
        "$ref": "#/$defs/DataValue"
      },
      "type": [
        "object",
        "null"
      ]
    },
    "env": {
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "object",
        "null"
      ]
    },
    "extra_repos": {
      "items": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "array",
        "null"
      ]
    },
    "git_ssh_url": {
      "type": [
        "string",
        "null",
        "number",
        "boolean"
      ]
    },
    "image": {
      "type": [
        "string",
        "null",
        "number",
        "boolean"
      ]
    },
    "init": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "install": {
      "anyOf": [
        {
          "$ref": "#/$defs/InstallSpec"
        },
        {
          "type": "null"
        }
      ]
    },
    "mounts": {
      "additionalProperties": {
        "$ref": "#/$defs/MountSource"
      },
      "type": [
        "object",
        "null"
      ]
    },
    "ports": {
      "items": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "array",
        "null"
      ]
    },
    "privileged": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "secrets": {
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "object",
        "null"
      ]
    },
    "shell": {
      "items": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "array",
        "null"
      ]
    },
    "sidecars": {
      "additionalProperties": {
        "$ref": "#/$defs/RoozSidecar"
      },
      "type": [
        "object",
        "null"
      ]
    },
    "user": {
      "type": [
        "string",
        "null",
        "number",
        "boolean"
      ]
    },
    "vars": {
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "type": [
        "object",
        "null"
      ]
    }
  },
  "title": "RoozCfg",
  "type": "object"
}
