{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "apiVersion": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "featureGroupRules": {
          "items": {
            "properties": {
              "matchAny": {
                "items": {
                  "properties": {
                    "matchFeatures": {
                      "items": {
                        "properties": {
                          "feature": {
                            "type": "string"
                          },
                          "matchExpressions": {
                            "additionalProperties": {
                              "properties": {
                                "op": {
                                  "enum": [
                                    "In",
                                    "NotIn",
                                    "InRegexp",
                                    "Exists",
                                    "DoesNotExist",
                                    "Gt",
                                    "Ge",
                                    "Lt",
                                    "Le",
                                    "GtLt",
                                    "GeLe",
                                    "IsTrue",
                                    "IsFalse"
                                  ],
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                },
                                "value": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": "array"
                                }
                              },
                              "required": [
                                "op"
                              ],
                              "type": "object"
                            },
                            "type": "object"
                          },
                          "matchName": {
                            "properties": {
                              "op": {
                                "enum": [
                                  "In",
                                  "NotIn",
                                  "InRegexp",
                                  "Exists",
                                  "DoesNotExist",
                                  "Gt",
                                  "Ge",
                                  "Lt",
                                  "Le",
                                  "GtLt",
                                  "GeLe",
                                  "IsTrue",
                                  "IsFalse"
                                ],
                                "type": "string"
                              },
                              "type": {
                                "type": "string"
                              },
                              "value": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              }
                            },
                            "required": [
                              "op"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "feature"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "matchFeatures"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "matchFeatures": {
                "items": {
                  "properties": {
                    "feature": {
                      "type": "string"
                    },
                    "matchExpressions": {
                      "additionalProperties": {
                        "properties": {
                          "op": {
                            "enum": [
                              "In",
                              "NotIn",
                              "InRegexp",
                              "Exists",
                              "DoesNotExist",
                              "Gt",
                              "Ge",
                              "Lt",
                              "Le",
                              "GtLt",
                              "GeLe",
                              "IsTrue",
                              "IsFalse"
                            ],
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          },
                          "value": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          }
                        },
                        "required": [
                          "op"
                        ],
                        "type": "object"
                      },
                      "type": "object"
                    },
                    "matchName": {
                      "properties": {
                        "op": {
                          "enum": [
                            "In",
                            "NotIn",
                            "InRegexp",
                            "Exists",
                            "DoesNotExist",
                            "Gt",
                            "Ge",
                            "Lt",
                            "Le",
                            "GtLt",
                            "GeLe",
                            "IsTrue",
                            "IsFalse"
                          ],
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "value": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "required": [
                        "op"
                      ],
                      "type": "object"
                    }
                  },
                  "required": [
                    "feature"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "name": {
                "type": "string"
              },
              "vars": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "varsTemplate": {
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "featureGroupRules"
      ],
      "type": "object"
    },
    "status": {
      "properties": {
        "nodes": {
          "items": {
            "properties": {
              "name": {
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object"
          },
          "type": "array",
          "x-kubernetes-list-map-keys": [
            "name"
          ],
          "x-kubernetes-list-type": "map"
        }
      },
      "type": "object"
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
