{
    "properties": {
      "spec": {
        "properties": {
          "discard": {
            "default": "old",
            "description": "When a Stream reach it's limits either old messages are deleted or new ones are denied.",
            "enum": [
              "old",
              "new"
            ],
            "type": "string"
          },
          "duplicateWindow": {
            "description": "The duration window to track duplicate messages for.",
            "type": "string"
          },
          "maxAge": {
            "default": "",
            "description": "Maximum age of any message in the stream, expressed in Go's time.Duration format. Empty for unlimited.",
            "type": "string"
          },
          "maxBytes": {
            "default": -1,
            "description": "How big the Stream may be, when the combined stream size exceeds this old messages are removed. -1 for unlimited.",
            "minimum": -1,
            "type": "integer"
          },
          "maxConsumers": {
            "default": -1,
            "description": "How many Consumers can be defined for a given Stream. -1 for unlimited.",
            "minimum": -1,
            "type": "integer"
          },
          "maxMsgSize": {
            "default": -1,
            "description": "The largest message that will be accepted by the Stream. -1 for unlimited.",
            "minimum": -1,
            "type": "integer"
          },
          "maxMsgs": {
            "default": -1,
            "description": "How many messages may be in a Stream, oldest messages will be removed if the Stream exceeds this size. -1 for unlimited.",
            "minimum": -1,
            "type": "integer"
          },
          "maxStreams": {
            "default": -1,
            "description": "The maximum number of Streams this Template can create, -1 for unlimited.",
            "minimum": -1,
            "type": "integer"
          },
          "name": {
            "description": "A unique name for the Stream Template.",
            "minLength": 1,
            "pattern": "^[^.*>]*$",
            "type": "string"
          },
          "noAck": {
            "default": false,
            "description": "Disables acknowledging messages that are received by the Stream.",
            "type": "boolean"
          },
          "replicas": {
            "default": 1,
            "description": "How many replicas to keep for each message.",
            "minimum": 1,
            "type": "integer"
          },
          "retention": {
            "default": "limits",
            "description": "How messages are retained in the Stream, once this is exceeded old messages are removed.",
            "enum": [
              "limits",
              "interest",
              "workqueue"
            ],
            "type": "string"
          },
          "storage": {
            "default": "memory",
            "description": "The storage backend to use for the Stream.",
            "enum": [
              "file",
              "memory"
            ],
            "type": "string"
          },
          "subjects": {
            "description": "A list of subjects to consume, supports wildcards.",
            "items": {
              "minLength": 1,
              "type": "string"
            },
            "minLength": 1,
            "type": "array"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "status": {
        "properties": {
          "conditions": {
            "items": {
              "properties": {
                "lastTransitionTime": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "status": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "type": "array"
          },
          "observedGeneration": {
            "type": "integer"
          }
        },
        "type": "object",
        "additionalProperties": false
      }
    },
    "type": "object"
  }
  