{
  "description": "Engine is where Longhorn stores engine 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"
    },
    "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": "EngineSpec defines the desired state of the Longhorn engine",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "backendStoreDriver": {
          "description": "Deprecated:Replaced by field `dataEngine`.",
          "type": "string"
        },
        "backupVolume": {
          "type": "string"
        },
        "dataEngine": {
          "enum": [
            "v1",
            "v2"
          ],
          "type": "string"
        },
        "desireState": {
          "type": "string"
        },
        "disableFrontend": {
          "type": "boolean"
        },
        "engineImage": {
          "description": "Deprecated: Replaced by field `image`.",
          "type": "string"
        },
        "frontend": {
          "enum": [
            "blockdev",
            "iscsi",
            "nvmf",
            ""
          ],
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "logRequested": {
          "type": "boolean"
        },
        "nodeID": {
          "type": "string"
        },
        "replicaAddressMap": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "requestedBackupRestore": {
          "type": "string"
        },
        "requestedDataSource": {
          "type": "string"
        },
        "revisionCounterDisabled": {
          "type": "boolean"
        },
        "salvageRequested": {
          "type": "boolean"
        },
        "snapshotMaxCount": {
          "type": "integer"
        },
        "snapshotMaxSize": {
          "format": "int64",
          "type": "string"
        },
        "unmapMarkSnapChainRemovedEnabled": {
          "type": "boolean"
        },
        "upgradedReplicaAddressMap": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "volumeName": {
          "type": "string"
        },
        "volumeSize": {
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "EngineStatus defines the observed state of the Longhorn engine",
      "properties": {
        "backupStatus": {
          "additionalProperties": {
            "properties": {
              "backupURL": {
                "type": "string"
              },
              "error": {
                "type": "string"
              },
              "progress": {
                "type": "integer"
              },
              "replicaAddress": {
                "type": "string"
              },
              "snapshotName": {
                "type": "string"
              },
              "state": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "nullable": true,
          "type": "object"
        },
        "cloneStatus": {
          "additionalProperties": {
            "properties": {
              "error": {
                "type": "string"
              },
              "fromReplicaAddress": {
                "type": "string"
              },
              "isCloning": {
                "type": "boolean"
              },
              "progress": {
                "type": "integer"
              },
              "snapshotName": {
                "type": "string"
              },
              "state": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "nullable": true,
          "type": "object"
        },
        "conditions": {
          "items": {
            "properties": {
              "lastProbeTime": {
                "description": "Last time we probed the condition.",
                "type": "string"
              },
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message indicating details about last transition.",
                "type": "string"
              },
              "reason": {
                "description": "Unique, one-word, CamelCase reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status is the status of the condition.\nCan be True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the condition.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "nullable": true,
          "type": "array"
        },
        "currentImage": {
          "type": "string"
        },
        "currentReplicaAddressMap": {
          "additionalProperties": {
            "type": "string"
          },
          "nullable": true,
          "type": "object"
        },
        "currentSize": {
          "format": "int64",
          "type": "string"
        },
        "currentState": {
          "type": "string"
        },
        "endpoint": {
          "type": "string"
        },
        "instanceManagerName": {
          "type": "string"
        },
        "ip": {
          "type": "string"
        },
        "isExpanding": {
          "type": "boolean"
        },
        "lastExpansionError": {
          "type": "string"
        },
        "lastExpansionFailedAt": {
          "type": "string"
        },
        "lastRestoredBackup": {
          "type": "string"
        },
        "logFetched": {
          "type": "boolean"
        },
        "ownerID": {
          "type": "string"
        },
        "port": {
          "type": "integer"
        },
        "purgeStatus": {
          "additionalProperties": {
            "properties": {
              "error": {
                "type": "string"
              },
              "isPurging": {
                "type": "boolean"
              },
              "progress": {
                "type": "integer"
              },
              "state": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "nullable": true,
          "type": "object"
        },
        "rebuildStatus": {
          "additionalProperties": {
            "properties": {
              "error": {
                "type": "string"
              },
              "fromReplicaAddress": {
                "type": "string"
              },
              "isRebuilding": {
                "type": "boolean"
              },
              "progress": {
                "type": "integer"
              },
              "state": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "nullable": true,
          "type": "object"
        },
        "replicaModeMap": {
          "additionalProperties": {
            "type": "string"
          },
          "nullable": true,
          "type": "object"
        },
        "replicaTransitionTimeMap": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "ReplicaTransitionTimeMap records the time a replica in ReplicaModeMap transitions from one mode to another (or\nfrom not being in the ReplicaModeMap to being in it). This information is sometimes required by other controllers\n(e.g. the volume controller uses it to determine the correct value for replica.Spec.lastHealthyAt).",
          "type": "object"
        },
        "restoreStatus": {
          "additionalProperties": {
            "properties": {
              "backupURL": {
                "type": "string"
              },
              "currentRestoringBackup": {
                "type": "string"
              },
              "error": {
                "type": "string"
              },
              "filename": {
                "type": "string"
              },
              "isRestoring": {
                "type": "boolean"
              },
              "lastRestored": {
                "type": "string"
              },
              "progress": {
                "type": "integer"
              },
              "state": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "nullable": true,
          "type": "object"
        },
        "salvageExecuted": {
          "type": "boolean"
        },
        "snapshotMaxCount": {
          "type": "integer"
        },
        "snapshotMaxSize": {
          "format": "int64",
          "type": "string"
        },
        "snapshots": {
          "additionalProperties": {
            "properties": {
              "children": {
                "additionalProperties": {
                  "type": "boolean"
                },
                "nullable": true,
                "type": "object"
              },
              "created": {
                "type": "string"
              },
              "labels": {
                "additionalProperties": {
                  "type": "string"
                },
                "nullable": true,
                "type": "object"
              },
              "name": {
                "type": "string"
              },
              "parent": {
                "type": "string"
              },
              "removed": {
                "type": "boolean"
              },
              "size": {
                "type": "string"
              },
              "usercreated": {
                "type": "boolean"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "nullable": true,
          "type": "object"
        },
        "snapshotsError": {
          "type": "string"
        },
        "started": {
          "type": "boolean"
        },
        "storageIP": {
          "type": "string"
        },
        "unmapMarkSnapChainRemovedEnabled": {
          "type": "boolean"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
