{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "auth": {
      "type": "object",
      "properties": {
        "providers": {
          "type": "object",
          "properties": {
            "oauth2": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "clientId": {
                    "type": "string"
                  },
                  "clientSecret": {
                    "type": "string",
                    "visibility": "secret"
                  },
                  "authorizationUrl": {
                    "type": "string"
                  },
                  "tokenUrl": {
                    "type": "string"
                  },
                  "scope": {
                    "type": "string",
                    "deprecated": "use `additionalScopes` instead"
                  },
                  "additionalScopes": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    ]
                  },
                  "disableRefresh": {
                    "type": "boolean"
                  },
                  "includeBasicAuth": {
                    "type": "boolean"
                  },
                  "signIn": {
                    "type": "object",
                    "properties": {
                      "resolvers": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "resolver": {
                                  "type": "string",
                                  "const": "usernameMatchingUserEntityName"
                                },
                                "dangerouslyAllowSignInWithoutUserInCatalog": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "resolver"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "resolver": {
                                  "type": "string",
                                  "const": "emailLocalPartMatchingUserEntityName"
                                },
                                "allowedDomains": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "dangerouslyAllowSignInWithoutUserInCatalog": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "resolver"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "resolver": {
                                  "type": "string",
                                  "const": "emailMatchingUserEntityProfileEmail"
                                },
                                "dangerouslyAllowSignInWithoutUserInCatalog": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "resolver"
                              ]
                            }
                          ]
                        }
                      }
                    },
                    "required": [
                      "resolvers"
                    ]
                  },
                  "sessionDuration": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "years": {
                            "type": "number"
                          },
                          "months": {
                            "type": "number"
                          },
                          "weeks": {
                            "type": "number"
                          },
                          "days": {
                            "type": "number"
                          },
                          "hours": {
                            "type": "number"
                          },
                          "minutes": {
                            "type": "number"
                          },
                          "seconds": {
                            "type": "number"
                          },
                          "milliseconds": {
                            "type": "number"
                          }
                        },
                        "description": "Human friendly durations object."
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "clientId",
                  "clientSecret",
                  "authorizationUrl",
                  "tokenUrl"
                ]
              },
              "visibility": "frontend"
            }
          }
        }
      }
    }
  }
}
