{
  "properties": {
    "apiVersion": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "persistentVolumeClaimSpec": {
          "properties": {
            "accessModes": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "atomic"
            },
            "dataSource": {
              "properties": {
                "apiGroup": {
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "name"
              ],
              "type": "object",
              "x-kubernetes-map-type": "atomic",
              "additionalProperties": false
            },
            "dataSourceRef": {
              "properties": {
                "apiGroup": {
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "resources": {
              "properties": {
                "limits": {
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                    "x-kubernetes-int-or-string": true
                  },
                  "type": "object"
                },
                "requests": {
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "string"
                      }
                    ],
                    "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                    "x-kubernetes-int-or-string": true
                  },
                  "type": "object"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "selector": {
              "properties": {
                "matchExpressions": {
                  "items": {
                    "properties": {
                      "key": {
                        "type": "string"
                      },
                      "operator": {
                        "type": "string"
                      },
                      "values": {
                        "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"
                  },
                  "type": "object"
                }
              },
              "type": "object",
              "x-kubernetes-map-type": "atomic",
              "additionalProperties": false
            },
            "storageClassName": {
              "type": "string"
            },
            "volumeAttributesClassName": {
              "type": "string"
            },
            "volumeMode": {
              "type": "string"
            },
            "volumeName": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "persistentVolumeSpec": {
          "properties": {
            "accessModes": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "atomic"
            },
            "awsElasticBlockStore": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "partition": {
                  "format": "int32",
                  "type": "integer"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "volumeID": {
                  "type": "string"
                }
              },
              "required": [
                "volumeID"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "azureDisk": {
              "properties": {
                "cachingMode": {
                  "type": "string"
                },
                "diskName": {
                  "type": "string"
                },
                "diskURI": {
                  "type": "string"
                },
                "fsType": {
                  "default": "ext4",
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "readOnly": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "diskName",
                "diskURI"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "azureFile": {
              "properties": {
                "readOnly": {
                  "type": "boolean"
                },
                "secretName": {
                  "type": "string"
                },
                "secretNamespace": {
                  "type": "string"
                },
                "shareName": {
                  "type": "string"
                }
              },
              "required": [
                "secretName",
                "shareName"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "capacity": {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ],
                "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
                "x-kubernetes-int-or-string": true
              },
              "type": "object"
            },
            "cephfs": {
              "properties": {
                "monitors": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "x-kubernetes-list-type": "atomic"
                },
                "path": {
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "secretFile": {
                  "type": "string"
                },
                "secretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "user": {
                  "type": "string"
                }
              },
              "required": [
                "monitors"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "cinder": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "secretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "volumeID": {
                  "type": "string"
                }
              },
              "required": [
                "volumeID"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "claimRef": {
              "properties": {
                "apiVersion": {
                  "type": "string"
                },
                "fieldPath": {
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                },
                "resourceVersion": {
                  "type": "string"
                },
                "uid": {
                  "type": "string"
                }
              },
              "type": "object",
              "x-kubernetes-map-type": "granular",
              "additionalProperties": false
            },
            "csi": {
              "properties": {
                "controllerExpandSecretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "controllerPublishSecretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "driver": {
                  "type": "string"
                },
                "fsType": {
                  "type": "string"
                },
                "nodeExpandSecretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "nodePublishSecretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "nodeStageSecretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "readOnly": {
                  "type": "boolean"
                },
                "volumeAttributes": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "volumeHandle": {
                  "type": "string"
                }
              },
              "required": [
                "driver",
                "volumeHandle"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "fc": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "lun": {
                  "format": "int32",
                  "type": "integer"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "targetWWNs": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "x-kubernetes-list-type": "atomic"
                },
                "wwids": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "x-kubernetes-list-type": "atomic"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "flexVolume": {
              "properties": {
                "driver": {
                  "type": "string"
                },
                "fsType": {
                  "type": "string"
                },
                "options": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "secretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                }
              },
              "required": [
                "driver"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "flocker": {
              "properties": {
                "datasetName": {
                  "type": "string"
                },
                "datasetUUID": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "gcePersistentDisk": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "partition": {
                  "format": "int32",
                  "type": "integer"
                },
                "pdName": {
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                }
              },
              "required": [
                "pdName"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "glusterfs": {
              "properties": {
                "endpoints": {
                  "type": "string"
                },
                "endpointsNamespace": {
                  "type": "string"
                },
                "path": {
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                }
              },
              "required": [
                "endpoints",
                "path"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "hostPath": {
              "properties": {
                "path": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "iscsi": {
              "properties": {
                "chapAuthDiscovery": {
                  "type": "boolean"
                },
                "chapAuthSession": {
                  "type": "boolean"
                },
                "fsType": {
                  "type": "string"
                },
                "initiatorName": {
                  "type": "string"
                },
                "iqn": {
                  "type": "string"
                },
                "iscsiInterface": {
                  "default": "default",
                  "type": "string"
                },
                "lun": {
                  "format": "int32",
                  "type": "integer"
                },
                "portals": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "x-kubernetes-list-type": "atomic"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "secretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "targetPortal": {
                  "type": "string"
                }
              },
              "required": [
                "iqn",
                "lun",
                "targetPortal"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "local": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "path": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "mountOptions": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "atomic"
            },
            "nfs": {
              "properties": {
                "path": {
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "server": {
                  "type": "string"
                }
              },
              "required": [
                "path",
                "server"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "nodeAffinity": {
              "properties": {
                "required": {
                  "properties": {
                    "nodeSelectorTerms": {
                      "items": {
                        "properties": {
                          "matchExpressions": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "operator": {
                                  "type": "string"
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": "array",
                                  "x-kubernetes-list-type": "atomic"
                                }
                              },
                              "required": [
                                "key",
                                "operator"
                              ],
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array",
                            "x-kubernetes-list-type": "atomic"
                          },
                          "matchFields": {
                            "items": {
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "operator": {
                                  "type": "string"
                                },
                                "values": {
                                  "items": {
                                    "type": "string"
                                  },
                                  "type": "array",
                                  "x-kubernetes-list-type": "atomic"
                                }
                              },
                              "required": [
                                "key",
                                "operator"
                              ],
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array",
                            "x-kubernetes-list-type": "atomic"
                          }
                        },
                        "type": "object",
                        "x-kubernetes-map-type": "atomic",
                        "additionalProperties": false
                      },
                      "type": "array",
                      "x-kubernetes-list-type": "atomic"
                    }
                  },
                  "required": [
                    "nodeSelectorTerms"
                  ],
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "persistentVolumeReclaimPolicy": {
              "type": "string"
            },
            "photonPersistentDisk": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "pdID": {
                  "type": "string"
                }
              },
              "required": [
                "pdID"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "portworxVolume": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "volumeID": {
                  "type": "string"
                }
              },
              "required": [
                "volumeID"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "quobyte": {
              "properties": {
                "group": {
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "registry": {
                  "type": "string"
                },
                "tenant": {
                  "type": "string"
                },
                "user": {
                  "type": "string"
                },
                "volume": {
                  "type": "string"
                }
              },
              "required": [
                "registry",
                "volume"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "rbd": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "image": {
                  "type": "string"
                },
                "keyring": {
                  "default": "/etc/ceph/keyring",
                  "type": "string"
                },
                "monitors": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "x-kubernetes-list-type": "atomic"
                },
                "pool": {
                  "default": "rbd",
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "secretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "user": {
                  "default": "admin",
                  "type": "string"
                }
              },
              "required": [
                "image",
                "monitors"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "scaleIO": {
              "properties": {
                "fsType": {
                  "default": "xfs",
                  "type": "string"
                },
                "gateway": {
                  "type": "string"
                },
                "protectionDomain": {
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "secretRef": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "sslEnabled": {
                  "type": "boolean"
                },
                "storageMode": {
                  "default": "ThinProvisioned",
                  "type": "string"
                },
                "storagePool": {
                  "type": "string"
                },
                "system": {
                  "type": "string"
                },
                "volumeName": {
                  "type": "string"
                }
              },
              "required": [
                "gateway",
                "secretRef",
                "system"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "storageClassName": {
              "type": "string"
            },
            "storageos": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "readOnly": {
                  "type": "boolean"
                },
                "secretRef": {
                  "properties": {
                    "apiVersion": {
                      "type": "string"
                    },
                    "fieldPath": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    },
                    "resourceVersion": {
                      "type": "string"
                    },
                    "uid": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "x-kubernetes-map-type": "atomic",
                  "additionalProperties": false
                },
                "volumeName": {
                  "type": "string"
                },
                "volumeNamespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "volumeAttributesClassName": {
              "type": "string"
            },
            "volumeMode": {
              "type": "string"
            },
            "vsphereVolume": {
              "properties": {
                "fsType": {
                  "type": "string"
                },
                "storagePolicyID": {
                  "type": "string"
                },
                "storagePolicyName": {
                  "type": "string"
                },
                "volumePath": {
                  "type": "string"
                }
              },
              "required": [
                "volumePath"
              ],
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "storageLimit": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
          "x-kubernetes-int-or-string": true
        }
      },
      "required": [
        "persistentVolumeClaimSpec",
        "persistentVolumeSpec",
        "storageLimit"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "properties": {
        "available": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
          "x-kubernetes-int-or-string": true
        },
        "used": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
          "x-kubernetes-int-or-string": true
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
