{
  "description": "LVMNode records information about all lvm volume groups available\nin a node. In general, the openebs node-agent creates the LVMNode\nobject \u0026 periodically synchronizing the volume groups available in the node.\nLVMNode has an owner reference pointing to the corresponding node object.",
  "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"
      ]
    },
    "volumeGroups": {
      "items": {
        "additionalProperties": false,
        "description": "VolumeGroup specifies attributes of a given vg exists on node.",
        "properties": {
          "allocationPolicy": {
            "description": "AllocationPolicy indicates the volume group allocation\npolicy.\nAllocationPolicy has the following mapping between\nint and string for its value:\n[-1: \"\", 0: \"normal\", 1: \"contiguous\", 2: \"cling\", 3: \"anywhere\", 4: \"inherited\"]",
            "type": "integer"
          },
          "free": {
            "description": "Free specifies the available capacity of volume group.",
            "oneOf": [
              {
                "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                "type": "string"
              },
              {
                "type": "integer"
              }
            ],
            "x-kubernetes-int-or-string": true
          },
          "lvCount": {
            "description": "LVCount denotes total number of logical volumes in\nvolume group.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "maxLv": {
            "description": "MaxLV denotes maximum number of logical volumes allowed\nin volume group or 0 if unlimited.",
            "format": "int32",
            "type": "integer"
          },
          "maxPv": {
            "description": "MaxPV denotes maximum number of physical volumes allowed\nin volume group or 0 if unlimited.",
            "format": "int32",
            "type": "integer"
          },
          "metadataCount": {
            "description": "MetadataCount denotes number of metadata areas on the\nvolume group.",
            "format": "int32",
            "type": "integer"
          },
          "metadataFree": {
            "description": "MetadataFree specifies the available metadata area space\nfor the volume group",
            "oneOf": [
              {
                "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                "type": "string"
              },
              {
                "type": "integer"
              }
            ],
            "x-kubernetes-int-or-string": true
          },
          "metadataSize": {
            "description": "MetadataSize specifies size of smallest metadata area\nfor the volume group",
            "oneOf": [
              {
                "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                "type": "string"
              },
              {
                "type": "integer"
              }
            ],
            "x-kubernetes-int-or-string": true
          },
          "metadataUsedCount": {
            "description": "MetadataUsedCount denotes number of used metadata areas in\nvolume group",
            "format": "int32",
            "type": "integer"
          },
          "missingPvCount": {
            "description": "MissingPVCount denotes number of physical volumes in\nvolume group which are missing.",
            "format": "int32",
            "type": "integer"
          },
          "name": {
            "description": "Name of the lvm volume group.",
            "minLength": 1,
            "type": "string"
          },
          "permissions": {
            "description": "Permission indicates the volume group permission\nwhich can be writable or read-only.\nPermission has the following mapping between\nint and string for its value:\n[-1: \"\", 0: \"writeable\", 1: \"read-only\"]",
            "type": "integer"
          },
          "pvCount": {
            "description": "PVCount denotes total number of physical volumes\nconstituting the volume group.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "size": {
            "description": "Size specifies the total size of volume group.",
            "oneOf": [
              {
                "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                "type": "string"
              },
              {
                "type": "integer"
              }
            ],
            "x-kubernetes-int-or-string": true
          },
          "snapCount": {
            "description": "SnapCount denotes number of snapshots in volume group.",
            "format": "int32",
            "type": "integer"
          },
          "thinPools": {
            "description": "ThinPools hosted by the volume group.",
            "items": {
              "additionalProperties": false,
              "description": "ThinPool LV present on VG.",
              "properties": {
                "free": {
                  "description": "Free capacity of thinpool. In bytes, if no unit specified.",
                  "oneOf": [
                    {
                      "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                      "type": "string"
                    },
                    {
                      "type": "integer"
                    }
                  ],
                  "x-kubernetes-int-or-string": true
                },
                "name": {
                  "description": "Name of the thinpool lv.",
                  "type": "string"
                },
                "size": {
                  "description": "Size of the thinpool lv. In bytes, if no unit specified.",
                  "oneOf": [
                    {
                      "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                      "type": "string"
                    },
                    {
                      "type": "integer"
                    }
                  ],
                  "x-kubernetes-int-or-string": true
                }
              },
              "required": [
                "free",
                "name",
                "size"
              ],
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "uuid": {
            "description": "UUID denotes a unique identity of a lvm volume group.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "allocationPolicy",
          "free",
          "lvCount",
          "maxLv",
          "maxPv",
          "metadataCount",
          "metadataFree",
          "metadataSize",
          "metadataUsedCount",
          "missingPvCount",
          "name",
          "permissions",
          "pvCount",
          "size",
          "snapCount",
          "uuid"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "volumeGroups"
  ],
  "type": "object"
}