{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "$defs" : {
    "ConfigurableRestClient" : {
      "type" : "object",
      "properties" : {
        "Url" : {
          "type" : "string"
        },
        "Features" : {
          "description" : "Full qualified class names, that contribute REST-client features, such as authentication.",
          "type" : "array",
          "items" : {
            "type" : "string",
            "examples" : [ "ch.ivyteam.ivy.rest.client.mapper.JsonFeature", "ch.ivyteam.ivy.rest.client.authentication.HttpBasicAuthenticationFeature" ]
          },
          "examples" : [ "ch.ivyteam.ivy.rest.client.mapper.JsonFeature", "ch.ivyteam.ivy.rest.client.authentication.HttpBasicAuthenticationFeature" ]
        },
        "Properties" : {
          "$ref" : "#/$defs/Map(String,String)",
          "description" : "Properties that supply dynamic values for REST-client features."
        }
      },
      "additionalProperties" : false
    },
    "ConfigurableWsClient" : {
      "type" : "object",
      "properties" : {
        "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" ]
        }
      },
      "additionalProperties" : false
    },
    "Data" : {
      "type" : "object",
      "properties" : {
        "FilesDirectory" : {
          "type" : "string",
          "description" : "Application folder where application files are stored. It overrides the root file folder setting.\nA change in this setting will NOT automatically move existing application files to the new location, so you need to move files manually.\nAbsolute and relative (to the engine root directory) paths are supported.\nIf not set the files will be stored in an application specific directory underneath the root file folder.\n[restart required] for existing apps"
        }
      },
      "additionalProperties" : false
    },
    "Jsf" : {
      "type" : "object",
      "properties" : {
        "primefaces.theme" : {
          "type" : "string",
          "description" : "JSF Primefaces Theme that is used by HTML Dialogs\nStandard themes:\n vela, saga, arya\nFreya themes:\n freya-ivy-light, freya-ivy-dark\nDeprecated themes:\n serenity-ivy, serenity-amber, serenity-blue, serenity-bluegrey, serenity-brown, serenity-cyan, serenity-deeporange, serenity-deeppurple,\n serenity-green, serenity-grey, serenity-indigo, serenity-lightblue, serenity-lightgreen, serenity-lime, serenity-orange,\n serenity-pink, serenity-purple, serenity-teal, serenity-yellow,\n luna-amber, luna-blue, luna-green, luna-pink, nova-colored, nova-dark, nova-light\nThis configuration has no effect if theme is specified in the xhtml template.\n@designer.guide.url@/user-interface/user-dialogs/html-dialog-themes.html",
          "default" : "freya-ivy-light"
        }
      },
      "additionalProperties" : false
    },
    "Map(String,ConfigurableRestClientSchema)" : {
      "type" : "object",
      "additionalProperties" : {
        "$ref" : "#/$defs/ConfigurableRestClient"
      }
    },
    "Map(String,ConfigurableWsClientSchema)" : {
      "type" : "object",
      "additionalProperties" : {
        "$ref" : "#/$defs/ConfigurableWsClient"
      }
    },
    "Map(String,String)" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "string"
      }
    },
    "StandardProcess" : {
      "type" : "object",
      "properties" : {
        "DefaultPages" : {
          "type" : "string",
          "description" : "Standard processes are a set of predefined processes, which you can customize in your ivy project.\nTo enable these custom processes, the library id of the ivy project must be specified here.\nThe library id is <group-id>:<project-id> from the ivy project deployment definition.\ne.g the library id of the portal template is \"ch.ivyteam.ivy.project.portal:portalTemplate\"\nThe default is 'auto' which means auto detection of standard process in your application\n@designer.guide.url@/user-interface/default-pages",
          "default" : "auto"
        }
      },
      "additionalProperties" : false
    }
  },
  "type" : "object",
  "properties" : {
    "SecuritySystem" : {
      "type" : "string",
      "description" : "The security system manages users and roles and must be referred by name.\nThis setting is only evaluated at deployment time when the application not already exists!\nYou can not change the security system of an application later on.",
      "default" : "default"
    },
    "OverrideProject" : {
      "type" : "string",
      "description" : "Defines a project containing overriding SubProcesses, HtmlDialogs or CMS entries for a dependent project.\nThis allows you to customize generic solutions with minimal effort.\nThe overriding project must be declared in the format <group-id>:<project-id> (e.g. ch.ivyteam.ivy:overrideProject).\nThese identifiers can be copied from the ivy project deployment definition (pom.xml).\n@designer.guide.url@/how-to/overrides.html"
    },
    "Data" : {
      "$ref" : "#/$defs/Data"
    },
    "StandardProcess" : {
      "$ref" : "#/$defs/StandardProcess"
    },
    "Jsf" : {
      "$ref" : "#/$defs/Jsf"
    },
    "Databases" : {
      "$ref" : "/app/11.4.1/databases.json#/$defs/Map(String,DatabaseSchema)",
      "description" : "Databases are defined in ivy projects with a name.\nConnection details from those databases can be overridden by addressing the database by name."
    },
    "RestClients" : {
      "$ref" : "#/$defs/Map(String,ConfigurableRestClientSchema)",
      "description" : "Rest Clients are defined in ivy projects with a name.\nAny configuration from those clients can be overridden by addressing the client by name."
    },
    "WebServiceClients" : {
      "$ref" : "#/$defs/Map(String,ConfigurableWsClientSchema)",
      "description" : "Web Service Clients are defined in ivy projects with a name.\nAny configuration from those clients can be overridden by addressing the client with its name."
    },
    "BusinessCalendar" : {
      "type" : "string",
      "description" : "Currently active business calendar for this application."
    },
    "BusinessCalendars" : {
      "$ref" : "/app/11.4.1/business-calendars.json#/$defs/Map(String,BusinessCalendarSchema)",
      "description" : "Business calendars are organized as trees, with one root / default calendar and an arbitrary number of child calendars.\nChild business calendars inherit the values of their parent. A parent can be the root calendar or any child calendar.\n\nAt least one root calendar needs to be defined. If non is configured, a root / default calendar will be created automatically\nwith following default values:\n- Parent is empty\n- First day of week is: Monday\n- Working times are: 'morning: 8:00 - 12:00' and 'afternoon: 13:00 - 17:00'\n\nYou can reference a business calendars in a ivy projects by its name. E.g ivy.cal.get(\"myRootBusinessCalendar\")\n@engine.guide.url@/configuration/advanced-configuration.html#business-calendar"
    },
    "Variables" : {
      "$ref" : "/app/11.4.1/variables.json#/$defs/VariableMap",
      "description" : "Variables are defined in ivy projects.\nAll of them can be overridden."
    }
  },
  "additionalProperties" : false
}
