{"attributes" => {
    "allow-env-function" => {
        "type" => BOOLEAN,
        "description" => "Allow the execution of ENV function. (default false)",
        "required" => false,
        "default" => false
    },
    "async-thread-pool" => {
        "type" => STRING,
        "description" => "Thread Pool to be used with Asynchronous operations in Teiid",
        "required" => true
    },
    "max-threads" => {
        "type" => INT,
        "description" => "Process pool maximum thread count. (default 64)",
        "required" => false,
        "default" => 64
    },
    "max-active-plans" => {
        "type" => INT,
        "description" => "Max active plans (default 20).  Increase this value on highly concurrent systems - but ensure that the underlying pools can handle the increased load without timeouts.",
        "required" => false,
        "default" => 20
    },
    "thread-count-for-source-concurrency" => {
        "type" => INT,
        "description" => "Max source query concurrency per user request (default 0).  0 indicates use the default calculated value based on max active plans and max threads - approximately 2*(max threads)/(max active plans).   ",
        "required" => false,
        "default" => 0
    },
    "time-slice-in-millseconds" => {
        "type" => INT,
        "description" => "Query processor time slice, in milliseconds. (default 2000)",
        "required" => false,
        "default" => 2000
    },
    "max-row-fetch-size" => {
        "type" => INT,
        "description" => "Maximum allowed fetch size, set via JDBC. User requested value ignored above this value. (default 20480)",
        "required" => false,
        "default" => 20480
    },
    "lob-chunk-size-in-kb" => {
        "type" => INT,
        "description" => "The max lob chunk size in KB transferred each time when processing blobs, clobs (100KB default)",
        "required" => false,
        "default" => 100
    },
    "query-threshold-in-seconds" => {
        "type" => INT,
        "description" => "Long running query threshold, after which a alert can be generated by tooling if configured",
        "required" => false,
        "default" => 600
    },
    "max-source-rows-allowed" => {
        "type" => INT,
        "description" => "Maximum rows allowed from a source query. -1 indicates no limit. (default -1)",
        "required" => false,
        "default" => -1
    },
    "exception-on-max-source-rows" => {
        "type" => BOOLEAN,
        "description" => "Indicates if an exception should be thrown if the specified value for Maximum Source Rows is exceeded; only up to the maximum rows will be consumed. (default true)",
        "required" => false,
        "default" => true
    },
    "detect-change-events" => {
        "type" => BOOLEAN,
        "description" => "Set to true for the engine to detect local change events. Should be disabled if using external change data capture tools. (default true)",
        "required" => false,
        "default" => true
    },
    "query-timeout" => {
        "type" => LONG,
        "description" => "Set the default query timeout for all queries in milliseconds. 0 indicates no timeout.  Lesser timeout values may be set per VDB or by clients. (default 0)",
        "required" => false,
        "default" => 0L
    },
    "workmanager" => {
        "type" => STRING,
        "description" => "WorkManager name to use in processing. (default name is \"default\")",
        "required" => false,
        "default" => "default"
    },
    "authorization-validator-module" => {
        "type" => STRING,
        "description" => "Authorization Module; Implementation of org.teiid.dqp.internal.process.AuthorizationValidator class.",
        "required" => false
    },
    "policy-decider-module" => {
        "type" => STRING,
        "description" => "Policy Module; Implementation of org.teiid.PolicyDecider class ",
        "required" => false
    },
    "distributed-cache-jgroups-stack" => {
        "type" => STRING,
        "description" => "JGroups stack name for cache replication channel",
        "required" => false
    },
    "buffer-service-use-disk" => {
        "type" => BOOLEAN,
        "description" => "Use disk for buffer management",
        "required" => false,
        "default" => true
    },
    "buffer-service-inline-lobs" => {
        "type" => BOOLEAN,
        "description" => "Set to true to allow inlining of memory based and small lobs into results. However inline lob values are not supported by pre-7.6 clients, so disable this property if using older clients utilizing lobs. (default true)	",
        "required" => false,
        "default" => true
    },
    "buffer-service-processor-batch-size" => {
        "type" => INT,
        "description" => "The max row count of a batch sent internally within the query processor. (default 256)",
        "required" => false,
        "default" => 256
    },
    "buffer-service-max-processing-kb" => {
        "type" => INT,
        "description" => "The approximate amount of buffer memory in kilobytes allowable for a single processing operation (sort, grouping, etc.) regardless of existing memory commitments. -1 means to automatically calculate a value (default -1)",
        "required" => false,
        "default" => -1
    },
    "buffer-service-max-reserve-kb" => {
        "type" => INT,
        "description" => "The approximate amount of memory in kilobytes allowed to be held by the buffer manager. -1 means to automatically calculate a value (default -1)",
        "required" => false,
        "default" => -1
    },
    "buffer-service-max-file-size" => {
        "type" => LONG,
        "description" => "Max File size in MB (default 2GB)",
        "required" => false,
        "default" => 2048L
    },
    "buffer-service-max-buffer-space" => {
        "type" => LONG,
        "description" => "Max storage space, in MB, to be used for buffer files (default 50G)",
        "required" => false,
        "default" => 51200L
    },
    "buffer-service-max-open-files" => {
        "type" => INT,
        "description" => "Max open buffer files (default 64)",
        "required" => false,
        "default" => 64
    },
    "buffer-service-memory-buffer-space" => {
        "type" => INT,
        "description" => "Memory buffer space used by the buffer manager in MB.  -1 determines the setting automatically from the max-reserve-kb (default -1). This value cannot be smaller than max-storage-object-size",
        "required" => false,
        "default" => -1
    },
    "buffer-service-memory-buffer-off-heap" => {
        "type" => BOOLEAN,
        "description" => "Set to true to hold the memory buffer off-heap. If true you must ensure that the VM can allocate that much direct memory (default false).",
        "required" => false,
        "default" => false
    },
    "buffer-service-max-storage-object-size" => {
        "type" => INT,
        "description" => "The maximum size of a buffer managed object (typically a table page or a results batch) in bytes (default 8388608 or 8MB). Setting this value too high will reduce the effectiveness of the memory buffer.",
        "required" => false,
        "default" => 8388608
    },
    "preparedplan-cache-name" => {
        "type" => STRING,
        "description" => "Infinispan cache name for prepared plans",
        "required" => false,
        "default" => "preparedplan"
    },
    "preparedplan-cache-infinispan-container" => {
        "type" => STRING,
        "description" => "Infinispan cache container name",
        "required" => false
    },
    "preparedplan-cache-enable" => {
        "type" => BOOLEAN,
        "description" => "Prepared Plan cache enabled (default true)",
        "required" => false,
        "default" => true
    },
    "resultset-cache-name" => {
        "type" => STRING,
        "description" => "Infinispan cache name for resultset; if not specified default cache on infinispan container is used.",
        "required" => false,
        "default" => "resultset"
    },
    "resultset-cache-infinispan-container" => {
        "type" => STRING,
        "description" => "Infinispan cache container name",
        "required" => false
    },
    "resultset-cache-max-staleness" => {
        "type" => INT,
        "description" => "Max staleness in seconds.  Modifications are based upon data updates -1 indicates no max. (default 60 - 1 minute)",
        "required" => false,
        "default" => 60
    },
    "resultset-cache-enable" => {
        "type" => BOOLEAN,
        "description" => "Resultset cache enabled (default true)",
        "required" => false,
        "default" => true
    }
}}