diff --git a/build.gradle b/build.gradle
index c90f536b..6dbaeb88 100644
--- a/build.gradle
+++ b/build.gradle
@@ -29,6 +29,7 @@ defaultTasks 'admin:openApiGenerate',
'eventing:openApiGenerate',
'functions:openApiGenerate',
'indexes:openApiGenerate',
+ 'index-settings:openApiGenerate',
'search-index:openApiGenerate',
'search-nodes:openApiGenerate',
'search-advanced:openApiGenerate',
diff --git a/docs/modules/analytics-rest-links/attachments/analytics-links.yaml b/docs/modules/analytics-rest-links/attachments/analytics-links.yaml
index d0579f3f..1c641b68 100644
--- a/docs/modules/analytics-rest-links/attachments/analytics-links.yaml
+++ b/docs/modules/analytics-rest-links/attachments/analytics-links.yaml
@@ -826,7 +826,7 @@ components:
ResponseAll:
title: Links
- description: These properties are common to all links.
+ description: Properties common to all links.
type: object
discriminator:
propertyName: type
@@ -879,6 +879,7 @@ components:
ResponseCouchbaseSpecific:
title: Couchbase Specific Response
+ description: Properties specific to remote Couchbase links.
type: object
required:
- activeHostname
@@ -1051,6 +1052,7 @@ components:
ResponseS3Specific:
title: S3 Specific Response
+ description: Properties specific to S3 links.
type: object
required:
- accessKeyId
@@ -1101,6 +1103,7 @@ components:
ResponseAzureBlobSpecific:
title: Azure Blob Specific Response
+ description: Properties specific to Azure Blob links.
type: object
required:
- endpoint
@@ -1205,6 +1208,7 @@ components:
ResponseGCSSpecific:
title: GCS Specific Response
+ description: Properties specific to Google Cloud Storage links.
type: object
required:
- applicationDefaultCredentials
diff --git a/docs/modules/analytics-rest-links/pages/index.adoc b/docs/modules/analytics-rest-links/pages/index.adoc
index d5929b2d..ffbc8a7d 100644
--- a/docs/modules/analytics-rest-links/pages/index.adoc
+++ b/docs/modules/analytics-rest-links/pages/index.adoc
@@ -4079,7 +4079,7 @@ endif::collapse-models[]
ifdef::model-descriptions[]
//tag::desc-ResponseAll[]
-These properties are common to all links.
+Properties common to all links.
//end::desc-ResponseAll[]
endif::model-descriptions[]
@@ -4199,15 +4199,48 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-All of the following:
+//tag::ResponseAzureBlob[]
-* xref:ResponseAll[]
+ifdef::model-descriptions[]
+//tag::desc-ResponseAzureBlob[]
+These properties are returned for Azure Blob links.
+//end::desc-ResponseAzureBlob[]
+endif::model-descriptions[]
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦
-* xref:ResponseAzureBlobSpecific[]
+[markdown]
+--
+include::index.adoc[tag=desc-ResponseAll, opts=optional]
+--
+[%hardbreaks]
+{blank}
+a¦ xref:ResponseAll[]
+a¦ _and_
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-ResponseAzureBlobSpecific, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:ResponseAzureBlobSpecific[]
+
+
+|===
+
+//end::ResponseAzureBlob[]
+
// markup not found, no include::{specDir}definitions/ResponseAzureBlob/definition-end.adoc[opts=optional]
@@ -4238,6 +4271,11 @@ endif::collapse-models[]
//tag::ResponseAzureBlobSpecific[]
+ifdef::model-descriptions[]
+//tag::desc-ResponseAzureBlobSpecific[]
+Properties specific to Azure Blob links.
+//end::desc-ResponseAzureBlobSpecific[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
@@ -4446,15 +4484,48 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-All of the following:
+//tag::ResponseCouchbase[]
-* xref:ResponseAll[]
+ifdef::model-descriptions[]
+//tag::desc-ResponseCouchbase[]
+These properties are returned for remote Couchbase links.
+//end::desc-ResponseCouchbase[]
+endif::model-descriptions[]
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦
-* xref:ResponseCouchbaseSpecific[]
+[markdown]
+--
+include::index.adoc[tag=desc-ResponseAll, opts=optional]
+--
+[%hardbreaks]
+{blank}
+a¦ xref:ResponseAll[]
+a¦ _and_
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-ResponseCouchbaseSpecific, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:ResponseCouchbaseSpecific[]
+
+
+|===
+
+//end::ResponseCouchbase[]
+
// markup not found, no include::{specDir}definitions/ResponseCouchbase/definition-end.adoc[opts=optional]
@@ -4485,6 +4556,11 @@ endif::collapse-models[]
//tag::ResponseCouchbaseSpecific[]
+ifdef::model-descriptions[]
+//tag::desc-ResponseCouchbaseSpecific[]
+Properties specific to remote Couchbase links.
+//end::desc-ResponseCouchbaseSpecific[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
@@ -4952,15 +5028,48 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-All of the following:
+//tag::ResponseGCS[]
-* xref:ResponseAll[]
+ifdef::model-descriptions[]
+//tag::desc-ResponseGCS[]
+These properties are returned for Google Cloud Storage links.
+//end::desc-ResponseGCS[]
+endif::model-descriptions[]
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦
-* xref:ResponseGCSSpecific[]
+[markdown]
+--
+include::index.adoc[tag=desc-ResponseAll, opts=optional]
+--
+[%hardbreaks]
+{blank}
+a¦ xref:ResponseAll[]
+a¦ _and_
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-ResponseGCSSpecific, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:ResponseGCSSpecific[]
+
+
+|===
+
+//end::ResponseGCS[]
+
// markup not found, no include::{specDir}definitions/ResponseGCS/definition-end.adoc[opts=optional]
@@ -4991,6 +5100,11 @@ endif::collapse-models[]
//tag::ResponseGCSSpecific[]
+ifdef::model-descriptions[]
+//tag::desc-ResponseGCSSpecific[]
+Properties specific to Google Cloud Storage links.
+//end::desc-ResponseGCSSpecific[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
@@ -5082,15 +5196,48 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-All of the following:
+//tag::ResponseS3[]
-* xref:ResponseAll[]
+ifdef::model-descriptions[]
+//tag::desc-ResponseS3[]
+These properties are returned for S3 links.
+//end::desc-ResponseS3[]
+endif::model-descriptions[]
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦
-* xref:ResponseS3Specific[]
+[markdown]
+--
+include::index.adoc[tag=desc-ResponseAll, opts=optional]
+--
+[%hardbreaks]
+{blank}
+a¦ xref:ResponseAll[]
+a¦ _and_
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-ResponseS3Specific, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:ResponseS3Specific[]
+
+
+|===
+
+//end::ResponseS3[]
+
// markup not found, no include::{specDir}definitions/ResponseS3/definition-end.adoc[opts=optional]
@@ -5121,6 +5268,11 @@ endif::collapse-models[]
//tag::ResponseS3Specific[]
+ifdef::model-descriptions[]
+//tag::desc-ResponseS3Specific[]
+Properties specific to S3 links.
+//end::desc-ResponseS3Specific[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
diff --git a/docs/modules/analytics-rest-service/attachments/analytics-service.yaml b/docs/modules/analytics-rest-service/attachments/analytics-service.yaml
index bee36e38..bd9c253e 100644
--- a/docs/modules/analytics-rest-service/attachments/analytics-service.yaml
+++ b/docs/modules/analytics-rest-service/attachments/analytics-service.yaml
@@ -132,6 +132,7 @@ components:
# Use YAML anchors for properties which are also available as query parameters
ParametersCommon:
title: Common Parameters
+ description: Parameters common with the Query Service.
type: object
required:
- statement
@@ -210,6 +211,7 @@ components:
# Use YAML anchors for properties which are also available as query parameters
ParametersLocal:
title: Analytics Parameters
+ description: Parameters specific to the Analytics Service.
type: object
properties:
plan-format:
@@ -263,6 +265,7 @@ components:
# For the Query Responses page
ResponsesCommon:
title: Common Responses
+ description: Responses common with the Query Service.
type: object
properties:
requestID:
@@ -328,6 +331,7 @@ components:
# For the Query Responses page
ResponsesLocal:
title: Analytics Responses
+ description: Responses specific to the Analytics Service.
type: object
properties:
plans:
diff --git a/docs/modules/analytics-rest-service/pages/index.adoc b/docs/modules/analytics-rest-service/pages/index.adoc
index 8f6de50b..dff4fa8a 100644
--- a/docs/modules/analytics-rest-service/pages/index.adoc
+++ b/docs/modules/analytics-rest-service/pages/index.adoc
@@ -1026,15 +1026,43 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-All of the following:
+//tag::Parameters[]
-* xref:ParametersCommon[]
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
-* xref:ParametersLocal[]
+a¦
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-ParametersCommon, opts=optional]
+--
+[%hardbreaks]
+{blank}
+a¦ xref:ParametersCommon[]
+a¦ _and_
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-ParametersLocal, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:ParametersLocal[]
+
+
+|===
+
+//end::Parameters[]
+
// markup not found, no include::{specDir}definitions/Parameters/definition-end.adoc[opts=optional]
@@ -1065,6 +1093,11 @@ endif::collapse-models[]
//tag::ParametersCommon[]
+ifdef::model-descriptions[]
+//tag::desc-ParametersCommon[]
+Parameters common with the Query Service.
+//end::desc-ParametersCommon[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
@@ -1289,6 +1322,11 @@ endif::collapse-models[]
//tag::ParametersLocal[]
+ifdef::model-descriptions[]
+//tag::desc-ParametersLocal[]
+Parameters specific to the Analytics Service.
+//end::desc-ParametersLocal[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
@@ -1441,15 +1479,43 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-All of the following:
+//tag::Responses[]
-* xref:ResponsesCommon[]
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
-* xref:ResponsesLocal[]
+a¦
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-ResponsesCommon, opts=optional]
+--
+[%hardbreaks]
+{blank}
+a¦ xref:ResponsesCommon[]
+a¦ _and_
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-ResponsesLocal, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:ResponsesLocal[]
+
+
+|===
+
+//end::Responses[]
+
// markup not found, no include::{specDir}definitions/Responses/definition-end.adoc[opts=optional]
@@ -1480,6 +1546,11 @@ endif::collapse-models[]
//tag::ResponsesCommon[]
+ifdef::model-descriptions[]
+//tag::desc-ResponsesCommon[]
+Responses common with the Query Service.
+//end::desc-ResponsesCommon[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
@@ -1945,6 +2016,11 @@ endif::collapse-models[]
//tag::ResponsesLocal[]
+ifdef::model-descriptions[]
+//tag::desc-ResponsesLocal[]
+Responses specific to the Analytics Service.
+//end::desc-ResponsesLocal[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
diff --git a/docs/modules/eventing-rest-api/attachments/overlay.json b/docs/modules/eventing-rest-api/attachments/_overlay.json
similarity index 91%
rename from docs/modules/eventing-rest-api/attachments/overlay.json
rename to docs/modules/eventing-rest-api/attachments/_overlay.json
index 0882e766..9075e57d 100644
--- a/docs/modules/eventing-rest-api/attachments/overlay.json
+++ b/docs/modules/eventing-rest-api/attachments/_overlay.json
@@ -5,6 +5,12 @@
"version": 1.0
},
"actions": [
+ {
+ "target": "components.schemas.handler_schema",
+ "update": {
+ "description": "An object which defines a function."
+ }
+ },
{
"target": "components.schemas.settings_schema.properties.allow_sync_documents",
"update": {
diff --git a/docs/modules/eventing-rest-api/eventing.gradle b/docs/modules/eventing-rest-api/eventing.gradle
index f20450b1..1fd57e73 100644
--- a/docs/modules/eventing-rest-api/eventing.gradle
+++ b/docs/modules/eventing-rest-api/eventing.gradle
@@ -4,7 +4,7 @@ plugins {
jayOverlay {
targetFile.set("${projectDir}/build/bundle/eventing.yaml")
- overlayFile.set("${projectDir}/attachments/overlay.json")
+ overlayFile.set("${projectDir}/attachments/_overlay.json")
outputDir.set("${projectDir}/build/overlay")
}
diff --git a/docs/modules/eventing-rest-api/pages/index.adoc b/docs/modules/eventing-rest-api/pages/index.adoc
index e400f11d..4ae39ef0 100644
--- a/docs/modules/eventing-rest-api/pages/index.adoc
+++ b/docs/modules/eventing-rest-api/pages/index.adoc
@@ -7003,14 +7003,44 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-One of the following:
+//tag::AddFunction[]
-* xref:handler_schema[]
+[cols="25,55,20",separator=¦]
+|===
+¦ One{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-handler_schema, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:handler_schema[]
-* xref:handler_schema[]
+
+a¦ _or_
+a¦
+
+[markdown]
+--
+An array containing a single function definition object.
+--
+
+[%hardbreaks]
+*Minimum items:* `1`
+*Maximum items:* `1`
+{blank}
+a¦ xref:handler_schema[]
array
+|===
+
+//end::AddFunction[]
// markup not found, no include::{specDir}definitions/AddFunction/definition-end.adoc[opts=optional]
@@ -7040,14 +7070,43 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-One of the following:
+//tag::AddFunctions[]
+
+
+[cols="25,55,20",separator=¦]
+|===
+¦ One{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-handler_schema, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:handler_schema[]
+
-* xref:handler_schema[]
+a¦ _or_
+a¦
+[markdown]
+--
+An array containing one or more function definition objects.
+--
-* xref:handler_schema[]
+[%hardbreaks]
+*Minimum items:* `1`
+{blank}
+a¦ xref:handler_schema[]
array
+|===
+
+//end::AddFunctions[]
// markup not found, no include::{specDir}definitions/AddFunctions/definition-end.adoc[opts=optional]
@@ -7622,6 +7681,11 @@ endif::collapse-models[]
//tag::handler_schema[]
+ifdef::model-descriptions[]
+//tag::desc-handler_schema[]
+An object which defines a function.
+//end::desc-handler_schema[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
diff --git a/docs/modules/fts-rest-stats/pages/index.adoc b/docs/modules/fts-rest-stats/pages/index.adoc
index ca7d6e27..88011e59 100644
--- a/docs/modules/fts-rest-stats/pages/index.adoc
+++ b/docs/modules/fts-rest-stats/pages/index.adoc
@@ -563,14 +563,42 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-All of the following:
+//tag::allStats[]
-* xref:clusterStats[]
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-clusterStats, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:clusterStats[]
-* xref:indexStats[]
+a¦ _and_
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-indexStats, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:indexStats[]
+
+
+|===
+//end::allStats[]
// markup not found, no include::{specDir}definitions/allStats/definition-end.adoc[opts=optional]
diff --git a/docs/modules/index-rest-settings/attachments/index-settings.yaml b/docs/modules/index-rest-settings/attachments/index-settings.yaml
new file mode 100644
index 00000000..ea66cfa0
--- /dev/null
+++ b/docs/modules/index-rest-settings/attachments/index-settings.yaml
@@ -0,0 +1,722 @@
+openapi: 3.0.3
+info:
+ title: Index Settings REST API
+ version: '8.0'
+ description: |-
+ The Index Settings REST API is provided by the Index Service.
+ This API enables you to retrieve or set Index Service settings.
+
+ Changes automatically propagate to all Index Service nodes, and will be remembered across node and cluster restarts.
+
+ Unless otherwise noted, you should only change the Index Service settings when advised to do so by Couchbase Support.
+
+servers:
+ - url: '{scheme}://{host}:{port}'
+ description: The URL scheme, host, and port are as follows.
+ variables:
+ scheme:
+ default: http
+ description: |-
+ The URL scheme.
+ Use `https` for secure access.
+ enum:
+ - http
+ - https
+ host:
+ default: localhost
+ description: The host name or IP address of a node running the Index Service.
+ port:
+ default: "9102"
+ description: |-
+ The Index Service REST port.
+ Use `19102` for secure access.
+ enum:
+ - "9102"
+ - "19102"
+
+paths:
+ /settings:
+ get:
+ operationId: get_settings
+ summary: Retrieve Index Settings
+ description: Returns Index Service settings.
+ security:
+ - Default: []
+ responses:
+ "200":
+ description: |-
+ Success.
+ Returns an object giving Index Service settings.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Settings"
+ example:
+ $ref: "../examples/get_settings.json"
+ "404":
+ $ref: '#/components/responses/NotFound'
+ "401":
+ $ref: '#/components/responses/Unauthorized'
+ post:
+ operationId: post_settings
+ summary: Update Index Settings
+ description: Updates Index Service settings.
+ security:
+ - Default: []
+ requestBody:
+ required: true
+ description: |-
+ An object specifying Index Service settings.
+ You only need to specify the settings you want to change; settings which are not specified are left unchanged.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Settings"
+ responses:
+ "200":
+ description: |-
+ Success.
+ Returns `OK` and no object.
+ "401":
+ $ref: '#/components/responses/Unauthorized'
+ "404":
+ $ref: '#/components/responses/NotFound'
+
+components:
+ schemas:
+ Settings:
+ type: object
+ properties:
+ indexer.rebalance.transferBatchSize:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 3
+ x-has-example: true
+ example: 7
+ writeOnly: true
+ description: |-
+ Sets the batch size Couchbase Server uses when rebuilding index files during rebalance.
+ This setting has no effect on file-based rebalance.
+
+ Couchbase Server breaks the rebuilding of indexes during a rebalance into batches to limit the performance impact.
+ This setting controls the maximum number of indexes that a rebalance rebuilds concurrently.
+ You must have the Full Admin or the Cluster Admin role to set this value.
+
+ For an overview of rebalance as it affects the Index Service, including an overview of smart batching, see [Rebalance](/server/8.0/learn/clusters-and-availability/rebalance.html#rebalancing-the-index-service).
+ indexer.settings.allow_large_keys:
+ type: boolean
+ x-has-default: true
+ default: true
+ description: |-
+ Whether the size of index keys is unlimited.
+
+ * If true, index keys may have unlimited size.
+ * If false, the maximum size for index keys and array index keys is specified by `indexer.settings.max_seckey_size` and `indexer.settings.max_array_seckey_size`.
+
+ In Couchbase Server 6.5 and later, the Index Service does not need to restart when you update this setting.
+ indexer.settings.bufferPoolBlockSize:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 16384
+ description: Buffer pool block size.
+ indexer.settings.build.batch_size:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 5
+ description: Build batch size.
+ indexer.settings.compaction.abort_exceed_interval:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: Whether to abort index compaction if it is still running after the end of the index compaction interval.
+ indexer.settings.compaction.check_period:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 30
+ description: An interval, specifying how frequently the Index Service checks whether the compaction threshold has been reached (seconds).
+ indexer.settings.compaction.compaction_mode:
+ type: string
+ x-has-default: true
+ default: circular
+ description: The compaction mode for indexes.
+ enum:
+ - standard
+ - circular
+ indexer.settings.compaction.days_of_week:
+ type: string
+ x-has-example: true
+ example: Saturday,Sunday
+ x-has-default: true
+ default: Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
+ description: |-
+ The days of the week on which circular compaction is to run, if specified.
+ Individual values must be day-names, each specified with an initial capital, and otherwise lower-case.
+ Multiple values must be separated by a single comma, with no spaces.
+ indexer.settings.compaction.interval:
+ type: string
+ x-has-example: true
+ example: 01:00,05:59
+ x-has-default: true
+ default: 00:00,00:00
+ description: |-
+ A string in the form `fromHour:fromMinute,toHour:toMinute`, specifying the interval during which index compaction can run.
+
+ * `fromHour` —
+ An integer between 0 and 23 inclusive, specifying the starting hour of the interval.
+ * `fromMinute` —
+ An integer between 0 and 59 inclusive, specifying the starting minute of the interval, within the specified starting hour.
+ * `toHour` —
+ An integer between 0 and 23 inclusive, specifying the concluding hour of the interval.
+ * `toMinute` —
+ An integer between 0 and 59 inclusive, specifying the concluding minute of the interval, within the specified concluding hour.
+
+ The default value means any time.
+ indexer.settings.compaction.min_frag:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 30
+ minimum: 5
+ description: The minimum fragmentation threshold to trigger compaction (percentage).
+ indexer.settings.compaction.min_size:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 524288000
+ description: Compaction minimum file size.
+ indexer.settings.compaction.plasma.manual:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: For standard indexes using Plasma, whether compaction should be triggered manually.
+ indexer.settings.compaction.plasma.optional.decrement:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 5
+ description: For standard indexes using Plasma, the optional decrement.
+ indexer.settings.compaction.plasma.optional.min_frag:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 20
+ description: For standard indexes using Plasma, the minimum fragmentation threshold to trigger compaction (percentage).
+ indexer.settings.compaction.plasma.optional.quota:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 25
+ description: For standard indexes using Plasma, the optional quota.
+ indexer.settings.corrupt_index_num_backups:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 1
+ description: Corrupt index number of backups.
+ indexer.settings.cpuProfDir:
+ type: string
+ description: The name of the directory where local CPU usage profiling information is captured.
+ indexer.settings.cpuProfile:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: Whether the Index Service should capture local CPU usage profiling information.
+ indexer.settings.defer_build:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: |-
+ The default setting for the `defer_build` option for index creation.
+
+ * If this setting is true, and you create an index without specifying `defer_build`, the index is not built immediately.
+ * If this setting false, and you create an index without specifying `defer_build`, the index is built immediately.
+
+ You can override this setting by specifying the `defer_build` option when you create an index.
+ indexer.settings.eTagPeriod:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 240
+ description: The ETag (entity tag) period.
+ indexer.settings.enable_corrupt_index_backup:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: Whether corrupt index backup is enabled.
+ indexer.settings.enable_page_bloom_filter:
+ type: boolean
+ x-has-default: true
+ default: true
+ description: |-
+ Whether Bloom filters are enabled for memory management.
+
+ For details, see [Per Page Bloom Filters](/server/8.0/learn/services-and-indexes/indexes/storage-modes.html#per-page-bloom-filters).
+ indexer.settings.enable_shard_affinity:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: |-
+ Selects the index rebalance method.
+ See [Index Rebalance Methods](/server/8.0/learn/clusters-and-availability/rebalance.html#index-rebalance-methods).
+
+ * If false (the default), Index Service nodes rebuild indexes that are newly assigned to them during a rebalance.
+
+ * If true, Couchbase Server moves a reassigned index's files between Index Service nodes.
+
+ If set to true, when you create an index, you can use the `WITH` clause to specify which node should contain the index.
+ However, when you alter an index, you cannot use the `WITH` clause to specify which node should contain the index.
+ indexer.settings.fast_flush_mode:
+ type: boolean
+ x-has-default: true
+ default: true
+ description: Whether fast flush mode is enabled.
+ indexer.settings.gc_percent:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 100
+ description: Garbage collection percentage.
+ indexer.settings.inmemory_snapshot.fdb.interval:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 200
+ minimum: 1
+ exclusiveMinimum: true
+ description: |-
+ For standard indexes using ForestDB, the in-memory snapshotting interval (ms).
+ This determines the earliest possibility of a scan seeing a given KV mutation.
+ indexer.settings.inmemory_snapshot.interval:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 200
+ minimum: 1
+ exclusiveMinimum: true
+ description: |-
+ The in-memory snapshotting interval (ms).
+ This determines the earliest possibility of a scan seeing a given KV mutation.
+ indexer.settings.inmemory_snapshot.moi.interval:
+ type: integer
+ format: int32
+ minimum: 1
+ exclusiveMinimum: true
+ x-has-default: true
+ default: 10
+ description: |-
+ For memory-optimized indexes, the in-memory snapshotting interval (ms).
+ This determines the earliest possibility of a scan seeing a given KV mutation.
+ indexer.settings.largeSnapshotThreshold:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 200
+ description: The large snapshot threshold.
+ indexer.settings.log_level:
+ type: string
+ x-has-default: true
+ default: info
+ description: Indexer logging level.
+ enum:
+ - silent
+ - fatal
+ - error
+ - warn
+ - info
+ - verbose
+ - timing
+ - debug
+ - trace
+ indexer.settings.maxNumPartitions:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 64
+ description: Maximum number of partitions.
+ indexer.settings.maxVbQueueLength:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 0
+ description: Maximum vBucket queue length.
+ indexer.settings.max_array_seckey_size:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 10240
+ description: |-
+ If `indexer.settings.allow_large_keys` is false, this setting specifies the maximum size for array index keys.
+
+ In Couchbase Server 6.5 and later, the Index Service does not need to restart when you update this setting.
+ indexer.settings.max_cpu_percent:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 0
+ description: |-
+ The CPU capacity that the Index Service should use (percentage).
+ If set to `0`, the indexer will use all CPUs.
+ indexer.settings.max_seckey_size:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 4608
+ description: |-
+ If `indexer.settings.allow_large_keys` is false, this setting specifies the maximum size for index keys.
+
+ In Couchbase Server 6.5 and later, the Index Service does not need to restart when you update this setting.
+ indexer.settings.max_writer_lock_prob:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 20
+ description: Maximum writer lock prob.
+ indexer.settings.memProfDir:
+ type: string
+ description: The name of the directory where local memory usage profiling information is captured.
+ indexer.settings.memProfile:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: Whether the Index Service should capture local memory usage profiling information.
+ indexer.settings.memory_quota:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 536870912
+ description: How much RAM is allocated to the Index Service for the current node.
+ indexer.settings.minVbQueueLength:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 30
+ description: Minimum vBucket queue length.
+ indexer.settings.moi.debug:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: Debug memory-optimized index storage.
+ indexer.settings.moi.persistence_threads:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 4
+ description: For memory-optimized index storage, the number of persistence threads.
+ indexer.settings.moi.recovery.max_rollbacks:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 2
+ description: For memory-optimized index storage, the maximum number of committed rollback points.
+ indexer.settings.moi.recovery_threads:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 8
+ description: For memory-optimized index storage, the number of recovery threads.
+ indexer.settings.num_replica:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 0
+ x-has-example: true
+ example: 2
+ description: The default number of index replicas to be created by the Index Service whenever `CREATE INDEX` is invoked.
+ indexer.settings.percentage_memory_quota:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 0
+ description: Percentage memory quota.
+ indexer.settings.persisted_snapshot.fdb.interval:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 5000
+ minimum: 100
+ description: |-
+ For standard indexes using ForestDB, the persisted snapshotting interval (ms).
+ This must be a multiple of the in-memory snapshot interval.
+ indexer.settings.persisted_snapshot.interval:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 5000
+ minimum: 100
+ description: |-
+ The persisted snapshotting interval (ms).
+ This must be a multiple of the in-memory snapshot interval.
+ indexer.settings.persisted_snapshot.moi.interval:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 600000
+ minimum: 100
+ description: |-
+ For memory-optimized indexes, the persisted snapshotting interval (ms).
+ This must be a multiple of the in-memory snapshot interval.
+ indexer.settings.persisted_snapshot_init_build.fdb.interval:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 5000
+ description: For standard indexes using ForestDB, the persisted snapshotting interval for the initial build (ms).
+ indexer.settings.persisted_snapshot_init_build.interval:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 5000
+ description: The persisted snapshotting interval for the initial build (ms).
+ indexer.settings.persisted_snapshot_init_build.moi.interval:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 600000
+ description: For memory-optimized indexes, the persisted snapshotting interval for the initial build (ms).
+ indexer.settings.plasma.recovery.max_rollbacks:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 2
+ description: For standard indexes using Plasma, the maximum number of committed rollback points.
+ indexer.settings.rebalance.blob_storage_bucket:
+ type: string
+ x-has-default: true
+ default: ""
+ description: Rebalance blob storage bucket.
+ indexer.settings.rebalance.blob_storage_prefix:
+ type: string
+ x-has-default: true
+ default: ""
+ description: Rebalance blob storage prefix.
+ indexer.settings.rebalance.blob_storage_region:
+ type: string
+ x-has-default: true
+ default: ""
+ description: Rebalance blob storage region.
+ indexer.settings.rebalance.blob_storage_scheme:
+ type: string
+ x-has-default: true
+ default: ""
+ description: Rebalance blob storage scheme.
+ indexer.settings.rebalance.redistribute_indexes:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: |-
+ Whether to redistribute indexes on rebalance.
+
+ * When true, Couchbase Server redistributes indexes when rebalance occurs, in order to optimize performance.
+
+ * When false (the default), such redistribution does not occur.
+
+ For details, see [Rebalance](/server/8.0/learn/clusters-and-availability/rebalance.html#rebalancing-the-index-service).
+ indexer.settings.recovery.max_rollbacks:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 2
+ description: The maximum number of committed rollback points.
+ indexer.settings.scan_getseqnos_retries:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 30
+ description: Scan get sequence numbers retries.
+ indexer.settings.scan_timeout:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 120000
+ description: |-
+ The default timeout for the indexer, in milliseconds.
+ This is distinct from the Query Service timeout.
+ The Index Service has its own timeout because index scans consume resources such as memory and CPU while holding snapshots and performing range scan.
+
+ An index scan may time out if the Index Service timeout is lower than the Query Service timeout.
+ indexer.settings.send_buffer_size:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 1024
+ description: Send buffer size.
+ indexer.settings.serverless.indexLimit:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 201
+ description: Serverless index limit.
+ indexer.settings.sliceBufSize:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 1600
+ description: Slice buffer size.
+ indexer.settings.smallSnapshotThreshold:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 30
+ description: Small snapshot threshold.
+ indexer.settings.snapshotListeners:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 4
+ description: Snapshot listeners.
+ indexer.settings.snapshotRequestWorkers:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 4
+ description: Snapshot request workers.
+ indexer.settings.statsLogDumpInterval:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 60
+ description: Statistics log dump interval.
+ indexer.settings.storage_mode:
+ $ref: "#/components/schemas/SettingsStorageMode"
+ indexer.settings.storage_mode.disable_upgrade:
+ type: boolean
+ x-has-default: true
+ default: false
+ description: Whether upgrade of the index storage mode is disabled.
+ indexer.settings.thresholds.mem_high:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 70
+ description: High memory threshold.
+ indexer.settings.thresholds.mem_low:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 50
+ description: Low memory threshold.
+ indexer.settings.thresholds.units_high:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 60
+ description: High units threshold.
+ indexer.settings.thresholds.units_low:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 40
+ description: Low units threshold.
+ indexer.settings.units_quota:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 10000
+ description: Units quota.
+ indexer.settings.wal_size:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 4096
+ description: Write-ahead log size.
+ projector.settings.log_level:
+ type: string
+ x-has-default: true
+ default: info
+ description: Projector logging level.
+ queryport.client.settings.backfillLimit:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 5120
+ description: |-
+ The maximum size of the backfill file (MB).
+
+ * A value of `0` disables backfill.
+ * A value of `-1` means the size is unlimited.
+
+ The maximum size is limited only by the available disk space.
+ queryport.client.settings.closeActiveConnections:
+ type: boolean
+ x-has-default: true
+ default: true
+ description: Whether to close active connections.
+ queryport.client.settings.minPoolSizeWM:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 1000
+ description: Minimum pool size.
+ queryport.client.settings.poolOverflow:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 30
+ description: Maximum number of connections in a pool.
+ queryport.client.settings.poolSize:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 5000
+ description: Number of simultaneous active connections in a pool.
+ queryport.client.settings.relConnBatchSize:
+ type: integer
+ format: int32
+ x-has-default: true
+ default: 100
+ description: Connection batch size.
+ SettingsStorageMode:
+ title: Storage Mode
+ description: The storage mode to be used for the Index Service on this node.
+ oneOf:
+ - $ref: "#/components/schemas/SettingsStorageModeEE"
+ - $ref: "#/components/schemas/SettingsStorageModeCE"
+ SettingsStorageModeEE:
+ title: Enterprise Edition
+ type: string
+ default: plasma
+ x-desc-edition: "{enterprise}"
+ description: |-
+ If you are using Enterprise Edition, the possible values are:
+
+ * `plasma` (the default) —
+ Sets the index storage mode to use the Plasma storage engine, which can utilize both memory and persistent storage for index maintenance and index scans.
+
+ * `memory_optimized` —
+ Sets the index storage mode to use memory optimized global secondary indexes, which can perform index maintenance and index scan faster at in-memory speeds.
+
+ This setting can only be changed while there are no index nodes in the cluster.
+ To change from standard GSI to memory optimized GSI or vice versa, you need to remove all the Index Service nodes in the cluster.
+ enum:
+ - plasma
+ - memory_optimized
+ SettingsStorageModeCE:
+ title: Community Edition
+ type: string
+ default: forestdb
+ x-desc-edition: "{community}"
+ description: |-
+ If you are using Community Edition, the default (and only) value is `forestdb`.
+ enum:
+ - forestdb
+
+ responses:
+ NotFound:
+ description: |-
+ Not found.
+ The URL may be specified incorrectly.
+ Unauthorized:
+ description: |-
+ Unauthorized.
+ Failure to authenticate.
+
+ securitySchemes:
+ Default:
+ type: http
+ scheme: basic
+ description: |-
+ Users must have the Full Admin or Cluster Admin role, with Cluster Read and Bucket INDEX List privileges.
diff --git a/docs/modules/index-rest-settings/examples/get_settings.json b/docs/modules/index-rest-settings/examples/get_settings.json
new file mode 100644
index 00000000..0ddb0911
--- /dev/null
+++ b/docs/modules/index-rest-settings/examples/get_settings.json
@@ -0,0 +1,84 @@
+{
+ "indexer.settings.allow_large_keys": true,
+ "indexer.settings.bufferPoolBlockSize": 16384,
+ "indexer.settings.build.batch_size": 5,
+ "indexer.settings.compaction.abort_exceed_interval": false,
+ "indexer.settings.compaction.check_period": 30,
+ "indexer.settings.compaction.compaction_mode": "circular",
+ "indexer.settings.compaction.days_of_week": "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday",
+ "indexer.settings.compaction.interval": "00:00,00:00",
+ "indexer.settings.compaction.min_frag": 30,
+ "indexer.settings.compaction.min_size": 524288000,
+ "indexer.settings.compaction.plasma.manual": false,
+ "indexer.settings.compaction.plasma.optional.decrement": 5,
+ "indexer.settings.compaction.plasma.optional.min_frag": 20,
+ "indexer.settings.compaction.plasma.optional.quota": 25,
+ "indexer.settings.corrupt_index_num_backups": 1,
+ "indexer.settings.cpuProfDir": "",
+ "indexer.settings.cpuProfile": false,
+ "indexer.settings.defer_build": false,
+ "indexer.settings.eTagPeriod": 240,
+ "indexer.settings.enable_corrupt_index_backup": false,
+ "indexer.settings.enable_page_bloom_filter": true,
+ "indexer.settings.enable_shard_affinity": false,
+ "indexer.settings.fast_flush_mode": true,
+ "indexer.settings.gc_percent": 100,
+ "indexer.settings.inmemory_snapshot.fdb.interval": 200,
+ "indexer.settings.inmemory_snapshot.interval": 200,
+ "indexer.settings.inmemory_snapshot.moi.interval": 10,
+ "indexer.settings.largeSnapshotThreshold": 200,
+ "indexer.settings.log_level": "info",
+ "indexer.settings.maxNumPartitions": 64,
+ "indexer.settings.maxVbQueueLength": 0,
+ "indexer.settings.max_array_seckey_size": 10240,
+ "indexer.settings.max_cpu_percent": 0,
+ "indexer.settings.max_seckey_size": 4608,
+ "indexer.settings.max_writer_lock_prob": 20,
+ "indexer.settings.memProfDir": "",
+ "indexer.settings.memProfile": false,
+ "indexer.settings.memory_quota": 536870912,
+ "indexer.settings.minVbQueueLength": 30,
+ "indexer.settings.moi.debug": false,
+ "indexer.settings.moi.persistence_threads": 4,
+ "indexer.settings.moi.recovery.max_rollbacks": 2,
+ "indexer.settings.moi.recovery_threads": 8,
+ "indexer.settings.num_replica": 0,
+ "indexer.settings.percentage_memory_quota": 0,
+ "indexer.settings.persisted_snapshot.fdb.interval": 5000,
+ "indexer.settings.persisted_snapshot.interval": 5000,
+ "indexer.settings.persisted_snapshot.moi.interval": 600000,
+ "indexer.settings.persisted_snapshot_init_build.fdb.interval": 5000,
+ "indexer.settings.persisted_snapshot_init_build.interval": 5000,
+ "indexer.settings.persisted_snapshot_init_build.moi.interval": 600000,
+ "indexer.settings.plasma.recovery.max_rollbacks": 2,
+ "indexer.settings.rebalance.blob_storage_bucket": "",
+ "indexer.settings.rebalance.blob_storage_prefix": "",
+ "indexer.settings.rebalance.blob_storage_region": "",
+ "indexer.settings.rebalance.blob_storage_scheme": "",
+ "indexer.settings.rebalance.redistribute_indexes": false,
+ "indexer.settings.recovery.max_rollbacks": 2,
+ "indexer.settings.scan_getseqnos_retries": 30,
+ "indexer.settings.scan_timeout": 120000,
+ "indexer.settings.send_buffer_size": 1024,
+ "indexer.settings.serverless.indexLimit": 201,
+ "indexer.settings.sliceBufSize": 1600,
+ "indexer.settings.smallSnapshotThreshold": 30,
+ "indexer.settings.snapshotListeners": 4,
+ "indexer.settings.snapshotRequestWorkers": 4,
+ "indexer.settings.statsLogDumpInterval": 60,
+ "indexer.settings.storage_mode": "plasma",
+ "indexer.settings.storage_mode.disable_upgrade": false,
+ "indexer.settings.thresholds.mem_high": 70,
+ "indexer.settings.thresholds.mem_low": 50,
+ "indexer.settings.thresholds.units_high": 60,
+ "indexer.settings.thresholds.units_low": 40,
+ "indexer.settings.units_quota": 10000,
+ "indexer.settings.wal_size": 4096,
+ "projector.settings.log_level": "info",
+ "queryport.client.settings.backfillLimit": 5120,
+ "queryport.client.settings.closeActiveConnections": true,
+ "queryport.client.settings.minPoolSizeWM": 1000,
+ "queryport.client.settings.poolOverflow": 30,
+ "queryport.client.settings.poolSize": 5000,
+ "queryport.client.settings.relConnBatchSize": 100
+}
\ No newline at end of file
diff --git a/docs/modules/index-rest-settings/index-settings.gradle b/docs/modules/index-rest-settings/index-settings.gradle
new file mode 100644
index 00000000..fd5fec4b
--- /dev/null
+++ b/docs/modules/index-rest-settings/index-settings.gradle
@@ -0,0 +1,23 @@
+apply plugin: 'org.openapi.generator'
+
+openApiGenerate {
+ generatorName = "asciidoc"
+ inputSpec = file("attachments/index-settings.yaml").getAbsolutePath().toString()
+ outputDir = "${rootDir}/docs/modules/index-rest-settings/pages"
+ templateDir = "${rootDir}/templates"
+ gitRepoId = "cb-swagger"
+ gitUserId = "couchbaselabs"
+ additionalProperties = [
+ specDir: "${rootDir}/docs/modules/index-rest-settings/partials/",
+ snippetDir: "${rootDir}/docs/modules/index-rest-settings/partials/paths/",
+ headerAttributes: "true",
+ useIntroduction: "true",
+ useTableTitles: "true",
+ skipExamples: "true",
+ legacyDiscriminatorBehavior: "true"
+ ]
+ globalProperties = [
+ generateAliasAsModel: "true"
+ ]
+ generateAliasAsModel = true
+}
\ No newline at end of file
diff --git a/docs/modules/index-rest-settings/pages/index.adoc b/docs/modules/index-rest-settings/pages/index.adoc
new file mode 100644
index 00000000..165c65ce
--- /dev/null
+++ b/docs/modules/index-rest-settings/pages/index.adoc
@@ -0,0 +1,2169 @@
+= Index Settings REST API
+:keywords: OpenAPI, REST
+:specDir: partial$
+:snippetDir: partial$paths/
+:page-topic-type: reference
+:page-toclevels: 2
+include::partial$header-attributes.adoc[opts=optional]
+
+[comment]
+This file is created automatically by OpenAPI Generator.
+DO NOT EDIT! See https://github.com/couchbaselabs/cb-swagger
+
+:leveloffset: 1
+
+include::{specDir}overview/document-before.adoc[opts=optional]
+
+
+[[overview]]
+= Overview
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}overview/document-begin.adoc[opts=optional]
+
+
+[markdown]
+--
+The Index Settings REST API is provided by the Index Service.
+This API enables you to retrieve or set Index Service settings.
+
+Changes automatically propagate to all Index Service nodes, and will be remembered across node and cluster restarts.
+
+Unless otherwise noted, you should only change the Index Service settings when advised to do so by Couchbase Support.
+--
+
+[discrete#version]
+= Version information
+[%hardbreaks]
+__Version__ : 8.0
+
+[discrete#host]
+= Host information
+
+....
+{scheme}://{host}:{port}
+....
+
+[markdown]
+--
+The URL scheme, host, and port are as follows.
+--
+
+[cols="20,80"]
+|===
+| Component | Description
+
+a| *scheme*
+a| [markdown]
+--
+The URL scheme. Use `https` for secure access.
+--
+
+[%hardbreaks]
+*Values:* `http`, `https`
+*Example:* `+++http+++`
+// end
+
+a| *host*
+a| [markdown]
+--
+The host name or IP address of a node running the Index Service.
+--
+
+[%hardbreaks]
+
+*Example:* `+++localhost+++`
+// end
+
+a| *port*
+a| [markdown]
+--
+The Index Service REST port. Use `19102` for secure access.
+--
+
+[%hardbreaks]
+*Values:* `9102`, `19102`
+*Example:* `+++9102+++`
+// end
+
+|===
+
+
+include::{specDir}overview/document-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+// markup not found, no include::{specDir}overview/document-after.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}paths/document-before.adoc[opts=optional]
+
+
+[[resources]]
+= Resources
+
+:count-apis: 1
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/document-begin.adoc[opts=optional]
+
+
+This section describes the operations available with this REST API.
+ifeval::[{count-apis} > 1]
+The operations are grouped in the following categories.
+
+[%hardbreaks]
+xref:tag-Default[]
+endif::[]
+
+
+ifeval::[{count-apis} > 1]
+[#tag-Default]
+= Default
+:leveloffset: +1
+
+ifeval::["" != ""]
+
+endif::[]
+ifeval::["" == ""]
+**{toc-title}**
+endif::[]
+endif::[]
+
+[%hardbreaks]
+xref:get_settings[]
+xref:post_settings[]
+
+
+//tag::get_settings[]
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-before.adoc[opts=optional]
+
+
+[#get_settings]
+= Retrieve Index Settings
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/get_settings/operation-begin.adoc[opts=optional]
+
+
+....
+GET /settings
+....
+
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-description-before.adoc[opts=optional]
+
+
+[#get_settings-description]
+= Description
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/get_settings/operation-description-begin.adoc[opts=optional]
+
+
+[markdown]
+--
+Returns Index Service settings.
+--
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-description-end.adoc[opts=optional]
+
+
+
+[#get_settings-produces]
+.Produces
+* application/json
+
+:leveloffset: -1
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-description-after.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-parameters-before.adoc[opts=optional]
+
+
+
+
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-parameters-after.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-responses-before.adoc[opts=optional]
+
+
+[#get_settings-responses]
+= Responses
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/get_settings/operation-responses-begin.adoc[opts=optional]
+
+
+[cols="20,60,20"]
+|===
+| HTTP Code | Description | Schema
+
+| 200
+a| [markdown]
+--
+Success. Returns an object giving Index Service settings.
+--
+a| xref:Settings[]
+
+
+| 404
+a| [markdown]
+--
+Not found. The URL may be specified incorrectly.
+--
+a|
+| 401
+a| [markdown]
+--
+Unauthorized. Failure to authenticate.
+--
+a|
+
+|===
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-responses-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-responses-after.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-security-before.adoc[opts=optional]
+
+
+[#get_settings-security]
+= Security
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/get_settings/operation-security-begin.adoc[opts=optional]
+
+
+[cols="20,80"]
+|===
+| Type | Name
+
+| http (basic)
+| xref:security-default[]
+
+|===
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-security-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-security-after.adoc[opts=optional]
+
+
+
+include::{snippetDir}get_settings/http-request.adoc[opts=optional]
+
+
+include::{snippetDir}get_settings/http-response.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+// markup not found, no include::{specDir}paths/get_settings/operation-after.adoc[opts=optional]
+
+
+//end::get_settings[]
+
+
+//tag::post_settings[]
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-before.adoc[opts=optional]
+
+
+[#post_settings]
+= Update Index Settings
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/post_settings/operation-begin.adoc[opts=optional]
+
+
+....
+POST /settings
+....
+
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-description-before.adoc[opts=optional]
+
+
+[#post_settings-description]
+= Description
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/post_settings/operation-description-begin.adoc[opts=optional]
+
+
+[markdown]
+--
+Updates Index Service settings.
+--
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-description-end.adoc[opts=optional]
+
+
+[#post_settings-consumes]
+.Consumes
+* application/json
+
+
+:leveloffset: -1
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-description-after.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-parameters-before.adoc[opts=optional]
+
+
+[#post_settings-parameters]
+= Parameters
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/post_settings/operation-parameters-begin.adoc[opts=optional]
+
+
+
+
+
+
+[#post_settings-body]
+.Body Parameter
+{blank}
+
+[cols="20,60,20",separator=¦]
+|===
+¦ Name ¦ Description ¦ Schema
+
+a¦ *Body* +
+_required_
+a¦
+
+
+[markdown]
+--
+An object specifying Index Service settings. You only need to specify the settings you want to change; settings which are not specified are left unchanged.
+--
+
+[%hardbreaks]
+{blank}
+
+a¦ xref:Settings[]
+
+
+
+|===
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-parameters-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-parameters-after.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-responses-before.adoc[opts=optional]
+
+
+[#post_settings-responses]
+= Responses
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/post_settings/operation-responses-begin.adoc[opts=optional]
+
+
+[cols="20,60,20"]
+|===
+| HTTP Code | Description | Schema
+
+| 200
+a| [markdown]
+--
+Success. Returns `OK` and no object.
+--
+a|
+| 401
+a| [markdown]
+--
+Unauthorized. Failure to authenticate.
+--
+a|
+| 404
+a| [markdown]
+--
+Not found. The URL may be specified incorrectly.
+--
+a|
+
+|===
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-responses-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-responses-after.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-security-before.adoc[opts=optional]
+
+
+[#post_settings-security]
+= Security
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}paths/post_settings/operation-security-begin.adoc[opts=optional]
+
+
+[cols="20,80"]
+|===
+| Type | Name
+
+| http (basic)
+| xref:security-default[]
+
+|===
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-security-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-security-after.adoc[opts=optional]
+
+
+
+include::{snippetDir}post_settings/http-request.adoc[opts=optional]
+
+
+// markup not found, no include::{snippetDir}post_settings/http-response.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+// markup not found, no include::{specDir}paths/post_settings/operation-after.adoc[opts=optional]
+
+
+//end::post_settings[]
+
+
+ifeval::[{count-apis} > 1]
+:leveloffset: -1
+endif::[]
+
+
+
+// markup not found, no include::{specDir}paths/document-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+// markup not found, no include::{specDir}paths/document-after.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}definitions/document-before.adoc[opts=optional]
+
+
+[#models]
+= Definitions
+
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}definitions/document-begin.adoc[opts=optional]
+
+
+This section describes the properties consumed and returned by this REST API.
+
+ifeval::[{count-models} > 1]
+ifdef::collapse-models[]
+[.two-columns]
+endif::collapse-models[]
+[%hardbreaks]
+xref:Settings[]
+xref:SettingsStorageMode[]
+ifdef::enum-definitions[]
+xref:SettingsStorageModeCE[]
+endif::enum-definitions[]
+ifdef::enum-definitions[]
+xref:SettingsStorageModeEE[]
+endif::enum-definitions[]
+endif::[]
+
+
+
+// markup not found, no include::{specDir}definitions/Settings/definition-before.adoc[opts=optional]
+
+
+ifdef::collapse-models[]
+[discrete]
+endif::collapse-models[]
+[#Settings]
+= Settings
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}definitions/Settings/definition-begin.adoc[opts=optional]
+
+
+.icon:brackets-curly[fw] Object
+{blank}
+
+//tag::Settings[]
+
+
+[cols="25,55,20",separator=¦]
+|===
+¦ Property ¦ ¦ Schema
+
+a¦
+*indexer.rebalance.transferBatchSize* +
+_optional_
+a¦
+
+[markdown]
+--
+Sets the batch size Couchbase Server uses when rebuilding index files during rebalance.
+This setting has no effect on file-based rebalance.
+
+Couchbase Server breaks the rebuilding of indexes during a rebalance into batches to limit the performance impact.
+This setting controls the maximum number of indexes that a rebalance rebuilds concurrently.
+You must have the Full Admin or the Cluster Admin role to set this value.
+
+For an overview of rebalance as it affects the Index Service, including an overview of smart batching, see [Rebalance](/server/8.0/learn/clusters-and-availability/rebalance.html#rebalancing-the-index-service).
+--
+
+[%hardbreaks]
+*Default:* `3`
+*Example:* `7`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.allow_large_keys* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether the size of index keys is unlimited.
+
+* If true, index keys may have unlimited size.
+* If false, the maximum size for index keys and array index keys is specified by `indexer.settings.max_seckey_size` and `indexer.settings.max_array_seckey_size`.
+
+In Couchbase Server 6.5 and later, the Index Service does not need to restart when you update this setting.
+--
+
+[%hardbreaks]
+*Default:* `true`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.bufferPoolBlockSize* +
+_optional_
+a¦
+
+[markdown]
+--
+Buffer pool block size.
+--
+
+[%hardbreaks]
+*Default:* `16384`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.build.batch_size* +
+_optional_
+a¦
+
+[markdown]
+--
+Build batch size.
+--
+
+[%hardbreaks]
+*Default:* `5`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.compaction.abort_exceed_interval* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether to abort index compaction if it is still running after the end of the index compaction interval.
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.compaction.check_period* +
+_optional_
+a¦
+
+[markdown]
+--
+An interval, specifying how frequently the Index Service checks whether the compaction threshold has been reached (seconds).
+--
+
+[%hardbreaks]
+*Default:* `30`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.compaction.compaction_mode* +
+_optional_
+a¦
+
+[markdown]
+--
+The compaction mode for indexes.
+--
+
+[%hardbreaks]
+*Values:* `"standard"`, `"circular"`
+*Default:* `+++"circular"+++`
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.compaction.days_of_week* +
+_optional_
+a¦
+
+[markdown]
+--
+The days of the week on which circular compaction is to run, if specified.
+Individual values must be day-names, each specified with an initial capital, and otherwise lower-case.
+Multiple values must be separated by a single comma, with no spaces.
+--
+
+[%hardbreaks]
+*Default:* `+++"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday"+++`
+*Example:* `+++"Saturday,Sunday"+++`
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.compaction.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+A string in the form `fromHour:fromMinute,toHour:toMinute`, specifying the interval during which index compaction can run.
+
+* `fromHour` —
+ An integer between 0 and 23 inclusive, specifying the starting hour of the interval.
+* `fromMinute` —
+ An integer between 0 and 59 inclusive, specifying the starting minute of the interval, within the specified starting hour.
+* `toHour` —
+ An integer between 0 and 23 inclusive, specifying the concluding hour of the interval.
+* `toMinute` —
+ An integer between 0 and 59 inclusive, specifying the concluding minute of the interval, within the specified concluding hour.
+
+The default value means any time.
+--
+
+[%hardbreaks]
+*Default:* `+++"00:00,00:00"+++`
+*Example:* `+++"01:00,05:59"+++`
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.compaction.min_frag* +
+_optional_
+a¦
+
+[markdown]
+--
+The minimum fragmentation threshold to trigger compaction (percentage).
+--
+
+[%hardbreaks]
+*Default:* `30`
+*Minimum:* `5`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.compaction.min_size* +
+_optional_
+a¦
+
+[markdown]
+--
+Compaction minimum file size.
+--
+
+[%hardbreaks]
+*Default:* `524288000`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.compaction.plasma.manual* +
+_optional_
+a¦
+
+[markdown]
+--
+For standard indexes using Plasma, whether compaction should be triggered manually.
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.compaction.plasma.optional.decrement* +
+_optional_
+a¦
+
+[markdown]
+--
+For standard indexes using Plasma, the optional decrement.
+--
+
+[%hardbreaks]
+*Default:* `5`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.compaction.plasma.optional.min_frag* +
+_optional_
+a¦
+
+[markdown]
+--
+For standard indexes using Plasma, the minimum fragmentation threshold to trigger compaction (percentage).
+--
+
+[%hardbreaks]
+*Default:* `20`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.compaction.plasma.optional.quota* +
+_optional_
+a¦
+
+[markdown]
+--
+For standard indexes using Plasma, the optional quota.
+--
+
+[%hardbreaks]
+*Default:* `25`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.corrupt_index_num_backups* +
+_optional_
+a¦
+
+[markdown]
+--
+Corrupt index number of backups.
+--
+
+[%hardbreaks]
+*Default:* `1`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.cpuProfDir* +
+_optional_
+a¦
+
+[markdown]
+--
+The name of the directory where local CPU usage profiling information is captured.
+--
+
+[%hardbreaks]
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.cpuProfile* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether the Index Service should capture local CPU usage profiling information.
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.defer_build* +
+_optional_
+a¦
+
+[markdown]
+--
+The default setting for the `defer_build` option for index creation.
+
+* If this setting is true, and you create an index without specifying `defer_build`, the index is not built immediately.
+* If this setting false, and you create an index without specifying `defer_build`, the index is built immediately.
+
+You can override this setting by specifying the `defer_build` option when you create an index.
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.eTagPeriod* +
+_optional_
+a¦
+
+[markdown]
+--
+The ETag (entity tag) period.
+--
+
+[%hardbreaks]
+*Default:* `240`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.enable_corrupt_index_backup* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether corrupt index backup is enabled.
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.enable_page_bloom_filter* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether Bloom filters are enabled for memory management.
+
+For details, see [Per Page Bloom Filters](/server/8.0/learn/services-and-indexes/indexes/storage-modes.html#per-page-bloom-filters).
+--
+
+[%hardbreaks]
+*Default:* `true`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.enable_shard_affinity* +
+_optional_
+a¦
+
+[markdown]
+--
+Selects the index rebalance method.
+See [Index Rebalance Methods](/server/8.0/learn/clusters-and-availability/rebalance.html#index-rebalance-methods).
+
+* If false (the default), Index Service nodes rebuild indexes that are newly assigned to them during a rebalance.
+
+* If true, Couchbase Server moves a reassigned index's files between Index Service nodes.
+
+If set to true, when you create an index, you can use the `WITH` clause to specify which node should contain the index.
+However, when you alter an index, you cannot use the `WITH` clause to specify which node should contain the index.
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.fast_flush_mode* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether fast flush mode is enabled.
+--
+
+[%hardbreaks]
+*Default:* `true`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.gc_percent* +
+_optional_
+a¦
+
+[markdown]
+--
+Garbage collection percentage.
+--
+
+[%hardbreaks]
+*Default:* `100`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.inmemory_snapshot.fdb.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+For standard indexes using ForestDB, the in-memory snapshotting interval (ms).
+This determines the earliest possibility of a scan seeing a given KV mutation.
+--
+
+[%hardbreaks]
+*Default:* `200`
+*Minimum:* `1` (exclusive)
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.inmemory_snapshot.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+The in-memory snapshotting interval (ms).
+This determines the earliest possibility of a scan seeing a given KV mutation.
+--
+
+[%hardbreaks]
+*Default:* `200`
+*Minimum:* `1` (exclusive)
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.inmemory_snapshot.moi.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+For memory-optimized indexes, the in-memory snapshotting interval (ms).
+This determines the earliest possibility of a scan seeing a given KV mutation.
+--
+
+[%hardbreaks]
+*Default:* `10`
+*Minimum:* `1` (exclusive)
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.largeSnapshotThreshold* +
+_optional_
+a¦
+
+[markdown]
+--
+The large snapshot threshold.
+--
+
+[%hardbreaks]
+*Default:* `200`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.log_level* +
+_optional_
+a¦
+
+[markdown]
+--
+Indexer logging level.
+--
+
+[%hardbreaks]
+*Values:* `"silent"`, `"fatal"`, `"error"`, `"warn"`, `"info"`, `"verbose"`, `"timing"`, `"debug"`, `"trace"`
+*Default:* `+++"info"+++`
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.maxNumPartitions* +
+_optional_
+a¦
+
+[markdown]
+--
+Maximum number of partitions.
+--
+
+[%hardbreaks]
+*Default:* `64`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.maxVbQueueLength* +
+_optional_
+a¦
+
+[markdown]
+--
+Maximum vBucket queue length.
+--
+
+[%hardbreaks]
+*Default:* `0`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.max_array_seckey_size* +
+_optional_
+a¦
+
+[markdown]
+--
+If `indexer.settings.allow_large_keys` is false, this setting specifies the maximum size for array index keys.
+
+In Couchbase Server 6.5 and later, the Index Service does not need to restart when you update this setting.
+--
+
+[%hardbreaks]
+*Default:* `10240`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.max_cpu_percent* +
+_optional_
+a¦
+
+[markdown]
+--
+The CPU capacity that the Index Service should use (percentage).
+If set to `0`, the indexer will use all CPUs.
+--
+
+[%hardbreaks]
+*Default:* `0`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.max_seckey_size* +
+_optional_
+a¦
+
+[markdown]
+--
+If `indexer.settings.allow_large_keys` is false, this setting specifies the maximum size for index keys.
+
+In Couchbase Server 6.5 and later, the Index Service does not need to restart when you update this setting.
+--
+
+[%hardbreaks]
+*Default:* `4608`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.max_writer_lock_prob* +
+_optional_
+a¦
+
+[markdown]
+--
+Maximum writer lock prob.
+--
+
+[%hardbreaks]
+*Default:* `20`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.memProfDir* +
+_optional_
+a¦
+
+[markdown]
+--
+The name of the directory where local memory usage profiling information is captured.
+--
+
+[%hardbreaks]
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.memProfile* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether the Index Service should capture local memory usage profiling information.
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.memory_quota* +
+_optional_
+a¦
+
+[markdown]
+--
+How much RAM is allocated to the Index Service for the current node.
+--
+
+[%hardbreaks]
+*Default:* `536870912`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.minVbQueueLength* +
+_optional_
+a¦
+
+[markdown]
+--
+Minimum vBucket queue length.
+--
+
+[%hardbreaks]
+*Default:* `30`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.moi.debug* +
+_optional_
+a¦
+
+[markdown]
+--
+Debug memory-optimized index storage.
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.moi.persistence_threads* +
+_optional_
+a¦
+
+[markdown]
+--
+For memory-optimized index storage, the number of persistence threads.
+--
+
+[%hardbreaks]
+*Default:* `4`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.moi.recovery.max_rollbacks* +
+_optional_
+a¦
+
+[markdown]
+--
+For memory-optimized index storage, the maximum number of committed rollback points.
+--
+
+[%hardbreaks]
+*Default:* `2`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.moi.recovery_threads* +
+_optional_
+a¦
+
+[markdown]
+--
+For memory-optimized index storage, the number of recovery threads.
+--
+
+[%hardbreaks]
+*Default:* `8`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.num_replica* +
+_optional_
+a¦
+
+[markdown]
+--
+The default number of index replicas to be created by the Index Service whenever `CREATE INDEX` is invoked.
+--
+
+[%hardbreaks]
+*Default:* `0`
+*Example:* `2`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.percentage_memory_quota* +
+_optional_
+a¦
+
+[markdown]
+--
+Percentage memory quota.
+--
+
+[%hardbreaks]
+*Default:* `0`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.persisted_snapshot.fdb.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+For standard indexes using ForestDB, the persisted snapshotting interval (ms).
+This must be a multiple of the in-memory snapshot interval.
+--
+
+[%hardbreaks]
+*Default:* `5000`
+*Minimum:* `100`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.persisted_snapshot.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+The persisted snapshotting interval (ms).
+This must be a multiple of the in-memory snapshot interval.
+--
+
+[%hardbreaks]
+*Default:* `5000`
+*Minimum:* `100`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.persisted_snapshot.moi.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+For memory-optimized indexes, the persisted snapshotting interval (ms).
+This must be a multiple of the in-memory snapshot interval.
+--
+
+[%hardbreaks]
+*Default:* `600000`
+*Minimum:* `100`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.persisted_snapshot_init_build.fdb.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+For standard indexes using ForestDB, the persisted snapshotting interval for the initial build (ms).
+--
+
+[%hardbreaks]
+*Default:* `5000`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.persisted_snapshot_init_build.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+The persisted snapshotting interval for the initial build (ms).
+--
+
+[%hardbreaks]
+*Default:* `5000`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.persisted_snapshot_init_build.moi.interval* +
+_optional_
+a¦
+
+[markdown]
+--
+For memory-optimized indexes, the persisted snapshotting interval for the initial build (ms).
+--
+
+[%hardbreaks]
+*Default:* `600000`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.plasma.recovery.max_rollbacks* +
+_optional_
+a¦
+
+[markdown]
+--
+For standard indexes using Plasma, the maximum number of committed rollback points.
+--
+
+[%hardbreaks]
+*Default:* `2`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.rebalance.blob_storage_bucket* +
+_optional_
+a¦
+
+[markdown]
+--
+Rebalance blob storage bucket.
+--
+
+[%hardbreaks]
+*Default:* `+++""+++`
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.rebalance.blob_storage_prefix* +
+_optional_
+a¦
+
+[markdown]
+--
+Rebalance blob storage prefix.
+--
+
+[%hardbreaks]
+*Default:* `+++""+++`
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.rebalance.blob_storage_region* +
+_optional_
+a¦
+
+[markdown]
+--
+Rebalance blob storage region.
+--
+
+[%hardbreaks]
+*Default:* `+++""+++`
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.rebalance.blob_storage_scheme* +
+_optional_
+a¦
+
+[markdown]
+--
+Rebalance blob storage scheme.
+--
+
+[%hardbreaks]
+*Default:* `+++""+++`
+{blank}
+a¦ String
+
+
+a¦
+*indexer.settings.rebalance.redistribute_indexes* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether to redistribute indexes on rebalance.
+
+* When true, Couchbase Server redistributes indexes when rebalance occurs, in order to optimize performance.
+
+* When false (the default), such redistribution does not occur.
+
+For details, see [Rebalance](/server/8.0/learn/clusters-and-availability/rebalance.html#rebalancing-the-index-service).
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.recovery.max_rollbacks* +
+_optional_
+a¦
+
+[markdown]
+--
+The maximum number of committed rollback points.
+--
+
+[%hardbreaks]
+*Default:* `2`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.scan_getseqnos_retries* +
+_optional_
+a¦
+
+[markdown]
+--
+Scan get sequence numbers retries.
+--
+
+[%hardbreaks]
+*Default:* `30`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.scan_timeout* +
+_optional_
+a¦
+
+[markdown]
+--
+The default timeout for the indexer, in milliseconds.
+This is distinct from the Query Service timeout.
+The Index Service has its own timeout because index scans consume resources such as memory and CPU while holding snapshots and performing range scan.
+
+An index scan may time out if the Index Service timeout is lower than the Query Service timeout.
+--
+
+[%hardbreaks]
+*Default:* `120000`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.send_buffer_size* +
+_optional_
+a¦
+
+[markdown]
+--
+Send buffer size.
+--
+
+[%hardbreaks]
+*Default:* `1024`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.serverless.indexLimit* +
+_optional_
+a¦
+
+[markdown]
+--
+Serverless index limit.
+--
+
+[%hardbreaks]
+*Default:* `201`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.sliceBufSize* +
+_optional_
+a¦
+
+[markdown]
+--
+Slice buffer size.
+--
+
+[%hardbreaks]
+*Default:* `1600`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.smallSnapshotThreshold* +
+_optional_
+a¦
+
+[markdown]
+--
+Small snapshot threshold.
+--
+
+[%hardbreaks]
+*Default:* `30`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.snapshotListeners* +
+_optional_
+a¦
+
+[markdown]
+--
+Snapshot listeners.
+--
+
+[%hardbreaks]
+*Default:* `4`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.snapshotRequestWorkers* +
+_optional_
+a¦
+
+[markdown]
+--
+Snapshot request workers.
+--
+
+[%hardbreaks]
+*Default:* `4`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.statsLogDumpInterval* +
+_optional_
+a¦
+
+[markdown]
+--
+Statistics log dump interval.
+--
+
+[%hardbreaks]
+*Default:* `60`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.storage_mode* +
+_optional_
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-SettingsStorageMode, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:SettingsStorageMode[]
+
+
+a¦
+*indexer.settings.storage_mode.disable_upgrade* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether upgrade of the index storage mode is disabled.
+--
+
+[%hardbreaks]
+*Default:* `false`
+{blank}
+a¦ Boolean
+
+
+a¦
+*indexer.settings.thresholds.mem_high* +
+_optional_
+a¦
+
+[markdown]
+--
+High memory threshold.
+--
+
+[%hardbreaks]
+*Default:* `70`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.thresholds.mem_low* +
+_optional_
+a¦
+
+[markdown]
+--
+Low memory threshold.
+--
+
+[%hardbreaks]
+*Default:* `50`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.thresholds.units_high* +
+_optional_
+a¦
+
+[markdown]
+--
+High units threshold.
+--
+
+[%hardbreaks]
+*Default:* `60`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.thresholds.units_low* +
+_optional_
+a¦
+
+[markdown]
+--
+Low units threshold.
+--
+
+[%hardbreaks]
+*Default:* `40`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.units_quota* +
+_optional_
+a¦
+
+[markdown]
+--
+Units quota.
+--
+
+[%hardbreaks]
+*Default:* `10000`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*indexer.settings.wal_size* +
+_optional_
+a¦
+
+[markdown]
+--
+Write-ahead log size.
+--
+
+[%hardbreaks]
+*Default:* `4096`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*projector.settings.log_level* +
+_optional_
+a¦
+
+[markdown]
+--
+Projector logging level.
+--
+
+[%hardbreaks]
+*Default:* `+++"info"+++`
+{blank}
+a¦ String
+
+
+a¦
+*queryport.client.settings.backfillLimit* +
+_optional_
+a¦
+
+[markdown]
+--
+The maximum size of the backfill file (MB).
+
+* A value of `0` disables backfill.
+* A value of `-1` means the size is unlimited.
+
+The maximum size is limited only by the available disk space.
+--
+
+[%hardbreaks]
+*Default:* `5120`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*queryport.client.settings.closeActiveConnections* +
+_optional_
+a¦
+
+[markdown]
+--
+Whether to close active connections.
+--
+
+[%hardbreaks]
+*Default:* `true`
+{blank}
+a¦ Boolean
+
+
+a¦
+*queryport.client.settings.minPoolSizeWM* +
+_optional_
+a¦
+
+[markdown]
+--
+Minimum pool size.
+--
+
+[%hardbreaks]
+*Default:* `1000`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*queryport.client.settings.poolOverflow* +
+_optional_
+a¦
+
+[markdown]
+--
+Maximum number of connections in a pool.
+--
+
+[%hardbreaks]
+*Default:* `30`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*queryport.client.settings.poolSize* +
+_optional_
+a¦
+
+[markdown]
+--
+Number of simultaneous active connections in a pool.
+--
+
+[%hardbreaks]
+*Default:* `5000`
+{blank}
+a¦ Integer (int32)
+
+
+a¦
+*queryport.client.settings.relConnBatchSize* +
+_optional_
+a¦
+
+[markdown]
+--
+Connection batch size.
+--
+
+[%hardbreaks]
+*Default:* `100`
+{blank}
+a¦ Integer (int32)
+
+
+|===
+
+//end::Settings[]
+
+
+
+
+// markup not found, no include::{specDir}definitions/Settings/definition-end.adoc[opts=optional]
+
+
+:leveloffset: -1
+
+// markup not found, no include::{specDir}definitions/Settings/definition-after.adoc[opts=optional]
+
+
+
+
+// markup not found, no include::{specDir}definitions/SettingsStorageMode/definition-before.adoc[opts=optional]
+
+
+ifdef::collapse-models[]
+[discrete]
+endif::collapse-models[]
+[#SettingsStorageMode]
+= Storage Mode
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}definitions/SettingsStorageMode/definition-begin.adoc[opts=optional]
+
+
+.icon:bars[fw] Composite Schema
+{blank}
+
+//tag::SettingsStorageMode[]
+
+ifdef::model-descriptions[]
+//tag::desc-SettingsStorageMode[]
+The storage mode to be used for the Index Service on this node.
+//end::desc-SettingsStorageMode[]
+endif::model-descriptions[]
+
+[cols="25,55,20",separator=¦]
+|===
+¦ One{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦ [.edition]##{enterprise}##
+
+[markdown]
+--
+include::index.adoc[tag=desc-SettingsStorageModeEE, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦
+include::index.adoc[tag=type-SettingsStorageModeEE, opts=optional]
+
+a¦ _or_
+a¦ [.edition]##{community}##
+
+[markdown]
+--
+include::index.adoc[tag=desc-SettingsStorageModeCE, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦
+include::index.adoc[tag=type-SettingsStorageModeCE, opts=optional]
+
+|===
+
+//end::SettingsStorageMode[]
+
+
+// markup not found, no include::{specDir}definitions/SettingsStorageMode/definition-end.adoc[opts=optional]
+
+
+:leveloffset: -1
+
+// markup not found, no include::{specDir}definitions/SettingsStorageMode/definition-after.adoc[opts=optional]
+
+
+ifdef::enum-definitions[]
+[#SettingsStorageModeCE]
+= Community Edition
+
+.icon:menu[fw] Enumeration
+{blank}
+
+//tag::desc-SettingsStorageModeCE[]
+If you are using Community Edition, the default (and only) value is `forestdb`.
+//end::desc-SettingsStorageModeCE[]
+
+.Schema
+//tag::type-SettingsStorageModeCE[]
+String
+
+
+//end::type-SettingsStorageModeCE[]
+endif::enum-definitions[]
+ifdef::enum-definitions[]
+[#SettingsStorageModeEE]
+= Enterprise Edition
+
+.icon:menu[fw] Enumeration
+{blank}
+
+//tag::desc-SettingsStorageModeEE[]
+If you are using Enterprise Edition, the possible values are:
+
+* `plasma` (the default) —
+ Sets the index storage mode to use the Plasma storage engine, which can utilize both memory and persistent storage for index maintenance and index scans.
+
+* `memory_optimized` —
+ Sets the index storage mode to use memory optimized global secondary indexes, which can perform index maintenance and index scan faster at in-memory speeds.
+
+This setting can only be changed while there are no index nodes in the cluster.
+To change from standard GSI to memory optimized GSI or vice versa, you need to remove all the Index Service nodes in the cluster.
+//end::desc-SettingsStorageModeEE[]
+
+.Schema
+//tag::type-SettingsStorageModeEE[]
+String
+
+
+//end::type-SettingsStorageModeEE[]
+endif::enum-definitions[]
+
+
+// markup not found, no include::{specDir}definitions/document-end.adoc[opts=optional]
+
+
+:leveloffset: -1
+
+// markup not found, no include::{specDir}definitions/document-after.adoc[opts=optional]
+
+
+
+// markup not found, no include::{specDir}security/document-before.adoc[opts=optional]
+
+
+[[security]]
+= Security
+
+:leveloffset: +1
+
+include::{specDir}security/document-begin.adoc[opts=optional]
+
+
+
+
+// markup not found, no include::{specDir}security/Default/security-scheme-before.adoc[opts=optional]
+
+
+[[security-default]]
+= Default
+
+:leveloffset: +1
+
+// markup not found, no include::{specDir}security/Default/security-scheme-begin.adoc[opts=optional]
+
+
+[markdown]
+--
+Users must have the Full Admin or Cluster Admin role, with Cluster Read and Bucket INDEX List privileges.
+--
+
+[%hardbreaks]
+__Type__ : http
+
+
+// markup not found, no include::{specDir}security/Default/security-scheme-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+// markup not found, no include::{specDir}security/Default/security-scheme-after.adoc[opts=optional]
+
+
+
+
+include::{specDir}security/document-end.adoc[opts=optional]
+
+:leveloffset: -1
+
+
+
+// markup not found, no include::{specDir}security/document-after.adoc[opts=optional]
+
+
diff --git a/docs/modules/index-rest-settings/partials/header-attributes.adoc b/docs/modules/index-rest-settings/partials/header-attributes.adoc
new file mode 100644
index 00000000..d8230b83
--- /dev/null
+++ b/docs/modules/index-rest-settings/partials/header-attributes.adoc
@@ -0,0 +1,5 @@
+:page-partial:
+:page-aliases: rest-api:rest-modify-index-batch-size.adoc
+:!example-caption:
+:description: The Index Settings REST API is provided by the Index Service. \
+This API enables you to retrieve or set Index Service settings.
\ No newline at end of file
diff --git a/docs/modules/index-rest-settings/partials/overview/document-before.adoc b/docs/modules/index-rest-settings/partials/overview/document-before.adoc
new file mode 100644
index 00000000..1fb78375
--- /dev/null
+++ b/docs/modules/index-rest-settings/partials/overview/document-before.adoc
@@ -0,0 +1,57 @@
+// Pass through HTML table styles for this page.
+// This overrides Swagger2Markup's table layout defaults.
+
+ifdef::basebackend-html[]
+++++
+
+++++
+endif::[]
\ No newline at end of file
diff --git a/docs/modules/index-rest-settings/partials/overview/document-end.adoc b/docs/modules/index-rest-settings/partials/overview/document-end.adoc
new file mode 100644
index 00000000..4bbd311a
--- /dev/null
+++ b/docs/modules/index-rest-settings/partials/overview/document-end.adoc
@@ -0,0 +1,8 @@
+[discrete]
+= Examples on this page
+
+In the HTTP request examples:
+
+* `$HOST` is the host name or IP address of a node running the Index Service.
+* `$USER` is the user name of any authorized user -- see <>.
+* `$PASSWORD` is the password to connect to Couchbase Server.
\ No newline at end of file
diff --git a/docs/modules/index-rest-settings/partials/paths/get_settings/http-request.adoc b/docs/modules/index-rest-settings/partials/paths/get_settings/http-request.adoc
new file mode 100644
index 00000000..0694d7f3
--- /dev/null
+++ b/docs/modules/index-rest-settings/partials/paths/get_settings/http-request.adoc
@@ -0,0 +1,12 @@
+= Example HTTP Request
+
+====
+The example below retrieves the current index settings.
+
+.Curl request
+[source,sh]
+----
+curl -X GET http://$HOST:9102/settings \
+ -u $USER:$PASSWORD
+----
+====
\ No newline at end of file
diff --git a/docs/modules/index-rest-settings/partials/paths/get_settings/http-response.adoc b/docs/modules/index-rest-settings/partials/paths/get_settings/http-response.adoc
new file mode 100644
index 00000000..3c9a69fa
--- /dev/null
+++ b/docs/modules/index-rest-settings/partials/paths/get_settings/http-response.adoc
@@ -0,0 +1,9 @@
+= Example HTTP Response
+
+====
+.Response 200
+[source,json]
+----
+include::example$get_settings.json[]
+----
+====
\ No newline at end of file
diff --git a/docs/modules/index-rest-settings/partials/paths/post_settings/http-request.adoc b/docs/modules/index-rest-settings/partials/paths/post_settings/http-request.adoc
new file mode 100644
index 00000000..7a5fc4ea
--- /dev/null
+++ b/docs/modules/index-rest-settings/partials/paths/post_settings/http-request.adoc
@@ -0,0 +1,46 @@
+= Example HTTP Requests
+
+[#ex-defer-build]
+.Defer Index Builds by Default
+====
+This example specifies the default setting for deferred builds.
+
+.Curl request
+[source,sh]
+----
+curl -X POST http://$HOST:9102/settings \
+ -u $USER:$PASSWORD \
+ -H 'content-type: application/json' \
+ -d '{"indexer.settings.defer_build": true}'
+----
+====
+
+[#ex-scan-timeout]
+.Set the Indexer Scan Timeout
+====
+This example sets the indexer scan timeout.
+
+.Curl request
+[source,sh]
+----
+curl -X POST http://$HOST:9102/settings \
+ -u $USER:$PASSWORD \
+ -H 'content-type: application/json' \
+ -d '{"indexer.settings.scan_timeout": 15000}'
+----
+====
+
+[#ex-modify-index-batch-size]
+.Modify Index Batch Size
+====
+This example modifies the index batch size for rebalance.
+
+.Curl request
+[source,sh]
+----
+curl -X POST http://$HOST:9102/settings \
+ -u $USER:$PASSWORD \
+ -H 'content-type: application/json' \
+ -d '{ "indexer.rebalance.transferBatchSize": 7 }'
+----
+====
\ No newline at end of file
diff --git a/docs/modules/index-rest-settings/partials/security/document-begin.adoc b/docs/modules/index-rest-settings/partials/security/document-begin.adoc
new file mode 100644
index 00000000..cbf1b644
--- /dev/null
+++ b/docs/modules/index-rest-settings/partials/security/document-begin.adoc
@@ -0,0 +1,2 @@
+The Index Settings API supports admin credentials.
+Pass your credentials through HTTP headers (HTTP basic authentication).
\ No newline at end of file
diff --git a/docs/modules/index-rest-settings/partials/security/document-end.adoc b/docs/modules/index-rest-settings/partials/security/document-end.adoc
new file mode 100644
index 00000000..36d8ba1d
--- /dev/null
+++ b/docs/modules/index-rest-settings/partials/security/document-end.adoc
@@ -0,0 +1 @@
+Refer to xref:learn:security/roles.adoc[Roles] for more details.
\ No newline at end of file
diff --git a/docs/modules/index-rest-stats/attachments/indexes.yaml b/docs/modules/index-rest-stats/attachments/indexes.yaml
index 0ad7b8ac..fa141c11 100644
--- a/docs/modules/index-rest-stats/attachments/indexes.yaml
+++ b/docs/modules/index-rest-stats/attachments/indexes.yaml
@@ -163,6 +163,7 @@ components:
NodeIdxNode:
type: object
title: Nodes
+ description: Node statistics.
required:
- indexer
properties:
@@ -218,12 +219,14 @@ components:
PartIdxIndexes:
type: object
title: Indexes
+ description: Index statistics.
additionalProperties:
$ref: "#/components/schemas/PartIdxPartitionsIndex"
PartIdxPartitions:
type: object
title: Partitions
+ description: Index partition statistics.
additionalProperties:
$ref: "#/components/schemas/PartIdxPartitionsIndex"
diff --git a/docs/modules/index-rest-stats/pages/index.adoc b/docs/modules/index-rest-stats/pages/index.adoc
index 911e9854..b011b4bf 100644
--- a/docs/modules/index-rest-stats/pages/index.adoc
+++ b/docs/modules/index-rest-stats/pages/index.adoc
@@ -1001,14 +1001,42 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-All of the following:
+//tag::NodeIdx[]
-* xref:NodeIdxNode[]
+
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-NodeIdxNode, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:NodeIdxNode[]
-* xref:PartIdxIndexes[]
+a¦ _and_
+a¦
+[markdown]
+--
+include::index.adoc[tag=desc-PartIdxIndexes, opts=optional]
+--
+[%hardbreaks]
+{blank}
+a¦ xref:PartIdxIndexes[]
+
+
+|===
+
+//end::NodeIdx[]
// markup not found, no include::{specDir}definitions/NodeIdx/definition-end.adoc[opts=optional]
@@ -1040,6 +1068,11 @@ endif::collapse-models[]
//tag::NodeIdxNode[]
+ifdef::model-descriptions[]
+//tag::desc-NodeIdxNode[]
+Node statistics.
+//end::desc-NodeIdxNode[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
@@ -1225,14 +1258,42 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
-All of the following:
+//tag::PartIdx[]
+
+
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
+
+a¦
+a¦
+
+[markdown]
+--
+include::index.adoc[tag=desc-PartIdxIndexes, opts=optional]
+--
+
+[%hardbreaks]
+{blank}
+a¦ xref:PartIdxIndexes[]
+
-* xref:PartIdxIndexes[]
+a¦ _and_
+a¦
+[markdown]
+--
+include::index.adoc[tag=desc-PartIdxPartitions, opts=optional]
+--
-* xref:PartIdxPartitions[]
+[%hardbreaks]
+{blank}
+a¦ xref:PartIdxPartitions[]
+|===
+
+//end::PartIdx[]
// markup not found, no include::{specDir}definitions/PartIdx/definition-end.adoc[opts=optional]
@@ -1264,6 +1325,11 @@ endif::collapse-models[]
//tag::PartIdxIndexes[]
+ifdef::model-descriptions[]
+//tag::desc-PartIdxIndexes[]
+Index statistics.
+//end::desc-PartIdxIndexes[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
@@ -1321,6 +1387,11 @@ endif::collapse-models[]
//tag::PartIdxPartitions[]
+ifdef::model-descriptions[]
+//tag::desc-PartIdxPartitions[]
+Index partition statistics.
+//end::desc-PartIdxPartitions[]
+endif::model-descriptions[]
[cols="25,55,20",separator=¦]
|===
diff --git a/docs/modules/n1ql-rest-settings/pages/index.adoc b/docs/modules/n1ql-rest-settings/pages/index.adoc
index 76278679..59ed1181 100644
--- a/docs/modules/n1ql-rest-settings/pages/index.adoc
+++ b/docs/modules/n1ql-rest-settings/pages/index.adoc
@@ -1453,8 +1453,7 @@ If a request includes this parameter, it will be capped by the node-level `numat
[%hardbreaks]
*Default:* `1024`
-*Minimum:* `0`
-*Exclusive minimum:* `true`
+*Minimum:* `0` (exclusive)
*Example:* `512`
{blank}
a¦ Integer (int32)
diff --git a/docs/preview/HEAD.yml b/docs/preview/HEAD.yml
index c37f530f..ec179b30 100644
--- a/docs/preview/HEAD.yml
+++ b/docs/preview/HEAD.yml
@@ -1,7 +1,7 @@
sources:
docs-server:
- branches: release/7.6
+ branches: release/8.0
docs-analytics:
- branches: release/7.6
+ branches: release/8.0
docs-devex:
- branches: release/7.6
\ No newline at end of file
+ branches: release/8.0
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index ac195227..e8149391 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -5,6 +5,7 @@ include 'admin',
'eventing',
'functions',
'indexes',
+ 'index-settings',
'analytics-admin',
'analytics-config',
'analytics-library',
@@ -29,6 +30,8 @@ project(':functions').projectDir = new File (settingsDir, 'docs/modules/n1ql-res
project(':functions').buildFileName = 'functions.gradle'
project(':indexes').projectDir = new File (settingsDir, 'docs/modules/index-rest-stats')
project(':indexes').buildFileName = 'indexes.gradle'
+project(':index-settings').projectDir = new File (settingsDir, 'docs/modules/index-rest-settings')
+project(':index-settings').buildFileName = 'index-settings.gradle'
project(':analytics-service').projectDir = new File (settingsDir, 'docs/modules/analytics-rest-service')
project(':analytics-service').buildFileName = 'analytics-service.gradle'
project(':analytics-config').projectDir = new File (settingsDir, 'docs/modules/analytics-rest-config')
diff --git a/templates/models.mustache b/templates/models.mustache
index b2e76b4d..9dc330ad 100644
--- a/templates/models.mustache
+++ b/templates/models.mustache
@@ -110,24 +110,63 @@ endif::collapse-models[]
.icon:bars[fw] Composite Schema
{blank}
+{{! tag for partial}}
+//tag::{{name}}[]
+
+{{! Create partial model description }}
+{{#description}}
+ifdef::model-descriptions[]
+//tag::desc-{{name}}[]
+{{{unescapedDescription}}}
+//end::desc-{{name}}[]
+endif::model-descriptions[]
+{{/description}}
+
{{#oneOf}}
-{{#-first}}One of the following:
+{{#-first}}
+[cols="25,55,20",separator=¦]
+|===
+¦ One{nbsp}of{nbsp}... ¦ ¦ Schema
{{/-first}}
-* {{>schemas}}
+a¦ {{^-first}}_or_{{/-first}}
+a¦ {{>property}}
+a¦ {{>schemas}}
+{{#-last}}
+|===
+{{/-last}}
{{/oneOf}}
{{#anyOf}}
-{{#-first}}Any of the following:
+{{#-first}}
+[cols="25,55,20",separator=¦]
+|===
+¦ Any{nbsp}of{nbsp}... ¦ ¦ Schema
{{/-first}}
-* {{>schemas}}
+a¦ {{^-first}}_and{nbsp}/ or_{{/-first}}
+a¦ {{>property}}
+a¦ {{>schemas}}
+{{#-last}}
+|===
+{{/-last}}
{{/anyOf}}
{{#allOf}}
-{{#-first}}All of the following:
+{{#-first}}
+[cols="25,55,20",separator=¦]
+|===
+¦ All{nbsp}of{nbsp}... ¦ ¦ Schema
{{/-first}}
-* {{>schemas}}
+a¦ {{^-first}}_and_{{/-first}}
+a¦ {{>property}}
+a¦ {{>schemas}}
+{{#-last}}
+|===
+{{/-last}}
{{/allOf}}
+
+{{! end tag for partial}}
+//end::{{name}}[]
{{/composedSchemas}}
{{! include partial after definition body }}
diff --git a/templates/param.mustache b/templates/param.mustache
index 3e0a6319..68e06af2 100644
--- a/templates/param.mustache
+++ b/templates/param.mustache
@@ -33,20 +33,12 @@ include::index.adoc[tag=desc-{{dataType}}, opts=optional]
{{/pattern}}
{{! minimum value}}
{{#minimum}}
-*Minimum:* `{{{minimum}}}`
+*Minimum:* `{{{minimum}}}`{{#exclusiveMinimum}} (exclusive){{/exclusiveMinimum}}
{{/minimum}}
{{! maximum value}}
{{#maximum}}
-*Maximum:* `{{{maximum}}}`
+*Maximum:* `{{{maximum}}}`{{#exclusiveMaximum}} (exclusive){{/exclusiveMaximum}}
{{/maximum}}
-{{! exclusive minimum value}}
-{{#exclusiveMinimum}}
-*Exclusive minimum:* `{{{exclusiveMinimum}}}`
-{{/exclusiveMinimum}}
-{{! exclusive maximum value}}
-{{#exclusiveMaximum}}
-*Exclusive maximum:* `{{{exclusiveMaximum}}}`
-{{/exclusiveMaximum}}
{{! multiple of value}}
{{#multipleOf}}
*Multiple of:* `{{{multipleOf}}}`
diff --git a/templates/property.mustache b/templates/property.mustache
index 19eccde5..0710335f 100644
--- a/templates/property.mustache
+++ b/templates/property.mustache
@@ -53,20 +53,12 @@ include::index.adoc[tag=desc-{{dataType}}, opts=optional]
{{/pattern}}
{{! minimum value}}
{{#minimum}}
-*Minimum:* `{{{minimum}}}`
+*Minimum:* `{{{minimum}}}`{{#exclusiveMinimum}} (exclusive){{/exclusiveMinimum}}
{{/minimum}}
{{! maximum value}}
{{#maximum}}
-*Maximum:* `{{{maximum}}}`
+*Maximum:* `{{{maximum}}}`{{#exclusiveMaximum}} (exclusive){{/exclusiveMaximum}}
{{/maximum}}
-{{! exclusive minimum value}}
-{{#exclusiveMinimum}}
-*Exclusive minimum:* `{{{exclusiveMinimum}}}`
-{{/exclusiveMinimum}}
-{{! exclusive maximum value}}
-{{#exclusiveMaximum}}
-*Exclusive maximum:* `{{{exclusiveMaximum}}}`
-{{/exclusiveMaximum}}
{{! multiple of value}}
{{#multipleOf}}
*Multiple of:* `{{{multipleOf}}}`