{
  "description": "BGPPeer is the Schema for the peers API.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "description": "BGPPeerSpec defines the desired state of Peer.",
      "properties": {
        "bfdProfile": {
          "type": [
            "string",
            "null"
          ]
        },
        "ebgpMultiHop": {
          "description": "EBGP peer is multi-hops away",
          "type": [
            "boolean",
            "null"
          ]
        },
        "holdTime": {
          "description": "Requested BGP hold time, per RFC4271.",
          "type": [
            "string",
            "null"
          ]
        },
        "keepaliveTime": {
          "description": "Requested BGP keepalive time, per RFC4271.",
          "type": [
            "string",
            "null"
          ]
        },
        "myASN": {
          "description": "AS number to use for the local end of the session.",
          "format": "int32",
          "maximum": 4294967295,
          "minimum": 0,
          "type": "integer"
        },
        "nodeSelectors": {
          "description": "Only connect to this peer on nodes that match one of these\nselectors.",
          "items": {
            "additionalProperties": false,
            "properties": {
              "matchExpressions": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "key": {
                      "type": "string"
                    },
                    "operator": {
                      "type": "string"
                    },
                    "values": {
                      "items": {
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  },
                  "required": [
                    "key",
                    "operator",
                    "values"
                  ],
                  "type": "object"
                },
                "type": [
                  "array",
                  "null"
                ]
              },
              "matchLabels": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": [
                  "object",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "password": {
          "description": "Authentication password for routers enforcing TCP MD5 authenticated sessions",
          "type": [
            "string",
            "null"
          ]
        },
        "peerASN": {
          "description": "AS number to expect from the remote end of the session.",
          "format": "int32",
          "maximum": 4294967295,
          "minimum": 0,
          "type": "integer"
        },
        "peerAddress": {
          "description": "Address to dial when establishing the session.",
          "type": "string"
        },
        "peerPort": {
          "description": "Port to dial when establishing the session.",
          "maximum": 16384,
          "minimum": 0,
          "type": [
            "integer",
            "null"
          ]
        },
        "routerID": {
          "description": "BGP router ID to advertise to the peer",
          "type": [
            "string",
            "null"
          ]
        },
        "sourceAddress": {
          "description": "Source address to use when establishing the session.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "myASN",
        "peerASN",
        "peerAddress"
      ],
      "type": [
        "object",
        "null"
      ]
    },
    "status": {
      "description": "BGPPeerStatus defines the observed state of Peer.",
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}