{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "$defs" : {
    "Codegen" : {
      "type" : "object",
      "properties" : {
        "NamespacePackage" : {
          "$ref" : "#/$defs/Map(String,String)",
          "description" : "Namespace to package name mappings"
        },
        "UnderscoreNames" : {
          "type" : "boolean",
          "description" : "Whether underscore names in types should be stated in client-code or writen in camelCase flavor.",
          "default" : "false"
        },
        "WsdlUrl" : {
          "description" : "WSDL Uri to generate the client from. Can also be a local file.",
          "additionalProperties" : false,
          "type" : "string",
          "format" : "uri",
          "examples" : [ "https://acme.com/service?WSDL", "file:///home/user/Downloads/acmeService.wsdl" ]
        }
      },
      "additionalProperties" : false
    },
    "Library" : {
      "type" : "string",
      "const" : "CXF"
    },
    "Map(String,String)" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "string"
      }
    },
    "Map(String,WebServiceClientSchema)" : {
      "type" : "object",
      "additionalProperties" : {
        "$ref" : "#/$defs/WebServiceClient"
      }
    },
    "WebServiceClient" : {
      "type" : "object",
      "properties" : {
        "Id" : {
          "type" : "string"
        },
        "WsCallLibrary" : {
          "$ref" : "#/$defs/Library"
        },
        "Icon" : {
          "type" : "string"
        },
        "ServiceClass" : {
          "type" : "string"
        },
        "Features" : {
          "description" : "Full qualified class names, that contribute WS-client call features, such as authentication.",
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "Properties" : {
          "$ref" : "#/$defs/Map(String,String)",
          "description" : "Properties that supply dynamic values for WS-client features."
        },
        "Endpoints" : {
          "description" : "Endpoint names, to URIs",
          "additionalProperties" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "type" : "object",
          "examples" : [ "myPort: - https://myCustomProdHost/hr/employee/soap" ]
        },
        "Codegen" : {
          "$ref" : "#/$defs/Codegen"
        }
      },
      "additionalProperties" : false
    }
  },
  "type" : "object",
  "properties" : {
    "WebServiceClients" : {
      "$ref" : "#/$defs/Map(String,WebServiceClientSchema)"
    }
  },
  "additionalProperties" : false
}
