{
  "properties": {
    "spec": {
      "properties": {
        "booleanExpr": {
          "nullable": true,
          "type": "string"
        },
        "configs": {
          "items": {
            "properties": {
              "apiKeyAuth": {
                "properties": {
                  "aerospikeApikeyStorage": {
                    "properties": {
                      "allowInsecure": {
                        "type": "boolean"
                      },
                      "batchSize": {
                        "format": "int32",
                        "type": "integer"
                      },
                      "certPath": {
                        "type": "string"
                      },
                      "commitAll": {
                        "format": "int32",
                        "type": "integer"
                      },
                      "commitMaster": {
                        "format": "int32",
                        "type": "integer"
                      },
                      "hostname": {
                        "type": "string"
                      },
                      "keyPath": {
                        "type": "string"
                      },
                      "namespace": {
                        "type": "string"
                      },
                      "nodeTlsName": {
                        "type": "string"
                      },
                      "port": {
                        "format": "int32",
                        "type": "integer"
                      },
                      "readModeAp": {
                        "properties": {
                          "readModeApAll": {
                            "format": "int32",
                            "type": "integer"
                          },
                          "readModeApOne": {
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "readModeSc": {
                        "properties": {
                          "readModeScAllowUnavailable": {
                            "format": "int32",
                            "type": "integer"
                          },
                          "readModeScLinearize": {
                            "format": "int32",
                            "type": "integer"
                          },
                          "readModeScReplica": {
                            "format": "int32",
                            "type": "integer"
                          },
                          "readModeScSession": {
                            "format": "int32",
                            "type": "integer"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "rootCaPath": {
                        "type": "string"
                      },
                      "set": {
                        "type": "string"
                      },
                      "tlsCurveGroups": {
                        "items": {
                          "properties": {
                            "curveP256": {
                              "format": "int32",
                              "type": "integer"
                            },
                            "curveP384": {
                              "format": "int32",
                              "type": "integer"
                            },
                            "curveP521": {
                              "format": "int32",
                              "type": "integer"
                            },
                            "x25519": {
                              "format": "int32",
                              "type": "integer"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "type": "array"
                      },
                      "tlsVersion": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "apiKeySecretRefs": {
                    "items": {
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "namespace": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "headerName": {
                    "type": "string"
                  },
                  "headersFromMetadata": {
                    "additionalProperties": {
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "required": {
                          "type": "boolean"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "object"
                  },
                  "headersFromMetadataEntry": {
                    "additionalProperties": {
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "required": {
                          "type": "boolean"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "object"
                  },
                  "k8sSecretApikeyStorage": {
                    "properties": {
                      "apiKeySecretRefs": {
                        "items": {
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "namespace": {
                              "type": "string"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "type": "array"
                      },
                      "labelSelector": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "type": "object"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "labelSelector": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "type": "object"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "basicAuth": {
                "properties": {
                  "apr": {
                    "properties": {
                      "users": {
                        "additionalProperties": {
                          "properties": {
                            "hashedPassword": {
                              "type": "string"
                            },
                            "salt": {
                              "type": "string"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "type": "object"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "realm": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "jwt": {
                "maxProperties": 0,
                "type": "object"
              },
              "ldap": {
                "properties": {
                  "address": {
                    "type": "string"
                  },
                  "allowedGroups": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "disableGroupChecking": {
                    "type": "boolean"
                  },
                  "groupLookupSettings": {
                    "properties": {
                      "checkGroupsWithServiceAccount": {
                        "type": "boolean"
                      },
                      "credentialsSecretRef": {
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "namespace": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "membershipAttributeName": {
                    "type": "string"
                  },
                  "pool": {
                    "properties": {
                      "initialSize": {
                        "maximum": 4294967295,
                        "minimum": 0,
                        "nullable": true,
                        "type": "integer"
                      },
                      "maxSize": {
                        "maximum": 4294967295,
                        "minimum": 0,
                        "nullable": true,
                        "type": "integer"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "searchFilter": {
                    "type": "string"
                  },
                  "userDnTemplate": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "name": {
                "nullable": true,
                "type": "string"
              },
              "oauth": {
                "properties": {
                  "appUrl": {
                    "type": "string"
                  },
                  "authEndpointQueryParams": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "type": "object"
                  },
                  "callbackPath": {
                    "type": "string"
                  },
                  "clientId": {
                    "type": "string"
                  },
                  "clientSecretRef": {
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "namespace": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "issuerUrl": {
                    "type": "string"
                  },
                  "scopes": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "oauth2": {
                "properties": {
                  "accessTokenValidation": {
                    "properties": {
                      "cacheTimeout": {
                        "type": "string"
                      },
                      "introspection": {
                        "properties": {
                          "clientId": {
                            "type": "string"
                          },
                          "clientSecretRef": {
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "namespace": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "introspectionUrl": {
                            "type": "string"
                          },
                          "userIdAttributeName": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "introspectionUrl": {
                        "type": "string"
                      },
                      "jwt": {
                        "properties": {
                          "issuer": {
                            "type": "string"
                          },
                          "localJwks": {
                            "properties": {
                              "inlineString": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "remoteJwks": {
                            "properties": {
                              "refreshInterval": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "requiredScopes": {
                        "properties": {
                          "scope": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "userinfoUrl": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "oauth2": {
                    "properties": {
                      "afterLogoutUrl": {
                        "type": "string"
                      },
                      "appUrl": {
                        "type": "string"
                      },
                      "authEndpoint": {
                        "type": "string"
                      },
                      "authEndpointQueryParams": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "type": "object"
                      },
                      "callbackPath": {
                        "type": "string"
                      },
                      "clientId": {
                        "type": "string"
                      },
                      "clientSecretRef": {
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "namespace": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "logoutPath": {
                        "type": "string"
                      },
                      "revocationEndpoint": {
                        "type": "string"
                      },
                      "scopes": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "session": {
                        "properties": {
                          "cookie": {
                            "properties": {
                              "allowRefreshing": {
                                "nullable": true,
                                "type": "boolean"
                              },
                              "keyPrefix": {
                                "type": "string"
                              },
                              "targetDomain": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "cookieOptions": {
                            "properties": {
                              "domain": {
                                "type": "string"
                              },
                              "httpOnly": {
                                "nullable": true,
                                "type": "boolean"
                              },
                              "maxAge": {
                                "maximum": 4294967295,
                                "minimum": 0,
                                "nullable": true,
                                "type": "integer"
                              },
                              "notSecure": {
                                "type": "boolean"
                              },
                              "path": {
                                "nullable": true,
                                "type": "string"
                              },
                              "sameSite": {
                                "type": "string",
                                "x-kubernetes-int-or-string": true
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "failOnFetchFailure": {
                            "type": "boolean"
                          },
                          "redis": {
                            "properties": {
                              "allowRefreshing": {
                                "nullable": true,
                                "type": "boolean"
                              },
                              "cookieName": {
                                "type": "string"
                              },
                              "headerName": {
                                "type": "string"
                              },
                              "keyPrefix": {
                                "type": "string"
                              },
                              "options": {
                                "properties": {
                                  "db": {
                                    "format": "int32",
                                    "type": "integer"
                                  },
                                  "host": {
                                    "type": "string"
                                  },
                                  "poolSize": {
                                    "format": "int32",
                                    "type": "integer"
                                  },
                                  "socketType": {
                                    "type": "string",
                                    "x-kubernetes-int-or-string": true
                                  },
                                  "tlsCertMountPath": {
                                    "type": "string"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "preExpiryBuffer": {
                                "type": "string"
                              },
                              "targetDomain": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "tokenEndpoint": {
                        "type": "string"
                      },
                      "tokenEndpointQueryParams": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "type": "object"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "oidcAuthorizationCode": {
                    "properties": {
                      "afterLogoutUrl": {
                        "type": "string"
                      },
                      "appUrl": {
                        "type": "string"
                      },
                      "authEndpointQueryParams": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "type": "object"
                      },
                      "autoMapFromMetadata": {
                        "properties": {
                          "namespace": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "callbackPath": {
                        "type": "string"
                      },
                      "clientId": {
                        "type": "string"
                      },
                      "clientSecretRef": {
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "namespace": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "discoveryOverride": {
                        "properties": {
                          "authEndpoint": {
                            "type": "string"
                          },
                          "authMethods": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "claims": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "endSessionEndpoint": {
                            "type": "string"
                          },
                          "idTokenAlgs": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "jwksUri": {
                            "type": "string"
                          },
                          "responseTypes": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "revocationEndpoint": {
                            "type": "string"
                          },
                          "scopes": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "subjects": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "tokenEndpoint": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "discoveryPollInterval": {
                        "type": "string"
                      },
                      "endSessionProperties": {
                        "properties": {
                          "methodType": {
                            "type": "string",
                            "x-kubernetes-int-or-string": true
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "headers": {
                        "properties": {
                          "accessTokenHeader": {
                            "type": "string"
                          },
                          "idTokenHeader": {
                            "type": "string"
                          },
                          "useBearerSchemaForAuthorization": {
                            "nullable": true,
                            "type": "boolean"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "issuerUrl": {
                        "type": "string"
                      },
                      "jwksCacheRefreshPolicy": {
                        "properties": {
                          "always": {
                            "maxProperties": 0,
                            "type": "object"
                          },
                          "maxIdpReqPerPollingInterval": {
                            "format": "int32",
                            "type": "integer"
                          },
                          "never": {
                            "maxProperties": 0,
                            "type": "object"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "logoutPath": {
                        "type": "string"
                      },
                      "parseCallbackPathAsRegex": {
                        "type": "boolean"
                      },
                      "scopes": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "session": {
                        "properties": {
                          "cookie": {
                            "properties": {
                              "allowRefreshing": {
                                "nullable": true,
                                "type": "boolean"
                              },
                              "keyPrefix": {
                                "type": "string"
                              },
                              "targetDomain": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "cookieOptions": {
                            "properties": {
                              "domain": {
                                "type": "string"
                              },
                              "httpOnly": {
                                "nullable": true,
                                "type": "boolean"
                              },
                              "maxAge": {
                                "maximum": 4294967295,
                                "minimum": 0,
                                "nullable": true,
                                "type": "integer"
                              },
                              "notSecure": {
                                "type": "boolean"
                              },
                              "path": {
                                "nullable": true,
                                "type": "string"
                              },
                              "sameSite": {
                                "type": "string",
                                "x-kubernetes-int-or-string": true
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "failOnFetchFailure": {
                            "type": "boolean"
                          },
                          "redis": {
                            "properties": {
                              "allowRefreshing": {
                                "nullable": true,
                                "type": "boolean"
                              },
                              "cookieName": {
                                "type": "string"
                              },
                              "headerName": {
                                "type": "string"
                              },
                              "keyPrefix": {
                                "type": "string"
                              },
                              "options": {
                                "properties": {
                                  "db": {
                                    "format": "int32",
                                    "type": "integer"
                                  },
                                  "host": {
                                    "type": "string"
                                  },
                                  "poolSize": {
                                    "format": "int32",
                                    "type": "integer"
                                  },
                                  "socketType": {
                                    "type": "string",
                                    "x-kubernetes-int-or-string": true
                                  },
                                  "tlsCertMountPath": {
                                    "type": "string"
                                  }
                                },
                                "type": "object",
                                "additionalProperties": false
                              },
                              "preExpiryBuffer": {
                                "type": "string"
                              },
                              "targetDomain": {
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "sessionIdHeaderName": {
                        "type": "string"
                      },
                      "tokenEndpointQueryParams": {
                        "additionalProperties": {
                          "type": "string"
                        },
                        "type": "object"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "opaAuth": {
                "properties": {
                  "modules": {
                    "items": {
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "namespace": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "options": {
                    "properties": {
                      "fastInputConversion": {
                        "type": "boolean"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "query": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "passThroughAuth": {
                "properties": {
                  "config": {
                    "type": "object",
                    "x-kubernetes-preserve-unknown-fields": true
                  },
                  "failureModeAllow": {
                    "type": "boolean"
                  },
                  "grpc": {
                    "properties": {
                      "address": {
                        "type": "string"
                      },
                      "connectionTimeout": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "http": {
                    "properties": {
                      "connectionTimeout": {
                        "type": "string"
                      },
                      "request": {
                        "properties": {
                          "allowedHeaders": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "headersToAdd": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          },
                          "passThroughBody": {
                            "type": "boolean"
                          },
                          "passThroughFilterMetadata": {
                            "type": "boolean"
                          },
                          "passThroughState": {
                            "type": "boolean"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "response": {
                        "properties": {
                          "allowedClientHeadersOnDenied": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "allowedUpstreamHeaders": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "readStateFromResponse": {
                            "type": "boolean"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "url": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "pluginAuth": {
                "properties": {
                  "config": {
                    "type": "object",
                    "x-kubernetes-preserve-unknown-fields": true
                  },
                  "exportedSymbolName": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "pluginFileName": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "failOnRedirect": {
          "type": "boolean"
        },
        "namespacedStatuses": {
          "properties": {
            "statuses": {
              "additionalProperties": {
                "type": "object",
                "x-kubernetes-preserve-unknown-fields": true
              },
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "default": {},
      "properties": {
        "statuses": {
          "default": {},
          "type": "object",
          "x-kubernetes-preserve-unknown-fields": true
        }
      },
      "type": "object",
      "x-kubernetes-preserve-unknown-fields": true,
      "additionalProperties": false
    }
  },
  "type": "object"
}
