{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "apiVersion": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "asNumber": {
          "format": "int32",
          "type": "integer"
        },
        "filters": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "keepOriginalNextHop": {
          "type": "boolean"
        },
        "localWorkloadSelector": {
          "type": "string"
        },
        "maxRestartTime": {
          "type": "string"
        },
        "nextHopMode": {
          "allOf": [
            {
              "enum": [
                "Auto",
                "Self",
                "Keep"
              ]
            },
            {
              "enum": [
                "Auto",
                "Self",
                "Keep"
              ]
            }
          ],
          "type": "string"
        },
        "node": {
          "type": "string"
        },
        "nodeSelector": {
          "type": "string"
        },
        "numAllowedLocalASNumbers": {
          "format": "int32",
          "type": "integer"
        },
        "password": {
          "properties": {
            "secretKeyRef": {
              "properties": {
                "key": {
                  "type": "string"
                },
                "name": {
                  "default": "",
                  "type": "string"
                },
                "optional": {
                  "type": "boolean"
                }
              },
              "required": [
                "key"
              ],
              "type": "object",
              "x-kubernetes-map-type": "atomic"
            }
          },
          "type": "object"
        },
        "peerIP": {
          "type": "string"
        },
        "peerSelector": {
          "type": "string"
        },
        "reachableBy": {
          "type": "string"
        },
        "reversePeering": {
          "enum": [
            "Auto",
            "Manual"
          ],
          "type": "string"
        },
        "sourceAddress": {
          "type": "string"
        },
        "ttlSecurity": {
          "type": "integer"
        }
      },
      "type": "object"
    }
  },
  "type": "object"
}
