{
  "description": "ConsoleLink is an extension for customizing OpenShift web console links.\n\nCompatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer).",
  "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"
    },
    "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"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "ConsoleLinkSpec is the desired console link configuration.",
      "properties": {
        "applicationMenu": {
          "description": "applicationMenu holds information about section and icon used for the link in the\napplication menu, and it is applicable only when location is set to ApplicationMenu.",
          "properties": {
            "imageURL": {
              "description": "imageURL is the URL for the icon used in front of the link in the application menu.\nThe URL must be an HTTPS URL or a Data URI. The image should be square and will be shown at 24x24 pixels.",
              "type": "string"
            },
            "section": {
              "description": "section is the section of the application menu in which the link should appear.\nThis can be any text that will appear as a subheading in the application menu dropdown.\nA new section will be created if the text does not match text of an existing section.",
              "type": "string"
            }
          },
          "required": [
            "section"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "href": {
          "description": "href is the absolute URL for the link. Must use https:// for web URLs or mailto: for email links.",
          "pattern": "^(https://|mailto:)",
          "type": "string"
        },
        "location": {
          "description": "location determines which location in the console the link will be appended to (ApplicationMenu, HelpMenu, UserMenu, NamespaceDashboard).",
          "pattern": "^(ApplicationMenu|HelpMenu|UserMenu|NamespaceDashboard)$",
          "type": "string"
        },
        "namespaceDashboard": {
          "description": "namespaceDashboard holds information about namespaces in which the dashboard link should\nappear, and it is applicable only when location is set to NamespaceDashboard.\nIf not specified, the link will appear in all namespaces.",
          "properties": {
            "namespaceSelector": {
              "description": "namespaceSelector is used to select the Namespaces that should contain dashboard link by label.\nIf the namespace labels match, dashboard link will be shown for the namespaces.",
              "properties": {
                "matchExpressions": {
                  "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
                  "items": {
                    "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
                    "properties": {
                      "key": {
                        "description": "key is the label key that the selector applies to.",
                        "type": "string"
                      },
                      "operator": {
                        "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
                        "type": "string"
                      },
                      "values": {
                        "description": "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array",
                        "x-kubernetes-list-type": "atomic"
                      }
                    },
                    "required": [
                      "key",
                      "operator"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array",
                  "x-kubernetes-list-type": "atomic"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
                  "type": "object"
                }
              },
              "type": "object",
              "x-kubernetes-map-type": "atomic",
              "additionalProperties": false
            },
            "namespaces": {
              "description": "namespaces is an array of namespace names in which the dashboard link should appear.",
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "text": {
          "description": "text is the display text for the link",
          "type": "string"
        }
      },
      "required": [
        "href",
        "location",
        "text"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
