{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/ubuntu-server-autoinstall/latest.json",
  "title": "Ubuntu Server Autoinstall",
  "description": "Settings file for Ubuntu Autoinstall",
  "x-lintel": {
    "source": "https://www.schemastore.org/ubuntu-server-autoinstall.json",
    "sourceSha256": "11c7a585d3c0151a4ecae85191286f94e03721c552c97ccb871b6f5f83b87eed",
    "fileMatch": [
      "user-data"
    ]
  },
  "type": "object",
  "properties": {
    "autoinstall": {
      "type": "object",
      "properties": {
        "version": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1
        },
        "early-commands": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "reporting": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": true
          }
        },
        "error-commands": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "user-data": {
          "type": "object"
        },
        "packages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "debconf-selections": {
          "type": "string"
        },
        "locale": {
          "type": "string"
        },
        "refresh-installer": {
          "type": "object",
          "properties": {
            "update": {
              "type": "boolean"
            },
            "channel": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "keyboard": {
          "type": "object",
          "properties": {
            "layout": {
              "type": "string"
            },
            "variant": {
              "type": "string"
            },
            "toggle": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "layout"
          ],
          "additionalProperties": false
        },
        "network": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "version": {
                  "type": "integer",
                  "minimum": 2,
                  "maximum": 2
                },
                "ethernets": {
                  "type": "object",
                  "properties": {
                    "match": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "macaddress": {
                          "type": "string"
                        },
                        "driver": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                },
                "wifis": {
                  "type": "object",
                  "properties": {
                    "match": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "macaddress": {
                          "type": "string"
                        },
                        "driver": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                },
                "bridges": {
                  "type": "object"
                },
                "bonds": {
                  "type": "object"
                },
                "tunnels": {
                  "type": "object"
                },
                "vlans": {
                  "type": "object"
                }
              },
              "required": [
                "version"
              ]
            },
            {
              "type": "object",
              "properties": {
                "network": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "integer",
                      "minimum": 2,
                      "maximum": 2
                    },
                    "ethernets": {
                      "type": "object",
                      "properties": {
                        "match": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "macaddress": {
                              "type": "string"
                            },
                            "driver": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "wifis": {
                      "type": "object",
                      "properties": {
                        "match": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "macaddress": {
                              "type": "string"
                            },
                            "driver": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "bridges": {
                      "type": "object"
                    },
                    "bonds": {
                      "type": "object"
                    },
                    "tunnels": {
                      "type": "object"
                    },
                    "vlans": {
                      "type": "object"
                    }
                  },
                  "required": [
                    "version"
                  ]
                }
              },
              "required": [
                "network"
              ]
            }
          ]
        },
        "proxy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri"
        },
        "apt": {
          "type": "object",
          "properties": {
            "preserve_sources_list": {
              "type": "boolean"
            },
            "primary": {
              "type": "array"
            },
            "geoip": {
              "type": "boolean"
            },
            "sources": {
              "type": "object"
            }
          }
        },
        "storage": {
          "type": "object"
        },
        "identity": {
          "type": "object",
          "properties": {
            "realname": {
              "type": "string"
            },
            "username": {
              "type": "string"
            },
            "hostname": {
              "type": "string"
            },
            "password": {
              "type": "string"
            }
          },
          "required": [
            "username",
            "hostname",
            "password"
          ],
          "additionalProperties": false
        },
        "ssh": {
          "type": "object",
          "properties": {
            "install-server": {
              "type": "boolean"
            },
            "authorized-keys": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "allow-pw": {
              "type": "boolean"
            }
          }
        },
        "snaps": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "channel": {
                "type": "string"
              },
              "classic": {
                "type": "boolean"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        },
        "late-commands": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "required": [
        "version"
      ],
      "additionalProperties": true
    }
  },
  "id": "https://json.schemastore.org/ubuntu-server-autoinstall.json"
}
