{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "$defs" : {
    "Dependency" : {
      "type" : "object",
      "properties" : {
        "artifactId" : {
          "type" : "string"
        },
        "classifier" : {
          "type" : "string"
        },
        "exclusions" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Exclusion"
          }
        },
        "groupId" : {
          "type" : "string"
        },
        "managementKey" : {
          "type" : "string"
        },
        "optional" : {
          "type" : "string"
        },
        "scope" : {
          "type" : "string"
        },
        "systemPath" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        },
        "version" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Exclusion" : {
      "type" : "object",
      "properties" : {
        "artifactId" : {
          "type" : "string"
        },
        "groupId" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "MavenDependencyInstaller" : {
      "type" : "object",
      "properties" : {
        "dependencies" : {
          "description" : "ivy projects as maven dependencies",
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Dependency"
          }
        },
        "repositories" : {
          "description" : "maven repositories where the projects are available",
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Repository"
          }
        }
      },
      "additionalProperties" : false
    },
    "MavenDropinsInstaller" : {
      "type" : "object",
      "properties" : {
        "dependencies" : {
          "description" : "eclipse bundles as maven dependencies",
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Dependency"
          }
        },
        "repositories" : {
          "description" : "maven repositories where the dropins are available",
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Repository"
          }
        }
      },
      "additionalProperties" : false
    },
    "MavenProjectInstaller" : {
      "type" : "object",
      "properties" : {
        "projects" : {
          "description" : "ivy projects as maven dependencies",
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Project"
          }
        },
        "repositories" : {
          "description" : "maven repositories where the projects are available",
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Repository"
          }
        }
      },
      "additionalProperties" : false
    },
    "Project" : {
      "type" : "object",
      "properties" : {
        "artifactId" : {
          "type" : "string",
          "description" : "maven artifact id"
        },
        "groupId" : {
          "type" : "string",
          "description" : "maven group id"
        },
        "importInWorkspace" : {
          "type" : "boolean",
          "description" : "wether project should be imported or not",
          "default" : "true"
        },
        "type" : {
          "type" : "string",
          "description" : "maven type",
          "default" : "iar"
        },
        "version" : {
          "type" : "string",
          "description" : "maven version"
        }
      },
      "additionalProperties" : false
    },
    "Repository" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string"
        },
        "layout" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "releases" : {
          "$ref" : "#/$defs/RepositoryPolicy"
        },
        "snapshots" : {
          "$ref" : "#/$defs/RepositoryPolicy"
        },
        "url" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "RepositoryPolicy" : {
      "type" : "object",
      "properties" : {
        "checksumPolicy" : {
          "type" : "string"
        },
        "enabled" : {
          "type" : "string"
        },
        "updatePolicy" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    }
  },
  "type" : "object",
  "properties" : {
    "$schema" : {
      "type" : "string"
    },
    "installers" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "anyOf" : [ {
              "const" : "maven-dependency",
              "description" : "Adds Maven dependencies to an existing project pom.xml. You may use it to integrate existing frameworks and drivers from the Maven ecosystem."
            }, {
              "const" : "maven-import",
              "description" : "Imports IvyProjects into your workspace without actually adding dependencies to it into your project pom.xml. This is handy to integrate large demo projects into your workspace."
            }, {
              "const" : "maven-dropins",
              "description" : "Installs Eclipse Bundles as dropin extension"
            } ]
          }
        },
        "allOf" : [ {
          "if" : {
            "properties" : {
              "id" : {
                "const" : "maven-dependency"
              }
            }
          },
          "then" : {
            "properties" : {
              "data" : {
                "$ref" : "#/$defs/MavenDependencyInstaller"
              }
            }
          }
        }, {
          "if" : {
            "properties" : {
              "id" : {
                "const" : "maven-import"
              }
            }
          },
          "then" : {
            "properties" : {
              "data" : {
                "$ref" : "#/$defs/MavenProjectInstaller"
              }
            }
          }
        }, {
          "if" : {
            "properties" : {
              "id" : {
                "const" : "maven-dropins"
              }
            }
          },
          "then" : {
            "properties" : {
              "data" : {
                "$ref" : "#/$defs/MavenDropinsInstaller"
              }
            }
          }
        } ]
      }
    },
    "minimumIvyVersion" : {
      "type" : "string",
      "description" : "The minimal version of ivy that is required to run this product.",
      "pattern" : "[0-9]\\.[0-9]\\.[0-9]"
    }
  },
  "additionalProperties" : false
}
