{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "ldap": {
      "type": "object",
      "properties": {
        "providers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "target": {
                "type": "string",
                "description": "The prefix of the target that this matches on, e.g. \"ldaps://ds.example.net\", with no trailing slash."
              },
              "bind": {
                "type": "object",
                "properties": {
                  "dn": {
                    "type": "string",
                    "description": "The DN of the user to auth as.\n\nE.g. \"uid=ldap-robot,ou=robots,ou=example,dc=example,dc=net\""
                  },
                  "secret": {
                    "type": "string",
                    "description": "The secret of the user to auth as (its password).",
                    "visibility": "secret"
                  }
                },
                "required": [
                  "dn",
                  "secret"
                ],
                "description": "The settings to use for the bind command. If none are specified, the bind command is not issued."
              },
              "tls": {
                "type": "object",
                "properties": {
                  "rejectUnauthorized": {
                    "type": "boolean"
                  }
                },
                "description": "TLS settings"
              },
              "users": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "dn": {
                        "type": "string",
                        "description": "The DN under which users are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                      },
                      "options": {
                        "type": "object",
                        "properties": {
                          "scope": {
                            "type": "string",
                            "enum": [
                              "base",
                              "one",
                              "sub"
                            ]
                          },
                          "filter": {
                            "type": "string"
                          },
                          "attributes": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          },
                          "sizeLimit": {
                            "type": "number"
                          },
                          "timeLimit": {
                            "type": "number"
                          },
                          "derefAliases": {
                            "type": "number"
                          },
                          "returnAttributeValues": {
                            "type": "boolean"
                          },
                          "paged": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "pageSize": {
                                    "type": "number"
                                  },
                                  "pagePause": {
                                    "type": "boolean"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                      },
                      "set": {
                        "type": "object",
                        "additionalProperties": {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": {
                                "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                              },
                              "description": "A type representing all allowed JSON object values."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "length": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "length"
                              ],
                              "description": "A type representing all allowed JSON array values."
                            },
                            {
                              "type": [
                                "number",
                                "string",
                                "boolean",
                                "null"
                              ],
                              "description": "A type representing all allowed JSON primitive values."
                            }
                          ],
                          "description": "A type representing all allowed JSON values."
                        },
                        "description": "JSON paths (on a.b.c form) and hard coded values to set on those paths.\n\nThis can be useful for example if you want to hard code a namespace or similar on the generated entities."
                      },
                      "map": {
                        "type": "object",
                        "properties": {
                          "rdn": {
                            "type": "string",
                            "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"uid\"."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"uid\"."
                          },
                          "description": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity."
                          },
                          "displayName": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                          },
                          "email": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity. Defaults to \"mail\"."
                          },
                          "picture": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                          },
                          "memberOf": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The name of the attribute that shall be used for the values of the spec.memberOf field of the entity. Defaults to \"memberOf\"."
                          }
                        },
                        "description": "Mappings from well known entity fields, to LDAP attribute names"
                      }
                    },
                    "required": [
                      "dn",
                      "options"
                    ]
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "dn": {
                          "type": "string",
                          "description": "The DN under which users are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                        },
                        "options": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "string",
                              "enum": [
                                "base",
                                "one",
                                "sub"
                              ]
                            },
                            "filter": {
                              "type": "string"
                            },
                            "attributes": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              ]
                            },
                            "sizeLimit": {
                              "type": "number"
                            },
                            "timeLimit": {
                              "type": "number"
                            },
                            "derefAliases": {
                              "type": "number"
                            },
                            "returnAttributeValues": {
                              "type": "boolean"
                            },
                            "paged": {
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "pageSize": {
                                      "type": "number"
                                    },
                                    "pagePause": {
                                      "type": "boolean"
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                        },
                        "set": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": {
                                  "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                                },
                                "description": "A type representing all allowed JSON object values."
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "length": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "length"
                                ],
                                "description": "A type representing all allowed JSON array values."
                              },
                              {
                                "type": [
                                  "number",
                                  "string",
                                  "boolean",
                                  "null"
                                ],
                                "description": "A type representing all allowed JSON primitive values."
                              }
                            ],
                            "description": "A type representing all allowed JSON values."
                          },
                          "description": "JSON paths (on a.b.c form) and hard coded values to set on those paths.\n\nThis can be useful for example if you want to hard code a namespace or similar on the generated entities."
                        },
                        "map": {
                          "type": "object",
                          "properties": {
                            "rdn": {
                              "type": "string",
                              "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"uid\"."
                            },
                            "name": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"uid\"."
                            },
                            "description": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity."
                            },
                            "displayName": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                            },
                            "email": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity. Defaults to \"mail\"."
                            },
                            "picture": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                            },
                            "memberOf": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "The name of the attribute that shall be used for the values of the spec.memberOf field of the entity. Defaults to \"memberOf\"."
                            }
                          },
                          "description": "Mappings from well known entity fields, to LDAP attribute names"
                        }
                      },
                      "required": [
                        "dn",
                        "options"
                      ]
                    }
                  }
                ],
                "description": "The settings that govern the reading and interpretation of users."
              },
              "groups": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "dn": {
                        "type": "string",
                        "description": "The DN under which groups are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                      },
                      "options": {
                        "type": "object",
                        "properties": {
                          "scope": {
                            "type": "string",
                            "enum": [
                              "base",
                              "one",
                              "sub"
                            ]
                          },
                          "filter": {
                            "type": "string"
                          },
                          "attributes": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            ]
                          },
                          "sizeLimit": {
                            "type": "number"
                          },
                          "timeLimit": {
                            "type": "number"
                          },
                          "derefAliases": {
                            "type": "number"
                          },
                          "returnAttributeValues": {
                            "type": "boolean"
                          },
                          "paged": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "pageSize": {
                                    "type": "number"
                                  },
                                  "pagePause": {
                                    "type": "boolean"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                      },
                      "set": {
                        "type": "object",
                        "additionalProperties": {
                          "anyOf": [
                            {
                              "type": "object",
                              "additionalProperties": {
                                "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                              },
                              "description": "A type representing all allowed JSON object values."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "length": {
                                  "type": "number"
                                }
                              },
                              "required": [
                                "length"
                              ],
                              "description": "A type representing all allowed JSON array values."
                            },
                            {
                              "type": [
                                "number",
                                "string",
                                "boolean",
                                "null"
                              ],
                              "description": "A type representing all allowed JSON primitive values."
                            }
                          ],
                          "description": "A type representing all allowed JSON values."
                        },
                        "description": "JSON paths (on a.b.c form) and hard coded values to set on those paths.\n\nThis can be useful for example if you want to hard code a namespace or similar on the generated entities."
                      },
                      "map": {
                        "type": "object",
                        "properties": {
                          "rdn": {
                            "type": "string",
                            "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"cn\"."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"cn\"."
                          },
                          "description": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity. Defaults to \"description\"."
                          },
                          "type": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the spec.type field of the entity. Defaults to \"groupType\"."
                          },
                          "displayName": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                          },
                          "email": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity."
                          },
                          "picture": {
                            "type": "string",
                            "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                          },
                          "memberOf": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The name of the attribute that shall be used for the values of the spec.parent field of the entity. Defaults to \"memberOf\"."
                          },
                          "members": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The name of the attribute that shall be used for the values of the spec.children field of the entity. Defaults to \"member\"."
                          }
                        },
                        "description": "Mappings from well known entity fields, to LDAP attribute names"
                      }
                    },
                    "required": [
                      "dn",
                      "options"
                    ]
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "dn": {
                          "type": "string",
                          "description": "The DN under which groups are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                        },
                        "options": {
                          "type": "object",
                          "properties": {
                            "scope": {
                              "type": "string",
                              "enum": [
                                "base",
                                "one",
                                "sub"
                              ]
                            },
                            "filter": {
                              "type": "string"
                            },
                            "attributes": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              ]
                            },
                            "sizeLimit": {
                              "type": "number"
                            },
                            "timeLimit": {
                              "type": "number"
                            },
                            "derefAliases": {
                              "type": "number"
                            },
                            "returnAttributeValues": {
                              "type": "boolean"
                            },
                            "paged": {
                              "anyOf": [
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "pageSize": {
                                      "type": "number"
                                    },
                                    "pagePause": {
                                      "type": "boolean"
                                    }
                                  }
                                }
                              ]
                            }
                          },
                          "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                        },
                        "set": {
                          "type": "object",
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "object",
                                "additionalProperties": {
                                  "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                                },
                                "description": "A type representing all allowed JSON object values."
                              },
                              {
                                "type": "object",
                                "properties": {
                                  "length": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "length"
                                ],
                                "description": "A type representing all allowed JSON array values."
                              },
                              {
                                "type": [
                                  "number",
                                  "string",
                                  "boolean",
                                  "null"
                                ],
                                "description": "A type representing all allowed JSON primitive values."
                              }
                            ],
                            "description": "A type representing all allowed JSON values."
                          },
                          "description": "JSON paths (on a.b.c form) and hard coded values to set on those paths.\n\nThis can be useful for example if you want to hard code a namespace or similar on the generated entities."
                        },
                        "map": {
                          "type": "object",
                          "properties": {
                            "rdn": {
                              "type": "string",
                              "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"cn\"."
                            },
                            "name": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"cn\"."
                            },
                            "description": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity. Defaults to \"description\"."
                            },
                            "type": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the spec.type field of the entity. Defaults to \"groupType\"."
                            },
                            "displayName": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                            },
                            "email": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity."
                            },
                            "picture": {
                              "type": "string",
                              "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                            },
                            "memberOf": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "The name of the attribute that shall be used for the values of the spec.parent field of the entity. Defaults to \"memberOf\"."
                            },
                            "members": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "The name of the attribute that shall be used for the values of the spec.children field of the entity. Defaults to \"member\"."
                            }
                          },
                          "description": "Mappings from well known entity fields, to LDAP attribute names"
                        }
                      },
                      "required": [
                        "dn",
                        "options"
                      ]
                    }
                  }
                ],
                "description": "The settings that govern the reading and interpretation of groups."
              },
              "vendor": {
                "type": "object",
                "properties": {
                  "dnAttributeName": {
                    "type": "string",
                    "description": "Attribute name for the distinguished name (DN) of an entry,"
                  },
                  "uuidAttributeName": {
                    "type": "string",
                    "description": "Attribute name for the unique identifier (UUID) of an entry,"
                  }
                },
                "description": "Configuration for overriding the vendor-specific default attribute names."
              }
            },
            "required": [
              "target"
            ]
          },
          "description": "The configuration parameters for each single LDAP provider."
        }
      },
      "required": [
        "providers"
      ],
      "description": "LdapOrgEntityProvider / LdapOrgReaderProcessor configuration",
      "deprecated": "This exists for backwards compatibility only and will be removed in the future."
    },
    "catalog": {
      "type": "object",
      "properties": {
        "providers": {
          "type": "object",
          "properties": {
            "ldapOrg": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "target": {
                    "type": "string",
                    "description": "The prefix of the target that this matches on, e.g. \"ldaps://ds.example.net\", with no trailing slash."
                  },
                  "bind": {
                    "type": "object",
                    "properties": {
                      "dn": {
                        "type": "string",
                        "description": "The DN of the user to auth as.\n\nE.g. \"uid=ldap-robot,ou=robots,ou=example,dc=example,dc=net\""
                      },
                      "secret": {
                        "type": "string",
                        "description": "The secret of the user to auth as (its password).",
                        "visibility": "secret"
                      }
                    },
                    "required": [
                      "dn",
                      "secret"
                    ],
                    "description": "The settings to use for the bind command. If none are specified, the bind command is not issued."
                  },
                  "tls": {
                    "type": "object",
                    "properties": {
                      "rejectUnauthorized": {
                        "type": "boolean"
                      }
                    },
                    "description": "TLS settings"
                  },
                  "users": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "dn": {
                            "type": "string",
                            "description": "The DN under which users are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                          },
                          "options": {
                            "type": "object",
                            "properties": {
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "base",
                                  "one",
                                  "sub"
                                ]
                              },
                              "filter": {
                                "type": "string"
                              },
                              "attributes": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                ]
                              },
                              "sizeLimit": {
                                "type": "number"
                              },
                              "timeLimit": {
                                "type": "number"
                              },
                              "derefAliases": {
                                "type": "number"
                              },
                              "returnAttributeValues": {
                                "type": "boolean"
                              },
                              "paged": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "pageSize": {
                                        "type": "number"
                                      },
                                      "pagePause": {
                                        "type": "boolean"
                                      }
                                    }
                                  }
                                ]
                              }
                            },
                            "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                          },
                          "set": {
                            "type": "object",
                            "additionalProperties": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "additionalProperties": {
                                    "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                                  },
                                  "description": "A type representing all allowed JSON object values."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "length": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "length"
                                  ],
                                  "description": "A type representing all allowed JSON array values."
                                },
                                {
                                  "type": [
                                    "number",
                                    "string",
                                    "boolean",
                                    "null"
                                  ],
                                  "description": "A type representing all allowed JSON primitive values."
                                }
                              ],
                              "description": "A type representing all allowed JSON values."
                            },
                            "description": "JSON paths (on a.b.c form) and hard coded values to set on those paths.\n\nThis can be useful for example if you want to hard code a namespace or similar on the generated entities."
                          },
                          "map": {
                            "type": "object",
                            "properties": {
                              "rdn": {
                                "type": "string",
                                "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"uid\"."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"uid\"."
                              },
                              "description": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity."
                              },
                              "displayName": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                              },
                              "email": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity. Defaults to \"mail\"."
                              },
                              "picture": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                              },
                              "memberOf": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The name of the attribute that shall be used for the values of the spec.memberOf field of the entity. Defaults to \"memberOf\"."
                              }
                            },
                            "description": "Mappings from well known entity fields, to LDAP attribute names"
                          }
                        },
                        "required": [
                          "dn",
                          "options"
                        ]
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "dn": {
                              "type": "string",
                              "description": "The DN under which users are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                            },
                            "options": {
                              "type": "object",
                              "properties": {
                                "scope": {
                                  "type": "string",
                                  "enum": [
                                    "base",
                                    "one",
                                    "sub"
                                  ]
                                },
                                "filter": {
                                  "type": "string"
                                },
                                "attributes": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  ]
                                },
                                "sizeLimit": {
                                  "type": "number"
                                },
                                "timeLimit": {
                                  "type": "number"
                                },
                                "derefAliases": {
                                  "type": "number"
                                },
                                "returnAttributeValues": {
                                  "type": "boolean"
                                },
                                "paged": {
                                  "anyOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "pageSize": {
                                          "type": "number"
                                        },
                                        "pagePause": {
                                          "type": "boolean"
                                        }
                                      }
                                    }
                                  ]
                                }
                              },
                              "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                            },
                            "set": {
                              "type": "object",
                              "additionalProperties": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": {
                                      "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                                    },
                                    "description": "A type representing all allowed JSON object values."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "length": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "length"
                                    ],
                                    "description": "A type representing all allowed JSON array values."
                                  },
                                  {
                                    "type": [
                                      "number",
                                      "string",
                                      "boolean",
                                      "null"
                                    ],
                                    "description": "A type representing all allowed JSON primitive values."
                                  }
                                ],
                                "description": "A type representing all allowed JSON values."
                              },
                              "description": "JSON paths (on a.b.c form) and hard coded values to set on those paths.\n\nThis can be useful for example if you want to hard code a namespace or similar on the generated entities."
                            },
                            "map": {
                              "type": "object",
                              "properties": {
                                "rdn": {
                                  "type": "string",
                                  "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"uid\"."
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"uid\"."
                                },
                                "description": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity."
                                },
                                "displayName": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                                },
                                "email": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity. Defaults to \"mail\"."
                                },
                                "picture": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                                },
                                "memberOf": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "The name of the attribute that shall be used for the values of the spec.memberOf field of the entity. Defaults to \"memberOf\"."
                                }
                              },
                              "description": "Mappings from well known entity fields, to LDAP attribute names"
                            }
                          },
                          "required": [
                            "dn",
                            "options"
                          ]
                        }
                      }
                    ],
                    "description": "The settings that govern the reading and interpretation of users."
                  },
                  "groups": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "dn": {
                            "type": "string",
                            "description": "The DN under which groups are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                          },
                          "options": {
                            "type": "object",
                            "properties": {
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "base",
                                  "one",
                                  "sub"
                                ]
                              },
                              "filter": {
                                "type": "string"
                              },
                              "attributes": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                ]
                              },
                              "sizeLimit": {
                                "type": "number"
                              },
                              "timeLimit": {
                                "type": "number"
                              },
                              "derefAliases": {
                                "type": "number"
                              },
                              "returnAttributeValues": {
                                "type": "boolean"
                              },
                              "paged": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "pageSize": {
                                        "type": "number"
                                      },
                                      "pagePause": {
                                        "type": "boolean"
                                      }
                                    }
                                  }
                                ]
                              }
                            },
                            "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                          },
                          "set": {
                            "type": "object",
                            "additionalProperties": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "additionalProperties": {
                                    "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                                  },
                                  "description": "A type representing all allowed JSON object values."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "length": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "length"
                                  ],
                                  "description": "A type representing all allowed JSON array values."
                                },
                                {
                                  "type": [
                                    "number",
                                    "string",
                                    "boolean",
                                    "null"
                                  ],
                                  "description": "A type representing all allowed JSON primitive values."
                                }
                              ],
                              "description": "A type representing all allowed JSON values."
                            },
                            "description": "JSON paths (on a.b.c form) and hard coded values to set on those paths.\n\nThis can be useful for example if you want to hard code a namespace or similar on the generated entities."
                          },
                          "map": {
                            "type": "object",
                            "properties": {
                              "rdn": {
                                "type": "string",
                                "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"cn\"."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"cn\"."
                              },
                              "description": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity. Defaults to \"description\"."
                              },
                              "type": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.type field of the entity. Defaults to \"groupType\"."
                              },
                              "displayName": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                              },
                              "email": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity."
                              },
                              "picture": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                              },
                              "memberOf": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The name of the attribute that shall be used for the values of the spec.parent field of the entity. Defaults to \"memberOf\"."
                              },
                              "members": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The name of the attribute that shall be used for the values of the spec.children field of the entity. Defaults to \"member\"."
                              }
                            },
                            "description": "Mappings from well known entity fields, to LDAP attribute names"
                          }
                        },
                        "required": [
                          "dn",
                          "options"
                        ]
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "dn": {
                              "type": "string",
                              "description": "The DN under which groups are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                            },
                            "options": {
                              "type": "object",
                              "properties": {
                                "scope": {
                                  "type": "string",
                                  "enum": [
                                    "base",
                                    "one",
                                    "sub"
                                  ]
                                },
                                "filter": {
                                  "type": "string"
                                },
                                "attributes": {
                                  "anyOf": [
                                    {
                                      "type": "string"
                                    },
                                    {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  ]
                                },
                                "sizeLimit": {
                                  "type": "number"
                                },
                                "timeLimit": {
                                  "type": "number"
                                },
                                "derefAliases": {
                                  "type": "number"
                                },
                                "returnAttributeValues": {
                                  "type": "boolean"
                                },
                                "paged": {
                                  "anyOf": [
                                    {
                                      "type": "boolean"
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "pageSize": {
                                          "type": "number"
                                        },
                                        "pagePause": {
                                          "type": "boolean"
                                        }
                                      }
                                    }
                                  ]
                                }
                              },
                              "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                            },
                            "set": {
                              "type": "object",
                              "additionalProperties": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "additionalProperties": {
                                      "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                                    },
                                    "description": "A type representing all allowed JSON object values."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "length": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "length"
                                    ],
                                    "description": "A type representing all allowed JSON array values."
                                  },
                                  {
                                    "type": [
                                      "number",
                                      "string",
                                      "boolean",
                                      "null"
                                    ],
                                    "description": "A type representing all allowed JSON primitive values."
                                  }
                                ],
                                "description": "A type representing all allowed JSON values."
                              },
                              "description": "JSON paths (on a.b.c form) and hard coded values to set on those paths.\n\nThis can be useful for example if you want to hard code a namespace or similar on the generated entities."
                            },
                            "map": {
                              "type": "object",
                              "properties": {
                                "rdn": {
                                  "type": "string",
                                  "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"cn\"."
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"cn\"."
                                },
                                "description": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity. Defaults to \"description\"."
                                },
                                "type": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the spec.type field of the entity. Defaults to \"groupType\"."
                                },
                                "displayName": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                                },
                                "email": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity."
                                },
                                "picture": {
                                  "type": "string",
                                  "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                                },
                                "memberOf": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "The name of the attribute that shall be used for the values of the spec.parent field of the entity. Defaults to \"memberOf\"."
                                },
                                "members": {
                                  "type": [
                                    "string",
                                    "null"
                                  ],
                                  "description": "The name of the attribute that shall be used for the values of the spec.children field of the entity. Defaults to \"member\"."
                                }
                              },
                              "description": "Mappings from well known entity fields, to LDAP attribute names"
                            }
                          },
                          "required": [
                            "dn",
                            "options"
                          ]
                        }
                      }
                    ],
                    "description": "The settings that govern the reading and interpretation of groups."
                  },
                  "vendor": {
                    "type": "object",
                    "properties": {
                      "dnAttributeName": {
                        "type": "string",
                        "description": "Attribute name for the distinguished name (DN) of an entry,"
                      },
                      "uuidAttributeName": {
                        "type": "string",
                        "description": "Attribute name for the unique identifier (UUID) of an entry,"
                      }
                    },
                    "description": "Configuration for overriding the vendor-specific default attribute names."
                  }
                },
                "required": [
                  "target"
                ],
                "description": "Id of the LdapOrg provider"
              },
              "description": "LdapOrg provider key"
            }
          },
          "description": "List of provider-specific options and attributes"
        },
        "processors": {
          "type": "object",
          "properties": {
            "ldapOrg": {
              "type": "object",
              "properties": {
                "providers": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "description": "The prefix of the target that this matches on, e.g. \"ldaps://ds.example.net\", with no trailing slash."
                      },
                      "bind": {
                        "type": "object",
                        "properties": {
                          "dn": {
                            "type": "string",
                            "description": "The DN of the user to auth as.\n\nE.g. \"uid=ldap-robot,ou=robots,ou=example,dc=example,dc=net\""
                          },
                          "secret": {
                            "type": "string",
                            "description": "The secret of the user to auth as (its password).",
                            "visibility": "secret"
                          }
                        },
                        "required": [
                          "dn",
                          "secret"
                        ],
                        "description": "The settings to use for the bind command. If none are specified, the bind command is not issued."
                      },
                      "tls": {
                        "type": "object",
                        "properties": {
                          "rejectUnauthorized": {
                            "type": "boolean"
                          }
                        },
                        "description": "TLS settings"
                      },
                      "users": {
                        "type": "object",
                        "properties": {
                          "dn": {
                            "type": "string",
                            "description": "The DN under which users are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                          },
                          "options": {
                            "type": "object",
                            "properties": {
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "base",
                                  "one",
                                  "sub"
                                ]
                              },
                              "filter": {
                                "type": "string"
                              },
                              "attributes": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                ]
                              },
                              "sizeLimit": {
                                "type": "number"
                              },
                              "timeLimit": {
                                "type": "number"
                              },
                              "derefAliases": {
                                "type": "number"
                              },
                              "returnAttributeValues": {
                                "type": "boolean"
                              },
                              "paged": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "pageSize": {
                                        "type": "number"
                                      },
                                      "pagePause": {
                                        "type": "boolean"
                                      }
                                    }
                                  }
                                ]
                              }
                            },
                            "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                          },
                          "set": {
                            "type": "object",
                            "additionalProperties": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "additionalProperties": {
                                    "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                                  },
                                  "description": "A type representing all allowed JSON object values."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "length": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "length"
                                  ],
                                  "description": "A type representing all allowed JSON array values."
                                },
                                {
                                  "type": [
                                    "number",
                                    "string",
                                    "boolean",
                                    "null"
                                  ],
                                  "description": "A type representing all allowed JSON primitive values."
                                }
                              ],
                              "description": "A type representing all allowed JSON values."
                            },
                            "description": "JSON paths (on a.b.c form) and hard coded values to set on those paths.\n\nThis can be useful for example if you want to hard code a"
                          },
                          "map": {
                            "type": "object",
                            "properties": {
                              "rdn": {
                                "type": "string",
                                "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"uid\"."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"uid\"."
                              },
                              "description": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity."
                              },
                              "displayName": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                              },
                              "email": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity. Defaults to \"mail\"."
                              },
                              "picture": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                              },
                              "memberOf": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The name of the attribute that shall be used for the values of the spec.memberOf field of the entity. Defaults to \"memberOf\"."
                              }
                            },
                            "description": "Mappings from well known entity fields, to LDAP attribute names"
                          }
                        },
                        "required": [
                          "dn",
                          "options"
                        ],
                        "description": "The settings that govern the reading and interpretation of users."
                      },
                      "groups": {
                        "type": "object",
                        "properties": {
                          "dn": {
                            "type": "string",
                            "description": "The DN under which groups are stored.\n\nE.g. \"ou=people,ou=example,dc=example,dc=net\""
                          },
                          "options": {
                            "type": "object",
                            "properties": {
                              "scope": {
                                "type": "string",
                                "enum": [
                                  "base",
                                  "one",
                                  "sub"
                                ]
                              },
                              "filter": {
                                "type": "string"
                              },
                              "attributes": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    }
                                  }
                                ]
                              },
                              "sizeLimit": {
                                "type": "number"
                              },
                              "timeLimit": {
                                "type": "number"
                              },
                              "derefAliases": {
                                "type": "number"
                              },
                              "returnAttributeValues": {
                                "type": "boolean"
                              },
                              "paged": {
                                "anyOf": [
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "pageSize": {
                                        "type": "number"
                                      },
                                      "pagePause": {
                                        "type": "boolean"
                                      }
                                    }
                                  }
                                ]
                              }
                            },
                            "description": "The search options to use. The default is scope \"one\" and attributes \"*\" and \"+\".\n\nIt is common to want to specify a filter, to narrow down the set of matching items."
                          },
                          "set": {
                            "type": "object",
                            "additionalProperties": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "additionalProperties": {
                                    "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
                                  },
                                  "description": "A type representing all allowed JSON object values."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "length": {
                                      "type": "number"
                                    }
                                  },
                                  "required": [
                                    "length"
                                  ],
                                  "description": "A type representing all allowed JSON array values."
                                },
                                {
                                  "type": [
                                    "number",
                                    "string",
                                    "boolean",
                                    "null"
                                  ],
                                  "description": "A type representing all allowed JSON primitive values."
                                }
                              ],
                              "description": "A type representing all allowed JSON values."
                            },
                            "default": "false\nJSON paths (on a.b.c form) and hard coded values to set on those\npaths.\n\nThis can be useful for example if you want to hard code a\nnamespace or similar on the generated entities."
                          },
                          "map": {
                            "type": "object",
                            "properties": {
                              "rdn": {
                                "type": "string",
                                "description": "The name of the attribute that holds the relative distinguished name of each entry. Defaults to \"cn\"."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the metadata.name field of the entity. Defaults to \"cn\"."
                              },
                              "description": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the metadata.description field of the entity. Defaults to \"description\"."
                              },
                              "type": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.type field of the entity. Defaults to \"groupType\"."
                              },
                              "displayName": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.displayName field of the entity. Defaults to \"cn\"."
                              },
                              "email": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.email field of the entity."
                              },
                              "picture": {
                                "type": "string",
                                "description": "The name of the attribute that shall be used for the value of the spec.profile.picture field of the entity."
                              },
                              "memberOf": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The name of the attribute that shall be used for the values of the spec.parent field of the entity. Defaults to \"memberOf\"."
                              },
                              "members": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The name of the attribute that shall be used for the values of the spec.children field of the entity. Defaults to \"member\"."
                              }
                            },
                            "description": "Mappings from well known entity fields, to LDAP attribute names"
                          }
                        },
                        "required": [
                          "dn",
                          "options"
                        ],
                        "description": "The settings that govern the reading and interpretation of groups."
                      },
                      "vendor": {
                        "type": "object",
                        "properties": {
                          "dnAttributeName": {
                            "type": "string",
                            "description": "Attribute name for the distinguished name (DN) of an entry,"
                          },
                          "uuidAttributeName": {
                            "type": "string",
                            "description": "Attribute name for the unique identifier (UUID) of an entry,"
                          }
                        },
                        "description": "Configuration for overriding the vendor-specific default attribute names."
                      }
                    },
                    "required": [
                      "target",
                      "users",
                      "groups"
                    ]
                  },
                  "description": "The configuration parameters for each single LDAP provider."
                }
              },
              "required": [
                "providers"
              ],
              "description": "LdapOrgReaderProcessor configuration"
            }
          },
          "description": "List of processor-specific options and attributes",
          "deprecated": "This exists for backwards compatibility only and will be removed in the future."
        }
      },
      "description": "Configuration options for the catalog plugin."
    }
  },
  "definitions": {
    "b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/b7b64955ce091dab421cda4740fb6491f474464f419d1ec25311c9c2589b4d7c-alias--1015-1150--0-11512040920831"
          },
          "description": "A type representing all allowed JSON object values."
        },
        {
          "type": "object",
          "properties": {
            "length": {
              "type": "number"
            }
          },
          "required": [
            "length"
          ],
          "description": "A type representing all allowed JSON array values."
        },
        {
          "type": [
            "number",
            "string",
            "boolean",
            "null"
          ],
          "description": "A type representing all allowed JSON primitive values."
        }
      ],
      "description": "A type representing all allowed JSON values."
    }
  }
}
