diff --git a/.cspell b/.cspell index 2403b0e10..6cc1fc700 100644 --- a/.cspell +++ b/.cspell @@ -1,199 +1,10 @@ -aarch -actiongroup -actiongroups -aggregatable aoss APIV -argjson -asciifolding -authc -authinfo -authtoken -autocut -autofollow -backendroles -backpressure -beider -Bobg -Boundsdouble -boxplot -Boxplot -caverphone -CBOR -charfilters -chisquared -chuhlomin -cpuacct -cuserr -daitch -dangoslen -dashboardsinfo -datarows -decompounder -Decompounder -dedup -determinized -distilbert -DNFOF -docvalue -Downsample -downsampling -Downsampling +cbor evals -ewma -Ewma -faiss -fielddata -Fielddata -forcemerge -Formattable -fragmenter -Fragmenter -freqs -generateonbehalfoftoken -geohash -geohex -Geohex -geoip -geotile -gsub -Gsub -haasephonetik -heteroscedastic -hnsw -homoscedastic -hotthreads -huggingface -hybridfs -integ -internalusers -Intertransport -Jelinek -kibanainfo -kibanaserver -koelnerphonetik -kstem -kuromoji -Kuromoji -languageset -localstats -Lovins lucene -Lucene -lycheeverse -marvinpinto -memlock -metaphone -mget millis -Millis -mlockall -mmap -mmapfs -mmdb -mokotoff -Moneyball -msearch -msmarco -mtermvectors -mult -Multisearch -multitenancy mxyz -nanos -Nanos -nbest -nfkc -ngram -niofs -nmslib -nodeattrs -nodesdn -noops -nori -Nori -nysiis -ONNX opendistro opensearch OPENSEARCH -opensearchproject -opensearchstaging -ords -OSCPU -oversample -Oversample -performanceanalyzer -permissionsinfo -pipefail -prefilter -prirep -rawfile -readingform -rebalance -Rebalance -recoverysource -Refn -reindex -Reindex -relo -reloadcerts -remotestore -rerank -Rerank -Reranker -rethrottle -Rethrottle -rolesmapping -Rolespan -rollup -Rollup -rollups -Rollups -romaji -roundtrips -Rudnick -ruleset -scriptless -securityconfig -slowlog -Slowlog -slurpfile -snapshotted -softmax -Sorani -sslinfo -stoptags -stopwords -Stringifiedboolean -Stringifiedinteger -subqueries -subschemas -subword -syserr -tcnative -tdigest -tenantinfo -termvectors -tfidf -Tfidf -Tika -tokenfilters -translog -Translog -tubone -ulimits -Undeploys -unigrams -Unmanaged -unmatch -untriaged -updateable -upsert -urldecode -vectory -whoamiprotected -wordnet -Yrtsd -reprovision -deprovision \ No newline at end of file diff --git a/.github/vale/styles/OpenSearch/AcronymParentheses.yml b/.github/vale/styles/OpenSearch/AcronymParentheses.yml new file mode 100644 index 000000000..a3deecc01 --- /dev/null +++ b/.github/vale/styles/OpenSearch/AcronymParentheses.yml @@ -0,0 +1,75 @@ +extends: conditional +message: "'%s': Spell out acronyms the first time that you use them on a page and follow them with the acronym in parentheses. Subsequently, use the acronym alone." +link: 'https://github.com/opensearch-project/documentation-website/blob/main/STYLE_GUIDE.md#acronyms' +level: warning +scope: summary +ignorecase: false +# Ensures that the existence of 'first' implies the existence of 'second'. +first: '\b((?> "$GITHUB_OUTPUT" + + - name: Check Version + run: | + echo current=v${{ steps.current.outputs.version }} + echo tag=${{ github.ref_name }} + if "v${{ steps.current.outputs.version }}" != "${{ github.ref_name }}"; then + echo "::error::Failing, reason: version ${{ steps.current.outputs.version }} does not match tag ${{ github.ref_name }}." + exit 1 + else + echo "::notice::Found version ${{ steps.current.outputs.version }}, all good." + fi + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + + - name: Build + run: npm ci && npm run merge + + - name: Upload Artifacts + id: upload + uses: actions/upload-artifact@v4 + with: + name: build + path: | + build/* + + - name: Extract Changelog + id: changelog + uses: sean0x42/markdown-extract@v2 + with: + file: CHANGELOG.md + pattern: Unreleased + no-print-matched-heading: true + + - name: Draft a release + uses: softprops/action-gh-release@v2 + id: release + with: + draft: true + generate_release_notes: false + tag_name: ${{ github.ref_name }} + body: | + ${{ steps.changelog.outputs.markdown }} + + ### Links + - [Build Artifact](${{ steps.upload.outputs.artifact-url }}) + files: | + LICENSE.txt + build/* + + - name: Increment Version + uses: nguyenvukhang/semver-increment@v1 + id: version + with: + increment: patch + version-file: spec/_info.yaml + version-regex: '^version: (.*)' + + - name: Update CHANGELOG to the Next Developer Iteration + uses: thomaseizinger/keep-a-changelog-new-release@v3 + with: + tag: ${{ github.ref_name }} + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: 'Preparing for next developer iteration ${{ steps.version.outputs.version }}.' + signoff: true + branch: prepare-v-next + base: main + delete-branch: true + title: 'Preparing for next developer iteration, ${{ steps.version.outputs.version }}.' + body: | + I've drafted a release, [${{ github.ref_name }}](${{ steps.release.outputs.url }}), please verify and release it. + Preparing for the next developer iteration, ${{ steps.version.outputs.version }}. diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml new file mode 100644 index 000000000..8ebc71202 --- /dev/null +++ b/.github/workflows/style.yml @@ -0,0 +1,31 @@ +name: Style + +on: [pull_request] + +jobs: + check: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + + - name: Install Dependencies + run: npm ci + + - name: Prepare for Vale (spec) + run: npm run style:prepare -- --source spec + + - name: Prepare for Vale (test) + run: npm run style:prepare -- --source tests + + - name: Check Style + uses: errata-ai/vale-action@v2.1.1 + with: + version: 3.7.1 + vale_flags: --ignore-syntax + files: '["spec", "tests"]' diff --git a/.github/workflows/test-spec.yml b/.github/workflows/test-spec.yml index b41345a24..ff267a566 100644 --- a/.github/workflows/test-spec.yml +++ b/.github/workflows/test-spec.yml @@ -21,28 +21,44 @@ on: jobs: test-opensearch-spec: strategy: + fail-fast: false matrix: entry: - version: 1.3.17 admin_password: admin - version: 2.0.0 admin_password: admin - - version: 2.16.0 - - version: 2.16.0 + - version: 2.18.0 + - version: 2.18.0 tests: plugins/index_state_management - - version: 2.16.0 + - version: 2.18.0 tests: plugins/ml - - version: 2.16.0 + - version: 2.18.0 tests: routing - - version: 2.16.0 + - version: 2.18.0 tests: snapshot - - version: 2.17.0 - version: 2.18.0 + tests: dangling + url: http://localhost:9200 + - version: 2.18.0 + tests: plugins/replication + url: http://localhost:9200 + - version: 2.18.0 + tests: plugins/streaming + - version: 2.18.0 + tests: plugins/notifications + - version: 2.18.0 + tests: plugins/query_insights + - version: 2.18.0 + tests: plugins/workload-management + - version: 2.18.0 + tests: plugins/analysis + - version: 2.19.0 hub: opensearchstaging - ref: '@sha256:4445e195c53992038891519dc3be0d273cdaad1b047943d68921168ed243e7e9' + ref: '@sha256:4da23e0137b2b67206d23b36fcf0914cc39b3bf19310c782f536e4934b86f6cc' - version: 3.0.0 hub: opensearchstaging - ref: '@sha256:cf07c0ffa7d9e8a3e7fdb58041caae3bb81f1123260431b99d0ebf4a52c3d9a3' + ref: '@sha256:727643acdfebed77bfdb26362dbcff536b7ea02a0cc4ae2da2521729171333de' name: test-opensearch-spec (version=${{ matrix.entry.version }}, hub=${{ matrix.entry.hub || 'opensearchproject' }}, tests=${{ matrix.entry.tests || 'default' }}) runs-on: ubuntu-latest @@ -70,12 +86,17 @@ jobs: working-directory: tests/${{ matrix.entry.tests || 'default' }} run: docker compose up -d + - name: Generate Test Files Hash + id: tests + run: echo "hash=${{ matrix.entry.version }}-${{ hashFiles(format('tests/{0}', matrix.entry.tests || 'default')) }}" >> $GITHUB_OUTPUT + - name: Run Tests run: | npm run test:spec -- \ --opensearch-insecure --verbose\ --opensearch-version=${{ matrix.entry.version }} \ - --coverage coverage/test-spec-coverage-${{ matrix.entry.version }}-${{ matrix.entry.tests || 'default' }}.json \ + --coverage coverage/test-spec-coverage-${{ steps.tests.outputs.hash }}.json \ + --opensearch-url=${{ matrix.entry.url || 'https://localhost:9200'}} \ --tests=tests/${{ matrix.entry.tests || 'default' }} - name: Get Container Logs @@ -89,12 +110,11 @@ jobs: - name: Upload Test Coverage Results uses: actions/upload-artifact@v4 with: - name: coverage-${{ matrix.entry.version }}-${{ hashFiles(format('tests/{0}', matrix.entry.tests || 'default')) }} - path: coverage/test-spec-coverage-${{ matrix.entry.version }}-${{ matrix.entry.tests || 'default' }}.json + name: coverage-${{ matrix.entry.version }}-${{ steps.tests.outputs.hash }} + path: coverage/test-spec-coverage-${{ steps.tests.outputs.hash }}.json merge-coverage: runs-on: ubuntu-latest - if: github.event_name == 'pull_request' needs: test-opensearch-spec steps: - uses: actions/checkout@v4 @@ -104,6 +124,17 @@ jobs: with: path: coverage + - name: Display Missing Test Paths + run: | + jq -sc ' + (map(.operations) | add | unique) as $all | + (map(.evaluated_operations) | add | unique) as $evaluated | + $all-$evaluated | + sort_by(.path) | + .[] | + "\(.method) \(.path)" + ' $(find ./ -name "test-spec-coverage-*.json") + - name: Combine Test Coverage Data shell: bash -eo pipefail {0} run: | @@ -119,6 +150,7 @@ jobs: cat ./coverage/coverage.json - name: Construct Comment Data Payload + if: github.event_name == 'pull_request' shell: bash -eo pipefail {0} run: | jq \ @@ -139,6 +171,7 @@ jobs: - name: Upload PR Comment Payload uses: actions/upload-artifact@v4 + if: github.event_name == 'pull_request' with: name: pr-comment path: pr-comment.json diff --git a/.github/workflows/test-tools-integ.yml b/.github/workflows/test-tools-integ.yml index 5bb9ac5d8..d4384f4af 100644 --- a/.github/workflows/test-tools-integ.yml +++ b/.github/workflows/test-tools-integ.yml @@ -24,7 +24,7 @@ jobs: test: runs-on: ubuntu-latest env: - OPENSEARCH_VERSION: 2.16.0 + OPENSEARCH_VERSION: 2.17.0 OPENSEARCH_PASSWORD: myStrongPassword123! OPENSEARCH_URL: https://localhost:9200 steps: diff --git a/.github/workflows/validate-spec.yml b/.github/workflows/validate-spec-lint.yml similarity index 100% rename from .github/workflows/validate-spec.yml rename to .github/workflows/validate-spec-lint.yml diff --git a/.github/workflows/validate-spec-py.yml b/.github/workflows/validate-spec-py.yml new file mode 100644 index 000000000..9e33a5aaf --- /dev/null +++ b/.github/workflows/validate-spec-py.yml @@ -0,0 +1,34 @@ +name: Validate Spec (Python) + +on: [pull_request,push] + +jobs: + validate-spec-py: + runs-on: ubuntu-latest + steps: + - name: Checkout the repo + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + + - name: Build + run: npm ci && npm run merge + + - name: Set Up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install Dependencies + working-directory: tools/src/validate-spec-py + run: | + pip install --user pipenv + pipenv install + + - name: Validate Spec + working-directory: tools/src/validate-spec-py + run: | + pipenv run python validate.py ../../../build/opensearch-openapi.yaml diff --git a/.github/workflows/validate-spec-ruby.yml b/.github/workflows/validate-spec-ruby.yml new file mode 100644 index 000000000..de0e1e200 --- /dev/null +++ b/.github/workflows/validate-spec-ruby.yml @@ -0,0 +1,30 @@ +name: Validate Spec (Ruby) + +on: [pull_request, push] + +jobs: + validate-spec-ruby: + runs-on: ubuntu-latest + env: + BUNDLE_GEMFILE: ${{ github.workspace }}/tools/src/validate-spec-ruby/Gemfile + steps: + - name: Checkout the repo + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + + - name: Build + run: npm ci && npm run merge + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.3' + bundler-cache: true + + - name: Validate Spec + working-directory: tools/src/validate-spec-ruby + run: | + bundle exec ruby validate.rb ../../../build/opensearch-openapi.yaml diff --git a/.lycheeignore b/.lycheeignore index c859dd4da..1b6a61169 100644 --- a/.lycheeignore +++ b/.lycheeignore @@ -1 +1,3 @@ https://localhost:* +http://localhost:* +http://webhook:8080 diff --git a/.vale.ini b/.vale.ini new file mode 100644 index 000000000..9141bb025 --- /dev/null +++ b/.vale.ini @@ -0,0 +1,49 @@ +StylesPath = ".github/vale/styles" +Vocab = "OpenSearch" +MinAlertLevel = warning + +[*.{yaml,yml}] +BasedOnStyles = Vale, OpenSearch + +Vale.Spelling = NO +Vale.Repetition = NO +Vale.Terms = YES +OpenSearch.AcronymParentheses = YES +OpenSearch.Ampersand = YES +OpenSearch.Cyber = YES +OpenSearch.DashSpacing = YES +OpenSearch.DirectionAboveBelow = YES +OpenSearch.DirectionTopBottom = YES +OpenSearch.Exclamation = YES +OpenSearch.FailoverNoun = YES +OpenSearch.FailoverVerb = YES +OpenSearch.FutureTense = NO +OpenSearch.Inclusive = YES +OpenSearch.LatinismsElimination = YES +OpenSearch.LatinismsSubstitution = YES +OpenSearch.LoginNoun = YES +OpenSearch.LoginVerb = YES +OpenSearch.LogoutNoun = YES +OpenSearch.LogoutVerb = YES +OpenSearch.OxfordComma = YES +OpenSearch.PassiveVoice = NO +OpenSearch.Please = YES +OpenSearch.Range = YES +OpenSearch.Repetition = YES +OpenSearch.RolloverNoun = YES +OpenSearch.RolloverVerb = YES +OpenSearch.SetupNoun = YES +OpenSearch.SetupVerb = YES +OpenSearch.SignatureV4 = YES +OpenSearch.Simple = YES +OpenSearch.SpacingPunctuation = YES +OpenSearch.SpacingSlash = YES +OpenSearch.SpacingWords = YES +OpenSearch.Spelling = YES +OpenSearch.SubstitutionsError = YES +OpenSearch.SubstitutionsSuggestion = YES +OpenSearch.TimeoutNoun = YES +OpenSearch.TimeoutVerb = YES +OpenSearch.UnitsNames = YES +OpenSearch.UnitsSpacing = YES +OpenSearch.Version = YES \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f7833649..014612bee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,47 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ## [Unreleased] +### Added +- Added API specs for query groups lifecycle APIs ([#649](https://github.com/opensearch-project/opensearch-api-specification/pull/649)) +- Added Python and Ruby spec validators ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Added verbose output of the story being evaluated ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Added `_search` with `sort: direction` ([#658](https://github.com/opensearch-project/opensearch-api-specification/pull/658)) +- Added `_common.mapping:FlatObjectProperty` ([#661](https://github.com/opensearch-project/opensearch-api-specification/pull/661)) +- Added `HEAD /{index}/_doc/{id}` returning `404` ([#670](https://github.com/opensearch-project/opensearch-api-specification/pull/670)) +- Added `_common.mapping:IcuCollationKeywordProperty` ([#666](https://github.com/opensearch-project/opensearch-api-specification/pull/666)) +- Added `/_cluster/stats/{metric}/nodes/{node_id}` and `/_cluster/stats/{metric}/{index_metric}/nodes/{node_id}` ([#639](https://github.com/opensearch-project/opensearch-api-specification/pull/639)) +- Added `PhoneAnalyzer` from `analysis-phonenumber` plugin ([#609](https://github.com/opensearch-project/opensearch-api-specification/pull/609)) +- Added `/_list/indices` & `/_list/shards` api specs ([#613](https://github.com/opensearch-project/opensearch-api-specification/pull/613)) +- Added `GET` and `HEAD /{index}/_source/{id}` returning `404` ([#673](https://github.com/opensearch-project/opensearch-api-specification/pull/673)) +- Added `rename_alias_pattern` and `rename_alias_replacment` to `/_snapshot/{repository}/{snapshot}/_restore` body parameters ([#615](https://github.com/opensearch-project/opensearch-api-specification/pull/615)) + +### Removed +- Removed unsupported `_common.mapping:SourceField`'s `mode` field and associated `_common.mapping:SourceFieldMode` enum ([#652](https://github.com/opensearch-project/opensearch-api-specification/pull/652)) +- Removed unsupported `_common.mapping:DenseVectorProperty`, `_common.mapping:SparseVectorProperty`, and `_common.mapping:FlattenedProperty` ([#666](https://github.com/opensearch-project/opensearch-api-specification/pull/666)) +- Removed unsupported time series dimension properties and types ([#666](https://github.com/opensearch-project/opensearch-api-specification/pull/666)) +- Removed unsupported runtime field properties (`script`/`on_script_error`) on `NumberPropertyBase` ([#666](https://github.com/opensearch-project/opensearch-api-specification/pull/666)) + +### Fixed +- Spec passes OpenAPI 3.1.0 validations ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Disallowed characters (`::`, `@`, and `:`) in key names are replaced with `___` on merge ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Added missing `required` to `path` parameters ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Added missing `schema` parent to response types ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Removed invalid `externalDocs` from `flow_framework.create/update::query.use_case` ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Fixed incorrect `style` in `indices.get_mapping::query.index` ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Removed invalid `required` from `ppl` responses ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Added schema for security API error responses ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) +- Fixed `/{index}/_create/{id}` returning `201` ([#669](https://github.com/opensearch-project/opensearch-api-specification/pull/669)) +- Fixed `ml._common.yaml#SearchModelsResponse` and `SearchModelsHitsHit` ([#672](https://github.com/opensearch-project/opensearch-api-specification/pull/672)) +- Fixed `refresh` options to allow `boolean` and `string` ([#673](https://github.com/opensearch-project/opensearch-api-specification/pull/673)) +- Fixed `value` type in `ExplanationDetail` and added `_type` to `explain@200` ([#685](https://github.com/opensearch-project/opensearch-api-specification/pull/685)) +- Fixed index settings types ([#684](https://github.com/opensearch-project/opensearch-api-specification/pull/684)) +- Fixed `POST` and `DELETE /_dangling/{index_uuid}` returning `202` ([#686](https://github.com/opensearch-project/opensearch-api-specification/pull/686)) + +### Changed +- Changed `tasks._common:TaskInfo` and `tasks._common:TaskGroup` to be composed of a `tasks._common:TaskInfoBase` ([#683](https://github.com/opensearch-project/opensearch-api-specification/pull/683)) + +## [0.1.0] - 2024-10-25 + ### Added - Added CHANGELOG ([#309](https://github.com/opensearch-project/opensearch-api-specification/pull/309)) @@ -64,6 +105,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Added support for request headers in tests [#461](https://github.com/opensearch-project/opensearch-api-specification/pull/461) - Added metadata additionalProperties to `ErrorCause` ([#462](https://github.com/opensearch-project/opensearch-api-specification/pull/462)) - Added `creation_date` field to `DanglingIndex` ([#462](https://github.com/opensearch-project/opensearch-api-specification/pull/462)) +- Added `replication` namespace API specifications ([#464](https://github.com/opensearch-project/opensearch-api-specification/pull/464)) - Added doc on `cluster create-index blocked` workaround ([#465](https://github.com/opensearch-project/opensearch-api-specification/pull/465)) - Added `observability` namespace API specifications ([#474](https://github.com/opensearch-project/opensearch-api-specification/pull/474)) - Added support for reusing output variables as keys in payload expectations ([#471](https://github.com/opensearch-project/opensearch-api-specification/pull/471)) @@ -95,8 +137,18 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Added `/_plugins/_flow_framework/`, `_search`, `state/_search`, `_provision`, `_deprovision`, `_steps`, and `_status` ([#508](https://github.com/opensearch-project/opensearch-api-specification/issues/508)) ([#833](https://github.com/opensearch-project/flow-framework/issues/833)) - Added `/_plugins/_ism/policies`, `add`, `remove`, `change_policy`, `explain`, and `retry` ([#568](https://github.com/opensearch-project/opensearch-api-specification/pull/568)) ([#578](https://github.com/opensearch-project/opensearch-api-specification/pull/578)) - Added `/_plugins/refresh_search_analyzers` ([#578](https://github.com/opensearch-project/opensearch-api-specification/pull/578)) +- Added `/_bulk/stream` ([#584](https://github.com/opensearch-project/opensearch-api-specification/pull/584)) - Added `/_plugins/_ml/agents/_register`, `/_plugins/_ml/connectors/_create`, `DELETE /_plugins/_ml/agents/{agent_id}`, `DELETE /_plugins/_ml/connectors/{connector_id}` ([#228](https://github.com/opensearch-project/opensearch-api-specification/issues/228)) - Added the `context` query param to the `put_script` APIs ([#586](https://github.com/opensearch-project/opensearch-api-specification/pull/586)) +- Added `persian_stem` filter ([#592](https://github.com/opensearch-project/opensearch-api-specification/pull/592)) +- Added `404` response for `DELETE /{index}`, `GET /{index}/_doc/{id}`, `DELETE /{index}/_doc/{id}` ([#589](https://github.com/opensearch-project/opensearch-api-specification/pull/589)) +- Added ability to pass `InlineScript` as a simple string ([#605](https://github.com/opensearch-project/opensearch-api-specification/pull/605)) +- Added `config_id` and `config_id_list` to `/_plugins/_notifications/configs` query parameters ([#594](https://github.com/opensearch-project/opensearch-api-specification/pull/594)) +- Added a release workflow triggered on a tag ([#635](https://github.com/opensearch-project/opensearch-api-specification/pull/635)) +- Added API spec for query insights plugin ([#625](https://github.com/opensearch-project/opensearch-api-specification/pull/625)) +- Added API spec for `adjust_pure_negative` for bool queries ([#641](https://github.com/opensearch-project/opensearch-api-specification/pull/641)) +- Added a spec style checker [#620](https://github.com/opensearch-project/opensearch-api-specification/pull/620). +- Added `remote_store` to node `Stats` ([#643](https://github.com/opensearch-project/opensearch-api-specification/pull/643)) ### Changed @@ -109,7 +161,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Added better context for non-2XX responses when `--verbose` is used with the tester tool ([#359](https://github.com/opensearch-project/opensearch-api-specification/pull/359)) - Locked testing for next release of OpenSearch to a specific SHA ([#431](https://github.com/opensearch-project/opensearch-api-specification/pull/431)) - Replaced nullable with `null` type ([#436](https://github.com/opensearch-project/opensearch-api-specification/pull/436)) -- Split test suite ([#472])(https://github.com/opensearch-project/opensearch-api-specification/pull/472) +- Split test suite ([#472](https://github.com/opensearch-project/opensearch-api-specification/pull/472)) - Changed `WriteResponseBase`'s `_primary_term`, `_seq_no` & `_version` to have `int64` format ([#530](https://github.com/opensearch-project/opensearch-api-specification/pull/530)) - Adjusted indices, shards cat API to test against unassigned indices ([#551](https://github.com/opensearch-project/opensearch-api-specification/pull/551)) - Corrected Sort schema for `/_search`'s request body ([#529](https://github.com/opensearch-project/opensearch-api-specification/issues/529)) @@ -128,7 +180,9 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Removed the ability to skip an individual spec test ([#358](https://github.com/opensearch-project/opensearch-api-specification/pull/358)) - Removed `shape` query ([#531](https://github.com/opensearch-project/opensearch-api-specification/pull/531)) - +- Removed unsupported DataStream Lifecycle types ([#600](https://github.com/opensearch-project/opensearch-api-specification/pull/600)) +- Removed unsupported runtime field types ([#634](https://github.com/opensearch-project/opensearch-api-specification/pull/634)) + ### Fixed - Fixed GitHub pages ([#215](https://github.com/opensearch-project/opensearch-api-specification/pull/215)) @@ -166,7 +220,14 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Fixed `/_plugins/_transform/_preview` ([#568](https://github.com/opensearch-project/opensearch-api-specification/pull/568)) - Fixed create/delete/index operation in `_bulk` ([#582](https://github.com/opensearch-project/opensearch-api-specification/pull/582)) - Add `mode` and `compression` to k-NN index creation and search, and add `rescore` and `oversample_factor` to k-NN search ([#588](https://github.com/opensearch-project/opensearch-api-specification/pull/588)) +- Fixed `/{index}/_search` with aggregations ([#576](https://github.com/opensearch-project/opensearch-api-specification/pull/576)) +- Fixed inaccurate numeric type ([#597](https://github.com/opensearch-project/opensearch-api-specification/pull/597))([#598](https://github.com/opensearch-project/opensearch-api-specification/pull/598))([#600](https://github.com/opensearch-project/opensearch-api-specification/pull/600))([#612](https://github.com/opensearch-project/opensearch-api-specification/pull/612)) +- Fixed mapping and analysis types ([#600](https://github.com/opensearch-project/opensearch-api-specification/pull/600)) +- Fixed `RestStatus` responses in `DELETE /_plugins/_notifications/configs/{config_id}` ([#594](https://github.com/opensearch-project/opensearch-api-specification/pull/594)) +- Fixed `GET /_snapshot_/{repository}/{snapshot}` ([#608](https://github.com/opensearch-project/opensearch-api-specification/pull/608)) +- Fixed `POST /_snapshot/{repository}/{snapshot}/_restore` when `wait_for_completion` is `false` and `GET /{index}/_recovery` ([#611](https://github.com/opensearch-project/opensearch-api-specification/pull/611)) ### Security -[Unreleased]: https://github.com/opensearch-project/opensearch-api-specification/commits/main/ +[unreleased]: https://github.com/opensearch-project/opensearch-api-specification/compare/v0.1.0...HEAD +[0.1.0]: https://github.com/opensearch-project/opensearch-api-specification/compare/1db184063a463c5180a2cc824b1efc1aeebfd5eb...v0.1.0 diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index 8314eb633..7ff326560 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -1,39 +1,34 @@ -* [Developer Guide](#developer-guide) - * [Getting Started](#getting-started) - * [Specification](#specification) - * [File Structure](#file-structure) - * [Grouping Operations](#grouping-operations) - * [Grouping Schemas](#grouping-schemas) - * [Superseded Operations](#superseded-operations) - * [Global Parameters](#global-parameters) - * [OpenAPI Extensions](#openapi-extensions) - * [Writing Spec Tests](#writing-spec-tests) - * [Tools](#tools) - * [Setup](#setup) - * [Spec Merger](#spec-merger) - * [Arguments](#arguments) - * [Example](#example) - * [Spec Linter](#spec-linter) - * [Arguments](#arguments-1) - * [Example](#example-1) - * [Spec Tester](#spec-tester) - * [Dump Cluster Spec](#dump-cluster-spec) - * [Arguments](#arguments-2) - * [Example](#example-2) - * [Coverage](#coverage) - * [Arguments](#arguments-3) - * [Example](#example-3) - * [Tools Testing](#tools-testing) - * [Tools Linting](#tools-linting) - * [Workflows](#workflows) - * [Analyze PR Changes](#analyze-pr-changes) - * [Build](#build) - * [Deploy GitHub Pages](#deploy-github-pages) - * [Comment on PR](#comment-on-pr) - * [Test Tools (Unit)](#test-tools--unit-) - * [Test Tools (Integration)](#test-tools--integration-) - * [Validate Spec](#validate-spec) +- [Developer Guide](#developer-guide) + - [Getting Started](#getting-started) + - [Specification](#specification) + - [File Structure](#file-structure) + - [Grouping Operations](#grouping-operations) + - [Grouping Schemas](#grouping-schemas) + - [Superseded Operations](#superseded-operations) + - [Global Parameters](#global-parameters) + - [OpenAPI Extensions](#openapi-extensions) + - [Writing Spec Tests](#writing-spec-tests) + - [Tools](#tools) + - [Setup](#setup) + - [Spec Merger](#spec-merger) + - [Spec Linter](#spec-linter) + - [Spec Tester](#spec-tester) + - [Spec Style](#spec-style) + - [Dump Cluster Spec](#dump-cluster-spec) + - [Coverage](#coverage) + - [Tools Testing](#tools-testing) + - [Tools Linting](#tools-linting) + - [Workflows](#workflows) + - [Analyze PR Changes](#analyze-pr-changes) + - [Build](#build) + - [Deploy GitHub Pages](#deploy-github-pages) + - [Comment on PR](#comment-on-pr) + - [Test Tools (Unit)](#test-tools-unit) + - [Test Tools (Integration)](#test-tools-integration) + - [Validate Spec (Lint)](#validate-spec-lint) + - [Validate Spec (Python)](#validate-spec-python) + - [Validate Spec (Ruby)](#validate-spec-ruby) # Developer Guide @@ -173,13 +168,13 @@ npm run merge -- --help The merger tool merges the multi-file OpenSearch spec into a single file for programmatic use. -#### Arguments +**Arguments** - `--source `: The path to the root folder of the multi-file spec, defaults to `/spec`. - `--output `: The path to write the final merged spec to, defaults to `/build/opensearch-openapi.yaml`. - `--opensearch-version`: An optional target version of OpenSearch, checking values of `x-version-added` and `x-version-removed`. -#### Example +**Example** We can take advantage of the default values and simply merge the specification via: ```bash @@ -200,11 +195,11 @@ npm run lint:spec -- --help The linter tool validates the OpenSearch multi-file spec, and will print out all the errors and warnings in it. -#### Arguments +**Arguments** - `--source `: The path to the root folder of the multi-file spec, defaults to `/spec`. -#### Example +**Example** We can take advantage of the default values and simply lint the specification via: ```bash @@ -219,6 +214,20 @@ npm run test:spec -- --help The spec test framework validates the OpenSearch spec against a running OpenSearch cluster. As you modify the spec, you should add or update the spec test stories in the [./tests](tests) directory. For information on this topic, see [TESTING_GUIDE.md](TESTING_GUIDE.md). +### Spec Style + +This repo runs [Vale](https://github.com/errata-ai/vale) on the text contents of the spec, such as descriptions. + +The [Style prepare tool](tools/src/prepare-for-vale/) clears YAML files from all markup and leaves text in-place in the [style workflow](.github/workflows/style.yml), allowing for comments to appear in pull requests on GitHub. + +```bash +npm run style:prepare -- --help +``` + +**Arguments** + +- `--source `: The path to the root folder of the multi-file spec, defaults to `/spec`. + ### [Dump Cluster Spec](tools/src/dump-cluster-spec) ```bash @@ -227,7 +236,7 @@ npm run dump-cluster-spec -- --help The dump-cluster-spec tool connects to an OpenSearch cluster which has the [opensearch-api plugin](https://github.com/dblock/opensearch-api) installed and dumps the skeleton OpenAPI specification it provides to a file. -#### Arguments +**Arguments** - `--opensearch-url `: The URL at which the cluster is accessible, defaults to `https://localhost:9200`. - `--opensearch-insecure`: Disable SSL/TLS certificate verification, defaults to performing verification. @@ -235,7 +244,7 @@ The dump-cluster-spec tool connects to an OpenSearch cluster which has the [open - `--opensearch-password `: The password to authenticate with the cluster, also settable via the `OPENSEARCH_PASSWORD` environment variable. - `--output `: The path to write the dumped spec to, defaults to `/build/opensearch-openapi-CLUSTER.yaml`. -#### Example +**Example** You can use this repo's [docker image which includes the opensearch-api plugin](coverage/Dockerfile) to spin up a local development cluster with a self-signed certificate (e.g. `https://localhost:9200`) and security enabled, to then dump the skeleton specification: ```bash @@ -264,13 +273,13 @@ npm run coverage:spec -- --help The coverage tool determines which APIs from the OpenSearch cluster's reference skeleton specification (dumped by the [dump-cluster-spec tool](#dump-cluster-spec)) are covered by this specification (as built by the [merger tool](#merger)). -#### Arguments +**Arguments** - `--cluster `: The path to the cluster's reference skeleton specification, as dumped by [dump-cluster-spec](#dump-cluster-spec), defaults to `/build/opensearch-openapi-CLUSTER.yaml`. - `--specification `: The path to the merged specification, as built by [merger](#merger), defaults to `/build/opensearch-openapi.yaml`. - `--output `: The path to write the coverage data to, defaults to `/build/coverage.json`. -#### Example +**Example** Assuming you've already followed the previous examples to build the merged specification with the [merger](#example) and dump the cluster's specification with [dump-cluster-spec](#example-2), you can then calculate the API coverage: ```bash @@ -368,6 +377,30 @@ This workflow runs on PRs to invoke the [tools' unit tests](tools/tests), upload This workflow runs on PRs to invoke the [tools' integration tests](tools/tests) that require a running instance of OpenSearch to ensure there are no breakages in behavior. -### [Validate Spec](.github/workflows/validate-spec.yml) +### [Validate Spec (Lint)](.github/workflows/validate-spec-lint.yml) This workflow runs on PRs to invoke the [spec linter](#spec-linter) and ensure the multi-file spec is correct and follows the design guidelines. + +### [Validate Spec (Python)](.github/workflows/validate-spec-py.yml) + +This workflow runs on PRs to invoke the [Python openapi-spec-validator](https://pypi.org/project/openapi-spec-validator/) to ensure that the resulting spec can be loaded by Python tools. + +You can run the validator locally as follows after installing [pipenv](https://pipenv.pypa.io/en/latest/installation.html). + +``` +cd tools/src/validate-spec-py +pipenv install +npm run merge ; pipenv run python validate.py ../../../build/opensearch-openapi.yaml +``` + +### [Validate Spec (Ruby)](.github/workflows/validate-spec-ruby.yml) + +This workflow runs on PRs to invoke the Ruby [Json Schemer](https://github.com/davishmcclurg/json_schemer/) to ensure that the resulting spec can be loaded by Ruby tools. + +You can run the validator locally as follows. + +``` +cd tools/src/validate-spec-ruby +bundle install +npm run merge ; bundle exec ruby validate.rb ../../../build/opensearch-openapi.yaml +``` diff --git a/README.md b/README.md index 7b05be832..a95f722b8 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,12 @@ [![Test Tools (Unit)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-tools-unit.yml/badge.svg)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-tools-unit.yml) [![Test Tools (Integration)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-tools-integ.yml/badge.svg)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-tools-integ.yml) [![Test Spec](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-spec.yml/badge.svg)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/test-spec.yml) -[![Validate Spec](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/validate-spec.yml/badge.svg)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/validate-spec.yml) +[![Validate Spec](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/validate-spec-lint.yml/badge.svg)](https://github.com/opensearch-project/opensearch-api-specification/actions/workflows/validate-spec-lint.yml) - [OpenSearch API Specification](#opensearch-api-specification) - [Welcome!](#welcome) + - [OpenSearch API Source of Truth](#opensearch-api-source-of-truth) + - [Working in this Repo](#working-in-this-repo) - [Project Resources](#project-resources) - [Code of Conduct](#code-of-conduct) - [Security](#security) @@ -18,10 +20,15 @@ ## Welcome! -The `opensearch-api-specification` is an open source, community-driven collection of API model specifications for [OpenSearch](https://github.com/opensearch-project/OpenSearch) APIs. The API models are written in OpenAPI format and are used to generate client libraries and documentation. You can find the latest version of the API specification [here](https://github.com/opensearch-project/opensearch-api-specification/releases/download/main-latest/opensearch-openapi.yaml). +The `opensearch-api-specification` is an open source, community-driven collection of API model specifications for [OpenSearch](https://github.com/opensearch-project/OpenSearch) APIs. The API models are written in OpenAPI format and are used to generate client libraries and documentation. You can find the latest release of the API specification [here](https://github.com/opensearch-project/opensearch-api-specification/releases). -To contribute to this project or to track the developments head over to [Projects](https://github.com/opensearch-project/opensearch-api-specification/projects) board. Follow the [Developer guide](DEVELOPER_GUIDE.md) and [Contributing guidelines](CONTRIBUTING.md) for instructions -on building and contributing to opensearch-api-specification. +### OpenSearch API Source of Truth + +This repo aims to be the complete source of truth for OpenSearch and OpenSearch Dashboards REST APIs, including plugins. To be the source of truth, this repo [accurately represents APIs in YAML](spec/), and [publishes](https://github.com/opensearch-project/opensearch-api-specification/releases) a single-file OpenAPI 3.1.0 spec. The latter is used to [generate OpenSearch language clients](https://github.com/opensearch-project/opensearch-clients/issues/19), [generate mechanical parts of the OpenSearch documentation](https://github.com/opensearch-project/documentation-website/issues/7700), and will be used to [generate the OpenSearch server API itself](https://github.com/opensearch-project/OpenSearch/issues/3090). + +### Working in this Repo + +Because of our legacy, the specification is produced by reading the [OpenSearch documentation](https://opensearch.org/docs/latest/) and reverse-engineering code. Thus, a good place to start contributing to this repo is to [identify a missing API and to add it](https://github.com/opensearch-project/opensearch-api-specification/issues/168) by following the [developer guide](DEVELOPER_GUIDE.md). This repo also contains a set of [test tools](TESTING_GUIDE.md) that ensure the correctness of this API and infrastructure that evaluates the gap between the OpenSearch server and this API spec by comparing REST routes registered in a running OpenSearch to the list of the APIs in this repo. You can see the latest API and test coverage numbers in the comments automatically added to any [recently merged pull requests](https://github.com/opensearch-project/opensearch-api-specification/pulls?q=is%3Apr+is%3Aclosed). ## Project Resources diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 000000000..83a58e3a7 --- /dev/null +++ b/RELEASING.md @@ -0,0 +1,28 @@ +- [Overview](#overview) +- [Branching](#branching) + - [Release Branching](#release-branching) + - [Feature Branches](#feature-branches) +- [Release Labels](#release-labels) +- [Releasing](#releasing) + +## Overview + +This document explains the release strategy for opensearch-api-specification. + +## Versioning + +At this time this project follows minor semantic versioning, i.e. a breaking change is an increment from 0.1.0 to 0.2.0 and a non-breaking change is an increment from 0.1.0 to 0.1.1. A version 1.0 of the API specification will be released when the spec is known to be complete against any current version of OpenSearch. + +## Branching + +Given the early release stages of this repo we only maintain a **main** branch where all merges take place and code moves fast. + +# Releasing + +A release can be done by any [maintainer](MAINTAINERS.md). + +1. Check out the [upstream repo](https://github.com/opensearch-project/opensearch-api-specification) and ensure the repo is up-to-date with `git pull origin main` and that you do not have any local changes. +2. Create a tag, e.g. `git tag v0.1.0`, and push it to GitHub with `git push origin --tags`. +3. The [release workflow](.github/workflows/release.yml) will be automatically kicked off, a draft release, and a pull request that increments the version in [spec/_info.yaml](spec/_info.yaml) will be created. +4. Verify and release the draft. +5. Approve, and merge the version increment pull request. diff --git a/TESTING_GUIDE.md b/TESTING_GUIDE.md index 65312657e..9e59bd2f6 100644 --- a/TESTING_GUIDE.md +++ b/TESTING_GUIDE.md @@ -1,27 +1,31 @@ -* [Spec Testing Guide](#spec-testing-guide) - * [Running Spec Tests](#running-spec-tests) - * [Running Spec Tests Locally](#running-spec-tests-locally) - * [Prerequisites](#prerequisites-) - * [OpenSearch Cluster](#opensearch-cluster-) - * [Run Tests](#run-tests) - * [Running Spec Tests with Amazon OpenSearch](#running-spec-tests-with-amazon-opensearch) - * [Common Errors](#common-errors) - * [401 Unauthorized](#401-unauthorized) - * [FORBIDDEN/10/cluster create-index blocked (api)](#forbidden10cluster-create-index-blocked-api) - * [FAILED Cat with a json response (from security-analytics).](#failed--cat-with-a-json-response-from-security-analytics) - * [Writing Spec Tests](#writing-spec-tests) - * [Simple Test Story](#simple-test-story) - * [Using Output from Previous Chapters](#using-output-from-previous-chapters) - * [Managing Versions](#managing-versions) - * [Managing Distributions](#managing-distributions) - * [Waiting for Tasks](#waiting-for-tasks) - * [Warnings](#warnings) - * [multiple-paths-detected](#multiple-paths-detected) - * [Suppressing Warnings](#suppressing-warnings) - * [Collecting Test Coverage](#collecting-test-coverage) - * [Coverage Summary](#coverage-summary) - * [Coverage Report](#coverage-report) +- [Spec Testing Guide](#spec-testing-guide) + - [Running Spec Tests](#running-spec-tests) + - [Running Spec Tests Locally](#running-spec-tests-locally) + - [Prerequisites](#prerequisites) + - [OpenSearch Cluster](#opensearch-cluster) + - [Run Tests](#run-tests) + - [Running Spec Tests with Amazon OpenSearch](#running-spec-tests-with-amazon-opensearch) + - [Common Errors](#common-errors) + - [401 Unauthorized](#401-unauthorized) + - [FORBIDDEN/10/cluster create-index blocked (api)](#forbidden10cluster-create-index-blocked-api) + - [FAILED Cat with a json response (from security-analytics).](#failed--cat-with-a-json-response-from-security-analytics) + - [Writing Spec Tests](#writing-spec-tests) + - [Simple Test Story](#simple-test-story) + - [Using Output from Previous Chapters](#using-output-from-previous-chapters) + - [Managing Versions](#managing-versions) + - [Managing Distributions](#managing-distributions) + - [Waiting for Tasks](#waiting-for-tasks) + - [Warnings](#warnings) + - [multiple-paths-detected](#multiple-paths-detected) + - [Suppressing Warnings](#suppressing-warnings) + - [Collecting Test Coverage](#collecting-test-coverage) + - [Coverage Summary](#coverage-summary) + - [Coverage Report](#coverage-report) + - [Integration Testing](#integration-testing) + - [Stable Releases](#stable-releases) + - [Custom Setup](#custom-setup) + - [Future Releases](#future-releases) # Spec Testing Guide @@ -93,7 +97,7 @@ Remember to set the `OPENSEARCH_PASSWORD` or `AWS_ACCESS_KEY_ID` and `AWS_SECRET #### FORBIDDEN/10/cluster create-index blocked (api) -The cluster is most likely hitting a disk watermark threshold. This example sets the disk watermark thresholds to 1500MB low, 100MB high, and 500MB flood stage, allowing the cluster to create indices even if the disk is almost full. +The cluster is most likely hitting a disk watermark threshold. This example sets the disk watermark thresholds to 1500MB low, 100MB high, and 500MB flood stage, allowing the cluster to create indexes even if the disk is almost full. ```bash curl -k -X PUT --user "admin:${OPENSEARCH_PASSWORD}" https://localhost:9200/_cluster/settings -H 'Content-Type: application/json' -d' @@ -375,4 +379,85 @@ The test tool can display detailed and hierarchal test coverage with `--coverage GET /_alias/{name} POST /_alias/{name} HEAD /_alias/{name} +``` + +## Integration Testing + +This project runs integration tests against multiple versions of OpenSearch in the [test-spec.yml](.github/workflows/test-spec.yml) workflow. + +### Stable Releases + +The simplest entry in the test matrix executes tests in [tests/default](tests/default) against a released version of OpenSearch. +For example, the following entries run tests gainst OpenSearch 1.3.17 and 2.17.0. + +```yaml +entry: + - version: 1.3.17 + - version: 2.17.0 +``` + +### Custom Setup + +Some tests require a custom docker image. For example, testing the notifications plugin requires a custom webhook. This can be done by creating a custom `docker-compose.yml`, such as the one in [tests/plugins/notifications](tests/plugins/notifications/docker-compose.yml). + +```yaml +webhook: + image: python:latest + volumes: + - ./server.py:/server.py + ports: + - '8080:8080' + entrypoint: python server.py +``` + +The following example in the test matrix will use the custom `docker-compose.yml` and execute all tests in [tests/plugins/notifications](tests/plugins/notifications). + +```yaml +entry: + - version: 2.17.0 + tests: plugins/notifications +``` + +### Future Releases + +Snapshot builds of OpenSearch are available on Docker Hub under [opensearchstaging/opensearch/tags](https://hub.docker.com/r/opensearchstaging/opensearch/tags). + +The following example in the test matrix will use [a snapshot build of OpenSearch 2.18](https://hub.docker.com/layers/opensearchstaging/opensearch/2.18.0/images/sha256-504a9c42bc1b13cb47b39a29db8a9d300d01b8851fb95dbb9db6770f478e45b5?context=explore) to execute the default test suite in [tests/default](tests/default/). + +```yaml +- version: 2.18.0 + hub: opensearchstaging + ref: '@sha256:4445e195c53992038891519dc3be0d273cdaad1b047943d68921168ed243e7e9' +``` + +It's important to note that snapshot builds may not contain all plugins, and may contain previous versions of a plugin if the current code failed to build. It's therefore possible that updating a SHA to test new functionality available in a more recent build causes failures with existing tests. As of today the only workaround is to try the next build that will hopefully have more/all the plugins. For a discussion about this problem see [opensearch-build#5130](https://github.com/opensearch-project/opensearch-build/issues/5130). + +Use the following command to retrieve the manifest of a given build to make it easier to identify a SHA that includes all the plugins. + +```bash +$ docker run -it --entrypoint bash opensearchstaging/opensearch:2.18.0@sha256:4445e195c53992038891519dc3be0d273cdaad1b047943d68921168ed243e7e9 -c "cat /usr/share/opensearch/manifest.yml" +``` + +```yaml +--- +schema-version: '1.1' +build: + name: OpenSearch + version: 2.18.0 + platform: linux + architecture: x64 + distribution: tar + location: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/2.18.0/10320/linux/x64/tar/dist/opensearch/opensearch-2.18.0-linux-x64.tar.gz + id: '10320' +components: + - name: OpenSearch + repository: https://github.com/opensearch-project/OpenSearch.git + ref: 2.x + commit_id: b67f76541b78e58844b54305eb21232e78167744 + location: https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/2.18.0/10320/linux/x64/tar/builds/opensearch/dist/opensearch-min-2.18.0-linux-x64.tar.gz + - name: common-utils + repository: https://github.com/opensearch-project/common-utils.git + ref: 2.x + commit_id: 63ee9746ce04a8eace0ba6320e93bf5833f6a4a6 +... ``` \ No newline at end of file diff --git a/eslint.config.mjs b/eslint.config.mjs index f782d0a2b..d488ff842 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -113,8 +113,7 @@ export default [ parser: parserYml }, plugins: { - 'yml': pluginYml, - '@cspell': pluginCspell + 'yml': pluginYml }, rules: { 'yml/no-empty-document': 'off', @@ -122,7 +121,6 @@ export default [ 'yml/plain-scalar': ['error', 'always'], 'yml/no-trailing-zeros': 'error', 'yml/no-multiple-empty-lines': 'error', - '@cspell/spellchecker': ['error', { customWordListFile: '.cspell', autoFix: true }], 'yml/sort-sequence-values': ['error', { pathPattern: '.*', order: { type: 'asc' } }] } } diff --git a/package-lock.json b/package-lock.json index a6dae5581..20bdff237 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,7 @@ "eslint-plugin-n": "^16.6.2", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-yml": "^1.14.0", + "fast-glob": "^3.3.2", "globals": "^15.0.0", "json-diff-ts": "^4.0.1", "json-schema-to-typescript": "^14.0.4", @@ -4464,9 +4465,9 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -12885,9 +12886,9 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", diff --git a/package.json b/package.json index 5244756f3..a0715e2a2 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "lint": "eslint . --report-unused-disable-directives", "lint--fix": "eslint . --fix --report-unused-disable-directives", "merge": "ts-node tools/src/merger/merge.ts", + "style:prepare": "ts-node tools/src/prepare-for-vale/prepare-for-vale.ts", "test": "npm run test:unit && npm run test:integ", "jest": "jest", "test:unit": "jest --testMatch='**/*.test.ts' --testPathIgnorePatterns=/integ/", @@ -34,12 +35,12 @@ "@types/titlecase": "^1.1.2", "@types/tmp": "^0.2.6", "@typescript-eslint/eslint-plugin": "^6.21.0", - "axios-mock-adapter": "^2.0.0", "ajv": "^8.13.0", "ajv-errors": "^3.0.0", "ajv-formats": "^3.0.1", "aws4-axios": "^3.3.7", "axios": "^1.7.5", + "axios-mock-adapter": "^2.0.0", "cbor": "^9.0.2", "commander": "^12.0.0", "eslint": "^8.57.0", @@ -51,6 +52,7 @@ "eslint-plugin-n": "^16.6.2", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-yml": "^1.14.0", + "fast-glob": "^3.3.2", "globals": "^15.0.0", "json-diff-ts": "^4.0.1", "json-schema-to-typescript": "^14.0.4", diff --git a/spec/_global_parameters.yaml b/spec/_global_parameters.yaml index 91ddbfe8f..160d1d241 100644 --- a/spec/_global_parameters.yaml +++ b/spec/_global_parameters.yaml @@ -10,21 +10,21 @@ components: description: Whether to pretty format the returned JSON response. schema: type: boolean - default: false + default: false human: name: human in: query description: Whether to return human readable values for statistics. schema: type: boolean - default: true + default: true error_trace: name: error_trace in: query description: Whether to include the stack trace of returned errors. schema: type: boolean - default: false + default: false source: name: source in: query diff --git a/spec/_info.yaml b/spec/_info.yaml index d8d63d088..81d079772 100644 --- a/spec/_info.yaml +++ b/spec/_info.yaml @@ -1,5 +1,5 @@ $schema: ./json_schemas/_info.schema.yaml title: OpenSearch API Specification -version: 1.0.0 +version: 0.2.0 x-api-version: 2.16.0 diff --git a/spec/_superseded_operations.yaml b/spec/_superseded_operations.yaml index 80e556067..fbc54730f 100644 --- a/spec/_superseded_operations.yaml +++ b/spec/_superseded_operations.yaml @@ -201,7 +201,7 @@ $schema: ./json_schemas/_superseded_operations.schema.yaml - GET - PUT /_opendistro/_ism/policies/{policyID}: - superseded_by: /_plugins/_ism/policies/{policyID} + superseded_by: /_plugins/_ism/policies/{policy_id} operations: - GET - HEAD @@ -240,7 +240,7 @@ $schema: ./json_schemas/_superseded_operations.schema.yaml operations: - GET /_opendistro/_knn/{nodeId}/stats/{stat}: - superseded_by: /_plugins/_knn/{nodeId}/stats/{stat} + superseded_by: /_plugins/_knn/{node_id}/stats/{stat} operations: - GET /_opendistro/_performanceanalyzer/_agent/{redirectEndpoint}: @@ -354,22 +354,22 @@ $schema: ./json_schemas/_superseded_operations.schema.yaml - GET - PUT /_opendistro/_rollup/jobs/{rollupID}: - superseded_by: /_plugins/_rollup/jobs/{rollupID} + superseded_by: /_plugins/_rollup/jobs/{id} operations: - GET - HEAD - PUT - DELETE /_opendistro/_rollup/jobs/{rollupID}/_explain: - superseded_by: /_plugins/_rollup/jobs/{rollupID}/_explain + superseded_by: /_plugins/_rollup/jobs/{id}/_explain operations: - GET /_opendistro/_rollup/jobs/{rollupID}/_start: - superseded_by: /_plugins/_rollup/jobs/{rollupID}/_start + superseded_by: /_plugins/_rollup/jobs/{id}/_start operations: - POST /_opendistro/_rollup/jobs/{rollupID}/_stop: - superseded_by: /_plugins/_rollup/jobs/{rollupID}/_stop + superseded_by: /_plugins/_rollup/jobs/{id}/_stop operations: - POST /_opendistro/_security/api/_upgrade_check/: @@ -401,7 +401,7 @@ $schema: ./json_schemas/_superseded_operations.schema.yaml - GET - PATCH /_opendistro/_security/api/actiongroups/{name}: - superseded_by: /_plugins/_security/api/actiongroups/{name} + superseded_by: /_plugins/_security/api/actiongroups/{action_group} operations: - GET - PUT @@ -433,14 +433,14 @@ $schema: ./json_schemas/_superseded_operations.schema.yaml - GET - PATCH /_opendistro/_security/api/internalusers/{name}: - superseded_by: /_plugins/_security/api/internalusers/{name} + superseded_by: /_plugins/_security/api/internalusers/{username} operations: - GET - PUT - PATCH - DELETE /_opendistro/_security/api/internalusers/{name}/authtoken: - superseded_by: /_plugins/_security/api/internalusers/{name}/authtoken + superseded_by: /_plugins/_security/api/internalusers/{username}/authtoken operations: - POST /_opendistro/_security/api/migrate: @@ -457,7 +457,7 @@ $schema: ./json_schemas/_superseded_operations.schema.yaml - GET - PATCH /_opendistro/_security/api/roles/{name}: - superseded_by: /_plugins/_security/api/roles/{name} + superseded_by: /_plugins/_security/api/roles/{role} operations: - GET - PUT @@ -469,7 +469,7 @@ $schema: ./json_schemas/_superseded_operations.schema.yaml - GET - PATCH /_opendistro/_security/api/rolesmapping/{name}: - superseded_by: /_plugins/_security/api/rolesmapping/{name} + superseded_by: /_plugins/_security/api/rolesmapping/{role} operations: - GET - PUT @@ -519,7 +519,7 @@ $schema: ./json_schemas/_superseded_operations.schema.yaml - GET - PATCH /_opendistro/_security/api/tenants/{name}: - superseded_by: /_plugins/_security/api/tenants/{name} + superseded_by: /_plugins/_security/api/tenants/{tenant} operations: - GET - PUT @@ -529,14 +529,14 @@ $schema: ./json_schemas/_superseded_operations.schema.yaml superseded_by: /_plugins/_security/api/user operations: - GET -/_opendistro/_security/api/user/{name}: - superseded_by: /_plugins/_security/api/user/{name} +/_opendistro/_security/api/user/{username}: + superseded_by: /_plugins/_security/api/user/{username} operations: - GET - PUT - DELETE /_opendistro/_security/api/user/{name}/authtoken: - superseded_by: /_plugins/_security/api/user/{name}/authtoken + superseded_by: /_plugins/_security/api/user/{username}/authtoken operations: - POST /_opendistro/_security/api/validate: diff --git a/spec/namespaces/_core.yaml b/spec/namespaces/_core.yaml index 0ef3a16a6..52a0056fd 100644 --- a/spec/namespaces/_core.yaml +++ b/spec/namespaces/_core.yaml @@ -76,6 +76,57 @@ paths: responses: '200': $ref: '#/components/responses/bulk@200' + /_bulk/stream: + post: + operationId: bulk_stream.0 + x-operation-group: bulk_stream + x-version-added: '2.17' + description: Allows to perform multiple index/update/delete operations using request response streaming. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/document-apis/bulk-streaming/ + parameters: + - $ref: '#/components/parameters/bulk_stream::query._source' + - $ref: '#/components/parameters/bulk_stream::query._source_excludes' + - $ref: '#/components/parameters/bulk_stream::query._source_includes' + - $ref: '#/components/parameters/bulk_stream::query.batch_interval' + - $ref: '#/components/parameters/bulk_stream::query.batch_size' + - $ref: '#/components/parameters/bulk_stream::query.pipeline' + - $ref: '#/components/parameters/bulk_stream::query.refresh' + - $ref: '#/components/parameters/bulk_stream::query.require_alias' + - $ref: '#/components/parameters/bulk_stream::query.routing' + - $ref: '#/components/parameters/bulk_stream::query.timeout' + - $ref: '#/components/parameters/bulk_stream::query.type' + - $ref: '#/components/parameters/bulk_stream::query.wait_for_active_shards' + requestBody: + $ref: '#/components/requestBodies/bulk_stream' + responses: + '200': + $ref: '#/components/responses/bulk_stream@200' + put: + operationId: bulk_stream.1 + x-operation-group: bulk_stream + x-version-added: '2.17' + description: Allows to perform multiple index/update/delete operations using request response streaming. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/document-apis/bulk-streaming/ + parameters: + - $ref: '#/components/parameters/bulk_stream::query._source' + - $ref: '#/components/parameters/bulk_stream::query._source_excludes' + - $ref: '#/components/parameters/bulk_stream::query._source_includes' + - $ref: '#/components/parameters/bulk_stream::query.batch_interval' + - $ref: '#/components/parameters/bulk_stream::query.batch_size' + - $ref: '#/components/parameters/bulk_stream::query.pipeline' + - $ref: '#/components/parameters/bulk_stream::query.refresh' + - $ref: '#/components/parameters/bulk_stream::query.require_alias' + - $ref: '#/components/parameters/bulk_stream::query.routing' + - $ref: '#/components/parameters/bulk_stream::query.timeout' + - $ref: '#/components/parameters/bulk_stream::query.type' + - $ref: '#/components/parameters/bulk_stream::query.wait_for_active_shards' + requestBody: + $ref: '#/components/requestBodies/bulk_stream' + responses: + '200': + $ref: '#/components/responses/bulk_stream@200' /_count: get: operationId: count.0 @@ -150,7 +201,7 @@ paths: operationId: field_caps.0 x-operation-group: field_caps x-version-added: '1.0' - description: Returns the information about the capabilities of fields among multiple indices. + description: Returns the information about the capabilities of fields among multiple indexes. externalDocs: url: https://opensearch.org/docs/latest/field-types/supported-field-types/alias/#using-aliases-in-field-capabilities-api-operations parameters: @@ -168,7 +219,7 @@ paths: operationId: field_caps.1 x-operation-group: field_caps x-version-added: '1.0' - description: Returns the information about the capabilities of fields among multiple indices. + description: Returns the information about the capabilities of fields among multiple indexes. externalDocs: url: https://opensearch.org/docs/latest/field-types/supported-field-types/alias/#using-aliases-in-field-capabilities-api-operations parameters: @@ -963,7 +1014,7 @@ paths: operationId: search_shards.0 x-operation-group: search_shards x-version-added: '1.0' - description: Returns information about the indices and shards that a search request would be executed against. + description: Returns information about the indexes and shards that a search request would be executed against. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -980,7 +1031,7 @@ paths: operationId: search_shards.1 x-operation-group: search_shards x-version-added: '1.0' - description: Returns information about the indices and shards that a search request would be executed against. + description: Returns information about the indexes and shards that a search request would be executed against. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -1056,6 +1107,59 @@ paths: responses: '200': $ref: '#/components/responses/bulk@200' + /{index}/_bulk/stream: + post: + operationId: bulk_stream.2 + x-operation-group: bulk_stream + x-version-added: '2.17' + description: Allows to perform multiple index/update/delete operations using request response streaming. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/document-apis/bulk-streaming/ + parameters: + - $ref: '#/components/parameters/bulk_stream::path.index' + - $ref: '#/components/parameters/bulk_stream::query._source' + - $ref: '#/components/parameters/bulk_stream::query._source_excludes' + - $ref: '#/components/parameters/bulk_stream::query._source_includes' + - $ref: '#/components/parameters/bulk_stream::query.batch_interval' + - $ref: '#/components/parameters/bulk_stream::query.batch_size' + - $ref: '#/components/parameters/bulk_stream::query.pipeline' + - $ref: '#/components/parameters/bulk_stream::query.refresh' + - $ref: '#/components/parameters/bulk_stream::query.require_alias' + - $ref: '#/components/parameters/bulk_stream::query.routing' + - $ref: '#/components/parameters/bulk_stream::query.timeout' + - $ref: '#/components/parameters/bulk_stream::query.type' + - $ref: '#/components/parameters/bulk_stream::query.wait_for_active_shards' + requestBody: + $ref: '#/components/requestBodies/bulk_stream' + responses: + '200': + $ref: '#/components/responses/bulk_stream@200' + put: + operationId: bulk_stream.3 + x-operation-group: bulk_stream + x-version-added: '2.17' + description: Allows to perform multiple index/update/delete operations using request response streaming. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/document-apis/bulk-streaming/ + parameters: + - $ref: '#/components/parameters/bulk_stream::path.index' + - $ref: '#/components/parameters/bulk_stream::query._source' + - $ref: '#/components/parameters/bulk_stream::query._source_excludes' + - $ref: '#/components/parameters/bulk_stream::query._source_includes' + - $ref: '#/components/parameters/bulk_stream::query.batch_interval' + - $ref: '#/components/parameters/bulk_stream::query.batch_size' + - $ref: '#/components/parameters/bulk_stream::query.pipeline' + - $ref: '#/components/parameters/bulk_stream::query.refresh' + - $ref: '#/components/parameters/bulk_stream::query.require_alias' + - $ref: '#/components/parameters/bulk_stream::query.routing' + - $ref: '#/components/parameters/bulk_stream::query.timeout' + - $ref: '#/components/parameters/bulk_stream::query.type' + - $ref: '#/components/parameters/bulk_stream::query.wait_for_active_shards' + requestBody: + $ref: '#/components/requestBodies/bulk_stream' + responses: + '200': + $ref: '#/components/responses/bulk_stream@200' /{index}/_count: get: operationId: count.2 @@ -1137,8 +1241,8 @@ paths: requestBody: $ref: '#/components/requestBodies/create' responses: - '200': - $ref: '#/components/responses/create@200' + '201': + $ref: '#/components/responses/create@201' put: operationId: create.1 x-operation-group: create @@ -1162,8 +1266,8 @@ paths: requestBody: $ref: '#/components/requestBodies/create' responses: - '200': - $ref: '#/components/responses/create@200' + '201': + $ref: '#/components/responses/create@201' /{index}/_delete_by_query: post: operationId: delete_by_query.0 @@ -1264,6 +1368,8 @@ paths: responses: '200': $ref: '#/components/responses/get@200' + '404': + $ref: '#/components/responses/get@404' head: operationId: exists.0 x-operation-group: exists @@ -1287,6 +1393,8 @@ paths: responses: '200': $ref: '#/components/responses/exists@200' + '404': + $ref: '#/components/responses/exists@404' post: operationId: index.1 x-operation-group: index @@ -1364,6 +1472,8 @@ paths: responses: '200': $ref: '#/components/responses/delete@200' + '404': + $ref: '#/components/responses/delete@404' /{index}/_explain/{id}: get: operationId: explain.0 @@ -1424,7 +1534,7 @@ paths: operationId: field_caps.2 x-operation-group: field_caps x-version-added: '1.0' - description: Returns the information about the capabilities of fields among multiple indices. + description: Returns the information about the capabilities of fields among multiple indexes. externalDocs: url: https://opensearch.org/docs/latest/field-types/supported-field-types/alias/#using-aliases-in-field-capabilities-api-operations parameters: @@ -1443,7 +1553,7 @@ paths: operationId: field_caps.3 x-operation-group: field_caps x-version-added: '1.0' - description: Returns the information about the capabilities of fields among multiple indices. + description: Returns the information about the capabilities of fields among multiple indexes. externalDocs: url: https://opensearch.org/docs/latest/field-types/supported-field-types/alias/#using-aliases-in-field-capabilities-api-operations parameters: @@ -1882,7 +1992,7 @@ paths: operationId: search_shards.2 x-operation-group: search_shards x-version-added: '1.0' - description: Returns information about the indices and shards that a search request would be executed against. + description: Returns information about the indexes and shards that a search request would be executed against. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -1900,7 +2010,7 @@ paths: operationId: search_shards.3 x-operation-group: search_shards x-version-added: '1.0' - description: Returns information about the indices and shards that a search request would be executed against. + description: Returns information about the indexes and shards that a search request would be executed against. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -1937,6 +2047,8 @@ paths: responses: '200': $ref: '#/components/responses/get_source@200' + '404': + $ref: '#/components/responses/get_source@404' head: operationId: exists_source.0 x-operation-group: exists_source @@ -1959,6 +2071,8 @@ paths: responses: '200': $ref: '#/components/responses/exists_source@200' + '404': + $ref: '#/components/responses/exists_source@404' /{index}/_termvectors: get: operationId: termvectors.0 @@ -2156,6 +2270,18 @@ components: - type: object description: The operation definition and data (action-data pairs), separated by newlines required: true + bulk_stream: + content: + application/x-ndjson: + schema: + type: array + items: + anyOf: + - $ref: '../schemas/_core.bulk.yaml#/components/schemas/OperationContainer' + - $ref: '../schemas/_core.bulk.yaml#/components/schemas/UpdateAction' + - type: object + description: The operation definition and data (action-data pairs), separated by newlines + required: true clear_scroll: content: application/json: @@ -2164,7 +2290,7 @@ components: properties: scroll_id: $ref: '../schemas/_common.yaml#/components/schemas/ScrollIds' - description: Comma-separated list of scroll IDs to clear if none was specified via the scroll_id parameter + description: Comma-separated list of scroll IDs to clear if none was specified using the `scroll_id` parameter count: content: application/json: @@ -2189,7 +2315,8 @@ components: properties: max_docs: description: The maximum number of documents to delete. - type: number + type: integer + format: int32 query: $ref: '../schemas/_common.query_dsl.yaml#/components/schemas/QueryContainer' slice: @@ -2228,8 +2355,6 @@ components: $ref: '../schemas/_common.yaml#/components/schemas/Fields' index_filter: $ref: '../schemas/_common.query_dsl.yaml#/components/schemas/QueryContainer' - runtime_mappings: - $ref: '../schemas/_common.mapping.yaml#/components/schemas/RuntimeFields' description: An index filter specified with the Query DSL index: content: @@ -2329,11 +2454,13 @@ components: $ref: '../schemas/_core.reindex.yaml#/components/schemas/Destination' max_docs: description: The maximum number of documents to reindex. - type: number + type: integer + format: int32 script: $ref: '../schemas/_common.yaml#/components/schemas/Script' size: - type: number + type: integer + format: int32 source: $ref: '../schemas/_core.reindex.yaml#/components/schemas/Source' required: @@ -2360,11 +2487,11 @@ components: source: description: |- An inline search template. - Supports the same parameters as the search API's request body. + Supports the same parameters as the search API request body. These parameters also support Mustache variables. If no `id` or `` is specified, this parameter is required. type: string - description: The search definition template and its params + description: The search definition template and its parameters. scripts_painless_execute: content: application/json: @@ -2406,7 +2533,7 @@ components: collapse: $ref: '../schemas/_core.search.yaml#/components/schemas/FieldCollapse' explain: - description: If true, returns detailed information about score computation as part of a hit. + description: If `true`, returns detailed information about score computation as part of a hit. type: boolean ext: description: Configuration of search extensions defined by OpenSearch plugins. @@ -2419,18 +2546,20 @@ components: Needs to be non-negative. By default, you cannot page through more than 10,000 hits using the `from` and `size` parameters. To page through more hits, use the `search_after` parameter. - type: number + type: integer + format: int32 highlight: $ref: '../schemas/_core.search.yaml#/components/schemas/Highlight' track_total_hits: $ref: '../schemas/_core.search.yaml#/components/schemas/TrackHits' indices_boost: - description: Boosts the _score of documents from specified indices. + description: Boosts the `_score` of documents from specified indexes. type: array items: type: object additionalProperties: type: number + format: float docvalue_fields: description: |- Array of wildcard (`*`) patterns. @@ -2445,6 +2574,7 @@ components: Minimum `_score` for matching documents. Documents with a lower `_score` are not included in the search results. type: number + format: float post_filter: $ref: '../schemas/_common.query_dsl.yaml#/components/schemas/QueryContainer' profile: @@ -2473,7 +2603,8 @@ components: The number of hits to return. By default, you cannot page through more than 10,000 hits using the `from` and `size` parameters. To page through more hits, use the `search_after` parameter. - type: number + type: integer + format: int32 slice: $ref: '../schemas/_common.yaml#/components/schemas/SlicedScroll' sort: @@ -2497,9 +2628,10 @@ components: Use with caution. OpenSearch applies this parameter to each shard handling the request. When possible, let OpenSearch perform early termination automatically. - Avoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers. + Avoid specifying this parameter for requests that target data streams with backing indexes across multiple data tiers. If set to `0` (default), the query does not terminate early. - type: number + type: integer + format: int32 timeout: description: |- Specifies the period of time to wait for a response from each shard. @@ -2507,10 +2639,10 @@ components: Defaults to no timeout. type: string track_scores: - description: If true, calculate and return document scores, even if the scores are not used for sorting. + description: If `true`, calculate and return document scores, even if the scores are not used for sorting. type: boolean version: - description: If true, returns document version as part of a hit. + description: If `true`, returns document version as part of a hit. type: boolean seq_no_primary_term: description: If `true`, returns sequence number and primary term of the last modification of each hit. @@ -2519,13 +2651,11 @@ components: $ref: '../schemas/_common.yaml#/components/schemas/Fields' pit: $ref: '../schemas/_core.search.yaml#/components/schemas/PointInTimeReference' - runtime_mappings: - $ref: '../schemas/_common.mapping.yaml#/components/schemas/RuntimeFields' stats: description: |- Stats groups to associate with the search. Each group maintains a statistics aggregation for its associated searches. - You can retrieve these stats using the indices stats API. + You can retrieve these stats using the indexes stats API. type: array items: type: string @@ -2554,11 +2684,11 @@ components: type: boolean source: description: |- - An inline search template. Supports the same parameters as the search API's + An inline search template. Supports the same parameters as the search API request body. Also supports Mustache variables. If no id is specified, this parameter is required. type: string - description: The search definition template and its params + description: The search definition template and its parameters. required: true termvectors: content: @@ -2585,19 +2715,19 @@ components: properties: detect_noop: description: |- - Set to false to disable setting 'result' in the response - to 'noop' if no change to the document occurred. + Set to `false` to disable setting `result` in the response + to `noop` if no change to the document occurred. type: boolean doc: description: A partial update to an existing document. type: object doc_as_upsert: - description: Set to true to use the contents of 'doc' as the value of 'upsert' + description: Set to `true` to use the contents of 'doc' as the value of 'upsert' type: boolean script: $ref: '../schemas/_common.yaml#/components/schemas/Script' scripted_upsert: - description: Set to true to execute the script whether or not the document exists. + description: Set to `true` to execute the script whether or not the document exists. type: boolean _source: $ref: '../schemas/_core.search.yaml#/components/schemas/SourceConfig' @@ -2616,7 +2746,8 @@ components: properties: max_docs: description: The maximum number of documents to update. - type: number + type: integer + format: int32 query: $ref: '../schemas/_common.query_dsl.yaml#/components/schemas/QueryContainer' script: @@ -2644,9 +2775,37 @@ components: minProperties: 1 maxProperties: 1 took: - type: number + type: integer + format: int64 ingest_took: - type: number + type: integer + format: int64 + required: + - errors + - items + - took + bulk_stream@200: + content: + application/json: + schema: + type: object + properties: + errors: + type: boolean + items: + type: array + items: + type: object + additionalProperties: + $ref: '../schemas/_core.bulk.yaml#/components/schemas/ResponseItem' + minProperties: 1 + maxProperties: 1 + took: + type: integer + format: int64 + ingest_took: + type: integer + format: int64 required: - errors - items @@ -2660,7 +2819,8 @@ components: succeeded: type: boolean num_freed: - type: number + type: integer + format: int32 required: - num_freed - succeeded @@ -2673,13 +2833,14 @@ components: terminated_early: type: boolean count: - type: number + type: integer + format: int64 _shards: $ref: '../schemas/_common.yaml#/components/schemas/ShardStatistics' required: - _shards - count - create@200: + create@201: content: application/json: schema: @@ -2702,6 +2863,11 @@ components: application/json: schema: $ref: '../schemas/_common.yaml#/components/schemas/WriteResponseBase' + delete@404: + content: + application/json: + schema: + $ref: '../schemas/_common.yaml#/components/schemas/WriteResponseBase' delete_all_pits@200: content: application/json: @@ -2745,15 +2911,23 @@ components: exists@200: content: application/json: {} + exists@404: + content: + application/json: {} exists_source@200: content: application/json: {} + exists_source@404: + content: + application/json: {} explain@200: content: application/json: schema: type: object properties: + _type: + $ref: '../schemas/_common.yaml#/components/schemas/Type' _index: $ref: '../schemas/_common.yaml#/components/schemas/IndexName' _id: @@ -2790,6 +2964,11 @@ components: application/json: schema: $ref: '../schemas/_core.get.yaml#/components/schemas/GetResult' + get@404: + content: + application/json: + schema: + $ref: '../schemas/_core.get.yaml#/components/schemas/GetResult' get_all_pits@200: content: application/json: @@ -2849,6 +3028,11 @@ components: application/json: schema: type: object + get_source@404: + content: + application/json: + schema: + $ref: '../schemas/query._common.yaml#/components/schemas/ErrorResponse' index@200: content: application/json: @@ -2932,6 +3116,7 @@ components: metric_score: description: The overall evaluation quality calculated by the defined metric type: number + format: double details: description: The details section contains one entry for every query in the original requests section, keyed by the search request id type: object @@ -3040,7 +3225,8 @@ components: type: object properties: took: - type: number + type: integer + format: int64 timed_out: type: boolean _shards: @@ -3059,8 +3245,10 @@ components: type: object max_score: type: number + format: float num_reduce_phases: - type: number + type: integer + format: int32 profile: $ref: '../schemas/_core.search.yaml#/components/schemas/Profile' pit_id: @@ -3097,7 +3285,8 @@ components: additionalProperties: $ref: '../schemas/_core.termvectors.yaml#/components/schemas/TermVector' took: - type: number + type: integer + format: int64 _version: $ref: '../schemas/_common.yaml#/components/schemas/VersionNumber' required: @@ -3195,7 +3384,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form bulk::query.timeout: in: query @@ -3221,6 +3410,110 @@ components: $ref: '../schemas/_common.yaml#/components/schemas/WaitForActiveShards' style: form x-default: '1' + bulk_stream::path.index: + in: path + name: index + description: Name of the data stream, index, or index alias to perform bulk actions on. + required: true + schema: + $ref: '../schemas/_common.yaml#/components/schemas/IndexName' + style: simple + bulk_stream::query._source: + in: query + name: _source + description: '`true` or `false` to return the `_source` field or not, or a list of fields to return.' + schema: + $ref: '../schemas/_core.search.yaml#/components/schemas/SourceConfigParam' + style: form + bulk_stream::query._source_excludes: + in: query + name: _source_excludes + description: A comma-separated list of source fields to exclude from the response. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Fields' + style: form + bulk_stream::query._source_includes: + in: query + name: _source_includes + description: A comma-separated list of source fields to include in the response. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Fields' + style: form + bulk_stream::query.pipeline: + in: query + name: pipeline + description: |- + ID of the pipeline to use to preprocess incoming documents. + If the index has a default ingest pipeline specified, then setting the value to `_none` disables the default ingest pipeline for this request. + If a final pipeline is configured it will always run, regardless of the value of this parameter. + schema: + type: string + style: form + bulk_stream::query.refresh: + in: query + name: refresh + description: |- + If `true`, OpenSearch refreshes the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` do nothing with refreshes. + Valid values: `true`, `false`, `wait_for`. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Refresh' + style: form + bulk_stream::query.require_alias: + in: query + name: require_alias + description: If `true`, the request's actions must target an index alias. + schema: + type: boolean + default: false + style: form + bulk_stream::query.routing: + in: query + name: routing + description: Custom value used to route operations to a specific shard. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' + style: form + bulk_stream::query.timeout: + in: query + name: timeout + description: 'Period each action waits for the following operations: automatic index creation, dynamic mapping updates, waiting for active shards.' + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Duration' + style: form + bulk_stream::query.type: + name: type + in: query + description: Default document type for items which don't provide one. + schema: + type: string + description: Default document type for items which don't provide one. + bulk_stream::query.wait_for_active_shards: + in: query + name: wait_for_active_shards + description: |- + The number of shard copies that must be active before proceeding with the operation. + Set to all or any positive integer up to the total number of shards in the index (`number_of_replicas+1`). + schema: + $ref: '../schemas/_common.yaml#/components/schemas/WaitForActiveShards' + style: form + x-default: '1' + bulk_stream::query.batch_size: + in: query + name: batch_size + description: |- + Specifies how many bulk operations should be accumulated into a batch before sending the batch to data nodes. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/BatchSize' + style: form + x-default: 1 + bulk_stream::query.batch_interval: + in: query + name: batch_interval + description: |- + Specifies for how long bulk operations should be accumulated into a batch before sending the batch to data nodes. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Duration' + style: form clear_scroll::path.scroll_id: in: path name: scroll_id @@ -3236,9 +3529,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases to search. + Comma-separated list of data streams, indexes, and aliases to search. Supports wildcards (`*`). - To search all data streams and indices, omit this parameter or use `*` or `_all`. + To search all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -3247,8 +3540,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -3302,7 +3595,7 @@ components: count::query.ignore_throttled: in: query name: ignore_throttled - description: If `true`, concrete, expanded or aliased indices are ignored when frozen. + description: If `true`, concrete, expanded or aliased indexes are ignored when frozen. schema: type: boolean style: form @@ -3326,6 +3619,7 @@ components: description: Sets the minimum `_score` value that documents must have to be included in the result. schema: type: number + format: float style: form count::query.preference: in: query @@ -3349,7 +3643,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form count::query.terminate_after: in: query @@ -3359,7 +3653,8 @@ components: If a query reaches this limit, OpenSearch terminates the query early. OpenSearch collects documents before sorting. schema: - type: number + type: integer + format: int32 style: form create::path.id: in: path @@ -3404,7 +3699,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form create::query.timeout: in: query @@ -3442,10 +3737,10 @@ components: create_pit::path.index: name: index in: path - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. schema: type: array - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. items: type: string required: true @@ -3459,7 +3754,7 @@ components: create_pit::query.expand_wildcards: name: expand_wildcards in: query - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' create_pit::query.keep_alive: @@ -3482,7 +3777,7 @@ components: description: Comma-separated list of specific routing values. style: form schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' explode: true delete::path.id: in: path @@ -3505,7 +3800,8 @@ components: name: if_primary_term description: Only perform the operation if the document has this primary term. schema: - type: number + type: integer + format: int64 style: form delete::query.if_seq_no: in: query @@ -3528,7 +3824,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form delete::query.timeout: in: query @@ -3567,9 +3863,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases to search. + Comma-separated list of data streams, indexes, and aliases to search. Supports wildcards (`*`). - To search all data streams or indices, omit this parameter or use `*` or `_all`. + To search all data streams or indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -3577,42 +3873,42 @@ components: delete_by_query::query._source: name: _source in: query - description: True or false to return the _source field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. style: form schema: type: array items: type: string - description: True or false to return the _source field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. explode: true delete_by_query::query._source_excludes: name: _source_excludes in: query - description: List of fields to exclude from the returned _source field. + description: List of fields to exclude from the returned `_source` field. style: form schema: type: array items: type: string - description: List of fields to exclude from the returned _source field. + description: List of fields to exclude from the returned `_source` field. explode: true delete_by_query::query._source_includes: name: _source_includes in: query - description: List of fields to extract and return from the _source field. + description: List of fields to extract and return from the `_source` field. style: form schema: type: array items: type: string - description: List of fields to extract and return from the _source field. + description: List of fields to extract and return from the `_source` field. explode: true delete_by_query::query.allow_no_indices: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`. schema: type: boolean @@ -3668,7 +3964,8 @@ components: name: from description: Starting offset. schema: - type: number + type: integer + format: int32 default: 0 style: form delete_by_query::query.ignore_unavailable: @@ -3692,7 +3989,8 @@ components: Maximum number of documents to process. Defaults to all documents. schema: - type: number + type: integer + format: int32 style: form delete_by_query::query.preference: in: query @@ -3716,7 +4014,7 @@ components: name: refresh description: If `true`, OpenSearch refreshes all shards involved in the delete by query after the request completes. schema: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/Refresh' style: form delete_by_query::query.request_cache: in: query @@ -3733,6 +4031,7 @@ components: description: The throttle for this request in sub-requests per second. schema: type: number + format: float default: 0 style: form delete_by_query::query.routing: @@ -3740,7 +4039,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form delete_by_query::query.scroll: in: query @@ -3754,7 +4053,8 @@ components: name: scroll_size description: Size of the scroll request that powers the operation. schema: - type: number + type: integer + format: int32 default: 100 style: form delete_by_query::query.search_timeout: @@ -3778,10 +4078,10 @@ components: delete_by_query::query.size: name: size in: query - description: Deprecated, please use `max_docs` instead. + description: Deprecated, use `max_docs` instead. schema: type: integer - description: Deprecated, please use `max_docs` instead. + description: Deprecated, use `max_docs` instead. format: int32 delete_by_query::query.slices: in: query @@ -3819,9 +4119,10 @@ components: Use with caution. OpenSearch applies this parameter to each shard handling the request. When possible, let OpenSearch perform early termination automatically. - Avoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers. + Avoid specifying this parameter for requests that target data streams with backing indexes across multiple data tiers. schema: - type: number + type: integer + format: int32 style: form delete_by_query::query.timeout: in: query @@ -3870,6 +4171,7 @@ components: description: The throttle for this request in sub-requests per second. schema: type: number + format: float style: form delete_script::path.id: in: path @@ -3890,14 +4192,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. delete_script::query.timeout: in: query name: timeout @@ -3919,7 +4221,7 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -3968,14 +4270,14 @@ components: name: refresh description: If `true`, OpenSearch refreshes all shards involved in the delete by query after the request completes. schema: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/Refresh' style: form exists::query.routing: in: query name: routing description: Target the specified primary shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form exists::query.stored_fields: in: query @@ -4015,7 +4317,7 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -4055,7 +4357,7 @@ components: exists_source::query.realtime: in: query name: realtime - description: If true, the request is real-time as opposed to near-real-time. + description: If `true`, the request is real-time as opposed to near-real-time. schema: type: boolean style: form @@ -4064,14 +4366,14 @@ components: name: refresh description: If `true`, OpenSearch refreshes all shards involved in the delete by query after the request completes. schema: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/Refresh' style: form exists_source::query.routing: in: query name: routing description: Target the specified primary shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form exists_source::query.version: in: query @@ -4110,7 +4412,7 @@ components: explain::query._source: in: query name: _source - description: True or false to return the `_source` field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. schema: $ref: '../schemas/_core.search.yaml#/components/schemas/SourceConfigParam' style: form @@ -4189,7 +4491,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form explain::query.stored_fields: in: query @@ -4201,7 +4503,7 @@ components: field_caps::path.index: in: path name: index - description: Comma-separated list of data streams, indices, and aliases used to limit the request. Supports wildcards (*). To target all data streams and indices, omit this parameter or use * or _all. + description: Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (*). To target all data streams and indexes, omit this parameter or use * or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4210,8 +4512,8 @@ components: in: query name: allow_no_indices description: |- - If false, the request returns an error if any wildcard expression, index alias, - or `_all` value targets only missing or closed indices. This behavior applies even if the request targets other open indices. For example, a request + If `false`, the request returns an error if any wildcard expression, index alias, + or `_all` value targets only missing or closed indexes. This behavior applies even if the request targets other open indexes. For example, a request targeting `foo*,bar*` returns an error if an index starts with foo but no index starts with bar. schema: type: boolean @@ -4233,14 +4535,14 @@ components: field_caps::query.ignore_unavailable: in: query name: ignore_unavailable - description: If `true`, missing or closed indices are not included in the response. + description: If `true`, missing or closed indexes are not included in the response. schema: type: boolean style: form field_caps::query.include_unmapped: in: query name: include_unmapped - description: If true, unmapped fields are included in the response. + description: If `true`, unmapped fields are included in the response. schema: type: boolean default: false @@ -4264,7 +4566,7 @@ components: get::query._source: in: query name: _source - description: True or false to return the _source field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. schema: $ref: '../schemas/_core.search.yaml#/components/schemas/SourceConfigParam' style: form @@ -4300,16 +4602,16 @@ components: get::query.refresh: in: query name: refresh - description: If true, OpenSearch refreshes the affected shards to make this operation visible to search. If false, do nothing with refreshes. + description: If `true`, OpenSearch refreshes the affected shards to make this operation visible to search. If `false`, do nothing with refreshes. schema: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/Refresh' style: form get::query.routing: in: query name: routing description: Target the specified primary shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form get::query.stored_fields: in: query @@ -4331,7 +4633,7 @@ components: get::query.version_type: in: query name: version_type - description: 'Specific version type: internal, external, external_gte.' + description: 'Specific version type: `internal`, `external`, `external_gte`.' schema: $ref: '../schemas/_common.yaml#/components/schemas/VersionType' style: form @@ -4359,7 +4661,7 @@ components: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. get_source::path.id: in: path name: id @@ -4379,7 +4681,7 @@ components: get_source::query._source: in: query name: _source - description: True or false to return the _source field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. schema: $ref: '../schemas/_core.search.yaml#/components/schemas/SourceConfigParam' style: form @@ -4408,23 +4710,23 @@ components: get_source::query.realtime: in: query name: realtime - description: Boolean) If true, the request is real-time as opposed to near-real-time. + description: Boolean) If `true`, the request is real-time as opposed to near-real-time. schema: type: boolean style: form get_source::query.refresh: in: query name: refresh - description: If true, OpenSearch refreshes the affected shards to make this operation visible to search. If false, do nothing with refreshes. + description: If `true`, OpenSearch refreshes the affected shards to make this operation visible to search. If `false`, do nothing with refreshes. schema: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/Refresh' style: form get_source::query.routing: in: query name: routing description: Target the specified primary shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form get_source::query.version: in: query @@ -4436,7 +4738,7 @@ components: get_source::query.version_type: in: query name: version_type - description: 'Specific version type: internal, external, external_gte.' + description: Specific version type. One of `internal`, `external`, `external_gte`. schema: $ref: '../schemas/_common.yaml#/components/schemas/VersionType' style: form @@ -4461,7 +4763,8 @@ components: name: if_primary_term description: Only perform the operation if the document has this primary term. schema: - type: number + type: integer + format: int64 style: form index::query.if_seq_no: in: query @@ -4515,7 +4818,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form index::query.timeout: in: query @@ -4561,7 +4864,7 @@ components: mget::query._source: in: query name: _source - description: True or false to return the `_source` field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. schema: $ref: '../schemas/_core.search.yaml#/components/schemas/SourceConfigParam' style: form @@ -4604,14 +4907,14 @@ components: name: refresh description: If `true`, the request refreshes relevant shards before retrieving documents. schema: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/Refresh' style: form mget::query.routing: in: query name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form mget::query.stored_fields: in: query @@ -4623,7 +4926,7 @@ components: msearch::path.index: in: path name: index - description: Comma-separated list of data streams, indices, and index aliases to search. + description: Comma-separated list of data streams, indexes, and index aliases to search. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4631,7 +4934,7 @@ components: msearch::query.ccs_minimize_roundtrips: in: query name: ccs_minimize_roundtrips - description: If true, network roundtrips between the coordinating node and remote clusters are minimized for cross-cluster search requests. + description: If `true`, network round-trips between the coordinating node and remote clusters are minimized for cross-cluster search requests. schema: type: boolean default: true @@ -4641,14 +4944,16 @@ components: name: max_concurrent_searches description: Maximum number of concurrent searches the multi search API can execute. schema: - type: number + type: integer + format: int32 style: form msearch::query.max_concurrent_shard_requests: in: query name: max_concurrent_shard_requests description: Maximum number of concurrent shard requests that each sub-search request executes per node. schema: - type: number + type: integer + format: int32 default: 5 style: form msearch::query.pre_filter_shard_size: @@ -4656,12 +4961,13 @@ components: name: pre_filter_shard_size description: Defines a threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method i.e., if date filters are mandatory to match but the shard bounds and the query are disjoint. schema: - type: number + type: integer + format: int32 style: form msearch::query.rest_total_hits_as_int: in: query name: rest_total_hits_as_int - description: If true, hits.total are returned as an integer in the response. Defaults to false, which returns an object. + description: If `true`, `hits.total` are returned as an integer in the response. Defaults to false, which returns an object. schema: type: boolean default: false @@ -4684,9 +4990,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases to search. + Comma-separated list of data streams, indexes, and aliases to search. Supports wildcards (`*`). - To search all data streams and indices, omit this parameter or use `*`. + To search all data streams and indexes, omit this parameter or use `*`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4704,7 +5010,8 @@ components: name: max_concurrent_searches description: Maximum number of concurrent searches the API can run. schema: - type: number + type: integer + format: int32 style: form msearch_template::query.rest_total_hits_as_int: in: query @@ -4803,7 +5110,7 @@ components: mtermvectors::query.realtime: in: query name: realtime - description: If true, the request is real-time as opposed to near-real-time. + description: If `true`, the request is real-time as opposed to near-real-time. schema: type: boolean default: true @@ -4813,12 +5120,12 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form mtermvectors::query.term_statistics: in: query name: term_statistics - description: If true, the response includes term frequency and document frequency. + description: If `true`, the response includes term frequency and document frequency. schema: type: boolean default: false @@ -4876,14 +5183,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. put_script::query.timeout: in: query name: timeout @@ -4897,8 +5204,8 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and index aliases used to limit the request. Wildcard (`*`) expressions are supported. - To target all data streams and indices in a cluster, omit this parameter or use `_all` or `*`. + Comma-separated list of data streams, indexes, and index aliases used to limit the request. Wildcard (`*`) expressions are supported. + To target all data streams and indexes in a cluster, omit this parameter or use `_all` or `*`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4906,21 +5213,21 @@ components: rank_eval::query.allow_no_indices: in: query name: allow_no_indices - description: If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. This behavior applies even if the request targets other open indices. For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`. + description: If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. This behavior applies even if the request targets other open indexes. For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`. schema: type: boolean style: form rank_eval::query.expand_wildcards: in: query name: expand_wildcards - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' style: form rank_eval::query.ignore_unavailable: in: query name: ignore_unavailable - description: If `true`, missing or closed indices are not included in the response. + description: If `true`, missing or closed indexes are not included in the response. schema: type: boolean style: form @@ -4944,7 +5251,7 @@ components: name: refresh description: If `true`, the request refreshes affected shards to make this operation visible to search. schema: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/Refresh' style: form reindex::query.requests_per_second: in: query @@ -4954,6 +5261,7 @@ components: Defaults to no throttle. schema: type: number + format: float default: 0 style: form reindex::query.scroll: @@ -5013,6 +5321,7 @@ components: description: The throttle for this request in sub-requests per second. schema: type: number + format: float style: form render_search_template::path.id: in: path @@ -5036,7 +5345,7 @@ components: scroll::query.rest_total_hits_as_int: in: query name: rest_total_hits_as_int - description: If true, the API response's hit.total property is returned as an integer. If false, the API response's hit.total property is returned as an object. + description: If `true`, the API response's `hit.total` property is returned as an integer. If `false`, the API response's `hit.total` property is returned as an object. schema: type: boolean default: false @@ -5060,9 +5369,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases to search. + Comma-separated list of data streams, indexes, and aliases to search. Supports wildcards (`*`). - To search all data streams and indices, omit this parameter or use `*` or `_all`. + To search all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -5105,8 +5414,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`. schema: type: boolean @@ -5114,7 +5423,7 @@ components: search::query.allow_partial_search_results: in: query name: allow_partial_search_results - description: If true, returns partial results if there are shard request timeouts or shard failures. If false, returns an error with no partial results. + description: If `true`, returns partial results if there are shard request timeouts or shard failures. If `false`, returns an error with no partial results. schema: type: boolean default: true @@ -5123,7 +5432,7 @@ components: in: query name: analyze_wildcard description: |- - If true, wildcard and prefix queries are analyzed. + If `true`, wildcard and prefix queries are analyzed. This parameter can only be used when the q query string parameter is specified. schema: type: boolean @@ -5145,13 +5454,14 @@ components: The number of shard results that should be reduced at once on the coordinating node. This value should be used as a protection mechanism to reduce the memory overhead per search request if the potential number of shards in the request can be large. schema: - type: number + type: integer + format: int32 default: 512 style: form search::query.ccs_minimize_roundtrips: in: query name: ccs_minimize_roundtrips - description: If true, network round-trips between the coordinating node and the remote clusters are minimized when executing cross-cluster search (CCS) requests. + description: If `true`, network round-trips between the coordinating node and the remote clusters are minimized when executing cross-cluster search (CCS) requests. schema: type: boolean default: true @@ -5207,13 +5517,14 @@ components: By default, you cannot page through more than 10,000 hits using the `from` and `size` parameters. To page through more hits, use the `search_after` parameter. schema: - type: number + type: integer + format: int32 default: 0 style: form search::query.ignore_throttled: in: query name: ignore_throttled - description: If `true`, concrete, expanded or aliased indices will be ignored when frozen. + description: If `true`, concrete, expanded or aliased indexes will be ignored when frozen. schema: type: boolean style: form @@ -5227,11 +5538,11 @@ components: search::query.include_named_queries_score: name: include_named_queries_score in: query - description: Indicates whether hit.matched_queries should be rendered as a map that includes the name of the matched query associated with its score (true) or as an array containing the name of the matched queries (false) + description: Indicates whether `hit.matched_queries` should be rendered as a map that includes the name of the matched query associated with its score (true) or as an array containing the name of the matched queries (false) schema: type: boolean default: false - description: Indicates whether hit.matched_queries should be rendered as a map that includes the name of the matched query associated with its score (true) or as an array containing the name of the matched queries (false) + description: Indicates whether `hit.matched_queries` should be rendered as a map that includes the name of the matched query associated with its score (true) or as an array containing the name of the matched queries (false) search::query.lenient: in: query name: lenient @@ -5248,7 +5559,8 @@ components: Defines the number of concurrent shard requests per node this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests. schema: - type: number + type: integer + format: int32 default: 5 style: form search::query.pre_filter_shard_size: @@ -5262,7 +5574,8 @@ components: the request targets one or more read-only index; the primary sort of the query targets an indexed field. schema: - type: number + type: integer + format: int32 style: form search::query.preference: in: query @@ -5311,7 +5624,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form search::query.cancel_after_time_interval: in: query @@ -5361,7 +5674,8 @@ components: By default, you cannot page through more than 10,000 hits using the `from` and `size` parameters. To page through more hits, use the `search_after` parameter. schema: - type: number + type: integer + format: int32 default: 10 style: form search::query.sort: @@ -5418,7 +5732,8 @@ components: Number of suggestions to return. This parameter can only be used when the `suggest_field` and `suggest_text` query string parameters are specified. schema: - type: number + type: integer + format: int32 style: form search::query.suggest_text: in: query @@ -5439,10 +5754,11 @@ components: Use with caution. OpenSearch applies this parameter to each shard handling the request. When possible, let OpenSearch perform early termination automatically. - Avoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers. + Avoid specifying this parameter for requests that target data streams with backing indexes across multiple data tiers. If set to `0` (default), the query does not terminate early. schema: - type: number + type: integer + format: int32 style: form search::query.timeout: in: query @@ -5495,7 +5811,7 @@ components: search_shards::path.index: in: path name: index - description: Returns the indices and shards that a search request would be executed against. + description: Returns the indexes and shards that a search request would be executed against. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -5504,8 +5820,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`. schema: type: boolean @@ -5551,13 +5867,13 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form search_template::path.index: in: path name: index description: |- - Comma-separated list of data streams, indices, + Comma-separated list of data streams, indexes, and aliases to search. Supports wildcards (*). required: true schema: @@ -5567,8 +5883,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`. schema: type: boolean @@ -5602,7 +5918,7 @@ components: search_template::query.ignore_throttled: in: query name: ignore_throttled - description: If `true`, specified concrete, expanded, or aliased indices are not included in the response when throttled. + description: If `true`, specified concrete, expanded, or aliased indexes are not included in the response when throttled. schema: type: boolean style: form @@ -5633,7 +5949,7 @@ components: search_template::query.rest_total_hits_as_int: in: query name: rest_total_hits_as_int - description: If true, hits.total are rendered as an integer in the response. + description: If `true`, `hits.total` are rendered as an integer in the response. schema: type: boolean default: false @@ -5643,7 +5959,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form search_template::query.scroll: in: query @@ -5738,7 +6054,7 @@ components: termvectors::query.realtime: in: query name: realtime - description: If true, the request is real-time as opposed to near-real-time. + description: If `true`, the request is real-time as opposed to near-real-time. schema: type: boolean default: true @@ -5748,7 +6064,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form termvectors::query.term_statistics: in: query @@ -5792,7 +6108,7 @@ components: in: query name: _source description: |- - Set to false to disable source retrieval. You can also specify a comma-separated + Set to `false` to disable source retrieval. You can also specify a comma-separated list of the fields you want to retrieve. schema: $ref: '../schemas/_core.search.yaml#/components/schemas/SourceConfigParam' @@ -5816,7 +6132,8 @@ components: name: if_primary_term description: Only perform the operation if the document has this primary term. schema: - type: number + type: integer + format: int64 style: form update::query.if_seq_no: in: query @@ -5838,15 +6155,15 @@ components: name: refresh description: |- If 'true', OpenSearch refreshes the affected shards to make this operation - visible to search, if 'wait_for' then wait for a refresh to make this operation - visible to search, if 'false' do nothing with refreshes. + visible to search, if `wait_for` then wait for a refresh to make this operation + visible to search, if `false` do nothing with refreshes. schema: $ref: '../schemas/_common.yaml#/components/schemas/Refresh' style: form update::query.require_alias: in: query name: require_alias - description: If true, the destination must be an index alias. + description: If `true`, the destination must be an index alias. schema: type: boolean default: false @@ -5856,7 +6173,8 @@ components: name: retry_on_conflict description: Specify how many times should the operation be retried when a conflict occurs. schema: - type: number + type: integer + format: int32 default: 0 style: form update::query.routing: @@ -5864,7 +6182,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form update::query.timeout: in: query @@ -5891,9 +6209,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases to search. + Comma-separated list of data streams, indexes, and aliases to search. Supports wildcards (`*`). - To search all data streams or indices, omit this parameter or use `*` or `_all`. + To search all data streams or indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -5901,42 +6219,42 @@ components: update_by_query::query._source: name: _source in: query - description: True or false to return the _source field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. style: form schema: type: array items: type: string - description: True or false to return the _source field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. explode: true update_by_query::query._source_excludes: name: _source_excludes in: query - description: List of fields to exclude from the returned _source field. + description: List of fields to exclude from the returned `_source` field. style: form schema: type: array items: type: string - description: List of fields to exclude from the returned _source field. + description: List of fields to exclude from the returned `_source` field. explode: true update_by_query::query._source_includes: name: _source_includes in: query - description: List of fields to extract and return from the _source field. + description: List of fields to extract and return from the `_source` field. style: form schema: type: array items: type: string - description: List of fields to extract and return from the _source field. + description: List of fields to extract and return from the `_source` field. explode: true update_by_query::query.allow_no_indices: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`. schema: type: boolean @@ -5993,7 +6311,8 @@ components: name: from description: Starting offset. schema: - type: number + type: integer + format: int32 default: 0 style: form update_by_query::query.ignore_unavailable: @@ -6017,7 +6336,8 @@ components: Maximum number of documents to process. Defaults to all documents. schema: - type: number + type: integer + format: int32 style: form update_by_query::query.pipeline: in: query @@ -6051,7 +6371,7 @@ components: name: refresh description: If `true`, OpenSearch refreshes affected shards to make the operation visible to search. schema: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/Refresh' style: form update_by_query::query.request_cache: in: query @@ -6066,6 +6386,7 @@ components: description: The throttle for this request in sub-requests per second. schema: type: number + format: float default: 0 style: form update_by_query::query.routing: @@ -6073,7 +6394,7 @@ components: name: routing description: Custom value used to route operations to a specific shard. schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' style: form update_by_query::query.scroll: in: query @@ -6087,7 +6408,8 @@ components: name: scroll_size description: Size of the scroll request that powers the operation. schema: - type: number + type: integer + format: int32 default: 100 style: form update_by_query::query.search_timeout: @@ -6107,10 +6429,10 @@ components: update_by_query::query.size: name: size in: query - description: Deprecated, please use `max_docs` instead. + description: Deprecated, use `max_docs` instead. schema: type: integer - description: Deprecated, please use `max_docs` instead. + description: Deprecated, use `max_docs` instead. format: int32 update_by_query::query.slices: in: query @@ -6148,9 +6470,10 @@ components: Use with caution. OpenSearch applies this parameter to each shard handling the request. When possible, let OpenSearch perform early termination automatically. - Avoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers. + Avoid specifying this parameter for requests that target data streams with backing indexes across multiple data tiers. schema: - type: number + type: integer + format: int32 style: form update_by_query::query.timeout: in: query @@ -6199,4 +6522,5 @@ components: description: The throttle for this request in sub-requests per second. schema: type: number + format: float style: form \ No newline at end of file diff --git a/spec/namespaces/asynchronous_search.yaml b/spec/namespaces/asynchronous_search.yaml index 863cd33d6..9153257a9 100644 --- a/spec/namespaces/asynchronous_search.yaml +++ b/spec/namespaces/asynchronous_search.yaml @@ -90,11 +90,13 @@ components: in: path schema: type: string + required: true asynchronous_search.delete::path.id: name: id in: path schema: type: string + required: true requestBodies: asynchronous_search.search: content: diff --git a/spec/namespaces/cat.yaml b/spec/namespaces/cat.yaml index 9e6f27684..e9981e972 100644 --- a/spec/namespaces/cat.yaml +++ b/spec/namespaces/cat.yaml @@ -20,7 +20,7 @@ paths: operationId: cat.aliases.0 x-operation-group: cat.aliases x-version-added: '1.0' - description: Shows information about currently configured aliases to indices including filter and routing infos. + description: Shows information about currently configured aliases to indexes including filter and routing info. externalDocs: url: https://opensearch.org/docs/latest/api-reference/cat/cat-aliases/ parameters: @@ -39,7 +39,7 @@ paths: operationId: cat.aliases.1 x-operation-group: cat.aliases x-version-added: '1.0' - description: Shows information about currently configured aliases to indices including filter and routing infos. + description: Shows information about currently configured aliases to indexes including filter and routing info. externalDocs: url: https://opensearch.org/docs/latest/api-reference/cat/cat-aliases/ parameters: @@ -122,7 +122,7 @@ paths: operationId: cat.count.0 x-operation-group: cat.count x-version-added: '1.0' - description: Provides quick access to the document count of the entire cluster, or individual indices. + description: Provides quick access to the document count of the entire cluster, or individual indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/cat/cat-count/ parameters: @@ -139,7 +139,7 @@ paths: operationId: cat.count.1 x-operation-group: cat.count x-version-added: '1.0' - description: Provides quick access to the document count of the entire cluster, or individual indices. + description: Provides quick access to the document count of the entire cluster, or individual indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/cat/cat-count/ parameters: @@ -157,7 +157,7 @@ paths: operationId: cat.fielddata.0 x-operation-group: cat.fielddata x-version-added: '1.0' - description: Shows how much heap memory is currently being used by fielddata on every data node in the cluster. + description: Shows how much heap memory is currently being used by field data on every data node in the cluster. externalDocs: url: https://opensearch.org/docs/latest/api-reference/cat/cat-field-data/ parameters: @@ -176,7 +176,7 @@ paths: operationId: cat.fielddata.1 x-operation-group: cat.fielddata x-version-added: '1.0' - description: Shows how much heap memory is currently being used by fielddata on every data node in the cluster. + description: Shows how much heap memory is currently being used by field data on every data node in the cluster. externalDocs: url: https://opensearch.org/docs/latest/api-reference/cat/cat-field-data/ parameters: @@ -215,7 +215,7 @@ paths: operationId: cat.indices.0 x-operation-group: cat.indices x-version-added: '1.0' - description: 'Returns information about indices: number of primaries and replicas, document counts, disk size, ...' + description: 'Returns information about indexes: number of primaries and replicas, document counts, disk size, ...' externalDocs: url: https://opensearch.org/docs/latest/api-reference/cat/cat-indices/ parameters: @@ -241,7 +241,7 @@ paths: operationId: cat.indices.1 x-operation-group: cat.indices x-version-added: '1.0' - description: 'Returns information about indices: number of primaries and replicas, document counts, disk size, ...' + description: 'Returns information about indexes: number of primaries and replicas, document counts, disk size, ...' externalDocs: url: https://opensearch.org/docs/latest/api-reference/cat/cat-indices/ parameters: @@ -268,7 +268,7 @@ paths: operationId: cat.master.0 x-operation-group: cat.master deprecated: true - x-deprecation-message: To promote inclusive language, please use '/_cat/cluster_manager' instead. + x-deprecation-message: To promote inclusive language, use '/_cat/cluster_manager' instead. x-version-added: '1.0' x-version-deprecated: '2.0' description: Returns information about the cluster-manager node. @@ -792,7 +792,8 @@ components: cat.aliases@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -801,7 +802,8 @@ components: cat.all_pit_segments@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -810,7 +812,8 @@ components: cat.allocation@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -819,7 +822,8 @@ components: cat.cluster_manager@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -828,7 +832,8 @@ components: cat.count@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -837,7 +842,8 @@ components: cat.fielddata@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -846,7 +852,8 @@ components: cat.health@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -875,7 +882,8 @@ components: cat.indices@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -899,7 +907,8 @@ components: cat.master@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -908,7 +917,8 @@ components: cat.nodeattrs@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -917,7 +927,8 @@ components: cat.nodes@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -926,7 +937,8 @@ components: cat.pending_tasks@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -935,7 +947,8 @@ components: cat.pit_segments@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -944,7 +957,8 @@ components: cat.plugins@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -953,7 +967,8 @@ components: cat.recovery@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -962,7 +977,8 @@ components: cat.repositories@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -971,7 +987,8 @@ components: cat.segment_replication@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -980,7 +997,8 @@ components: cat.segments@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -989,7 +1007,8 @@ components: cat.shards@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -998,7 +1017,8 @@ components: cat.snapshots@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -1007,7 +1027,8 @@ components: cat.tasks@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -1016,7 +1037,8 @@ components: cat.templates@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -1025,7 +1047,8 @@ components: cat.thread_pool@200: content: text/plain: - type: string + schema: + type: string application/json: schema: type: array @@ -1043,17 +1066,17 @@ components: cat.aliases::query.expand_wildcards: in: query name: expand_wildcards - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' style: form cat.aliases::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.aliases::query.h: name: h in: query @@ -1109,10 +1132,10 @@ components: cat.all_pit_segments::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.all_pit_segments::query.h: name: h in: query @@ -1176,10 +1199,10 @@ components: cat.allocation::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.allocation::query.h: name: h in: query @@ -1210,11 +1233,11 @@ components: cat.allocation::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.allocation::query.s: name: s @@ -1245,10 +1268,10 @@ components: cat.cluster_manager::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.cluster_manager::query.h: name: h in: query @@ -1279,11 +1302,11 @@ components: cat.cluster_manager::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.cluster_manager::query.s: name: s @@ -1308,8 +1331,8 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. - Supports wildcards (`*`). To target all data streams and indices, omit this parameter or use `*` or `_all`. + Comma-separated list of data streams, indexes, and aliases used to limit the request. + Supports wildcards (`*`). To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -1317,10 +1340,10 @@ components: cat.count::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.count::query.h: name: h in: query @@ -1386,10 +1409,10 @@ components: cat.fielddata::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.fielddata::query.h: name: h in: query @@ -1431,10 +1454,10 @@ components: cat.health::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.health::query.h: name: h in: query @@ -1475,7 +1498,7 @@ components: cat.health::query.ts: in: query name: ts - description: If true, returns `HH:MM:SS` and Unix epoch timestamps. + description: If `true`, returns `HH:MM:SS` and Unix epoch timestamps. schema: type: boolean default: true @@ -1492,8 +1515,8 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. - Supports wildcards (`*`). To target all data streams and indices, omit this parameter or use `*` or `_all`. + Comma-separated list of data streams, indexes, and aliases used to limit the request. + Supports wildcards (`*`). To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -1522,10 +1545,10 @@ components: cat.indices::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.indices::query.h: name: h in: query @@ -1540,7 +1563,7 @@ components: cat.indices::query.health: in: query name: health - description: The health status used to limit returned indices. By default, the response includes indices of any health status. + description: The health status used to limit returned indexes. By default, the response includes indexes of any health status. schema: $ref: '../schemas/_common.yaml#/components/schemas/HealthStatus' style: form @@ -1555,7 +1578,7 @@ components: cat.indices::query.include_unloaded_segments: in: query name: include_unloaded_segments - description: If true, the response includes information from segments that are not loaded into memory. + description: If `true`, the response includes information from segments that are not loaded into memory. schema: type: boolean default: false @@ -1571,16 +1594,16 @@ components: cat.indices::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.indices::query.pri: in: query name: pri - description: If true, the response only includes information from primary shards. + description: If `true`, the response only includes information from primary shards. schema: type: boolean default: false @@ -1621,10 +1644,10 @@ components: cat.master::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.master::query.h: name: h in: query @@ -1655,11 +1678,11 @@ components: cat.master::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.master::query.s: name: s @@ -1690,10 +1713,10 @@ components: cat.nodeattrs::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.nodeattrs::query.h: name: h in: query @@ -1724,11 +1747,11 @@ components: cat.nodeattrs::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.nodeattrs::query.s: name: s @@ -1766,10 +1789,10 @@ components: cat.nodes::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.nodes::query.full_id: in: query name: full_id @@ -1813,11 +1836,11 @@ components: cat.nodes::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.nodes::query.s: name: s @@ -1854,10 +1877,10 @@ components: cat.pending_tasks::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.pending_tasks::query.h: name: h in: query @@ -1888,11 +1911,11 @@ components: cat.pending_tasks::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.pending_tasks::query.s: name: s @@ -1928,10 +1951,10 @@ components: cat.pit_segments::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.pit_segments::query.h: name: h in: query @@ -1980,10 +2003,10 @@ components: cat.plugins::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.plugins::query.h: name: h in: query @@ -2014,11 +2037,11 @@ components: cat.plugins::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.plugins::query.s: name: s @@ -2043,8 +2066,8 @@ components: in: path name: index description: |- - A comma-separated list of data streams, indices, and aliases used to limit the request. - Supports wildcards (`*`). To target all data streams and indices, omit this parameter or use `*` or `_all`. + A comma-separated list of data streams, indexes, and aliases used to limit the request. + Supports wildcards (`*`). To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -2075,10 +2098,10 @@ components: cat.recovery::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.recovery::query.h: name: h in: query @@ -2144,10 +2167,10 @@ components: cat.repositories::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.repositories::query.h: name: h in: query @@ -2178,11 +2201,11 @@ components: cat.repositories::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.repositories::query.s: name: s @@ -2224,10 +2247,10 @@ components: cat.segment_replication::query.allow_no_indices: name: allow_no_indices in: query - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified). + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified). schema: type: boolean - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified). + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified). cat.segment_replication::query.bytes: name: bytes in: query @@ -2253,16 +2276,16 @@ components: cat.segment_replication::query.expand_wildcards: name: expand_wildcards in: query - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' cat.segment_replication::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.segment_replication::query.h: name: h in: query @@ -2285,17 +2308,17 @@ components: cat.segment_replication::query.ignore_throttled: name: ignore_throttled in: query - description: Whether specified concrete, expanded or aliased indices should be ignored when throttled. + description: Whether specified concrete, expanded or aliased indexes should be ignored when throttled. schema: type: boolean - description: Whether specified concrete, expanded or aliased indices should be ignored when throttled. + description: Whether specified concrete, expanded or aliased indexes should be ignored when throttled. cat.segment_replication::query.ignore_unavailable: name: ignore_unavailable in: query - description: Whether specified concrete indices should be ignored when unavailable (missing or closed). + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). schema: type: boolean - description: Whether specified concrete indices should be ignored when unavailable (missing or closed). + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). cat.segment_replication::query.index: name: index in: query @@ -2353,9 +2376,9 @@ components: in: path name: index description: |- - A comma-separated list of data streams, indices, and aliases used to limit the request. + A comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -2377,10 +2400,10 @@ components: cat.segments::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.segments::query.h: name: h in: query @@ -2403,11 +2426,11 @@ components: cat.segments::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.segments::query.s: name: s @@ -2432,9 +2455,9 @@ components: in: path name: index description: |- - A comma-separated list of data streams, indices, and aliases used to limit the request. + A comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -2456,10 +2479,10 @@ components: cat.shards::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.shards::query.h: name: h in: query @@ -2490,11 +2513,11 @@ components: cat.shards::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.shards::query.s: name: s @@ -2543,10 +2566,10 @@ components: cat.snapshots::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.snapshots::query.h: name: h in: query @@ -2577,11 +2600,11 @@ components: cat.snapshots::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.snapshots::query.s: name: s @@ -2628,10 +2651,10 @@ components: cat.tasks::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.tasks::query.h: name: h in: query @@ -2714,10 +2737,10 @@ components: cat.templates::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.templates::query.h: name: h in: query @@ -2748,11 +2771,11 @@ components: cat.templates::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.templates::query.s: name: s @@ -2793,10 +2816,10 @@ components: cat.thread_pool::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). cat.thread_pool::query.h: name: h in: query @@ -2827,11 +2850,11 @@ components: cat.thread_pool::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true cat.thread_pool::query.s: name: s diff --git a/spec/namespaces/cluster.yaml b/spec/namespaces/cluster.yaml index 8820d2eda..3ae08403a 100644 --- a/spec/namespaces/cluster.yaml +++ b/spec/namespaces/cluster.yaml @@ -331,6 +331,39 @@ paths: responses: '200': $ref: '#/components/responses/cluster.stats@200' + /_cluster/stats/{metric}/nodes/{node_id}: + get: + operationId: cluster.stats.2 + x-operation-group: cluster.stats + x-version-added: '2.18' + description: Returns high-level overview of cluster statistics. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/cluster-api/cluster-stats/ + parameters: + - $ref: '#/components/parameters/cluster.stats::path.metric' + - $ref: '#/components/parameters/cluster.stats::path.node_id' + - $ref: '#/components/parameters/cluster.stats::query.flat_settings' + - $ref: '#/components/parameters/cluster.stats::query.timeout' + responses: + '200': + $ref: '#/components/responses/cluster.stats@200' + /_cluster/stats/{metric}/{index_metric}/nodes/{node_id}: + get: + operationId: cluster.stats.3 + x-operation-group: cluster.stats + x-version-added: '2.18' + description: Returns high-level overview of cluster statistics. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/cluster-api/cluster-stats/ + parameters: + - $ref: '#/components/parameters/cluster.stats::path.index_metric' + - $ref: '#/components/parameters/cluster.stats::path.metric' + - $ref: '#/components/parameters/cluster.stats::path.node_id' + - $ref: '#/components/parameters/cluster.stats::query.flat_settings' + - $ref: '#/components/parameters/cluster.stats::query.timeout' + responses: + '200': + $ref: '#/components/responses/cluster.stats@200' /_cluster/voting_config_exclusions: post: operationId: cluster.post_voting_config_exclusions.0 @@ -491,7 +524,7 @@ components: index: $ref: '../schemas/_common.yaml#/components/schemas/IndexName' primary: - description: If true, returns explanation for the primary shard for the given shard ID. + description: If `true`, returns explanation for the primary shard for the given shard ID. type: boolean shard: description: Specifies the ID of the shard that you would like an explanation for. @@ -506,8 +539,8 @@ components: allow_auto_create: description: |- This setting overrides the value of the `action.auto_create_index` cluster setting. - If set to `true` in a template, then indices can be automatically created using that - template even if auto-creation of indices is disabled via `actions.auto_create_index`. + If set to `true` in a template, then indexes can be automatically created using that + template even if auto-creation of indexes is disabled using `actions.auto_create_index`. If set to `false` then data streams matching the template must always be explicitly created. type: boolean template: @@ -769,7 +802,7 @@ components: cluster.allocation_explain::query.include_disk_info: in: query name: include_disk_info - description: If true, returns information about disk usage and shard sizes. + description: If `true`, returns information about disk usage and shard sizes. schema: type: boolean default: false @@ -777,7 +810,7 @@ components: cluster.allocation_explain::query.include_yes_decisions: in: query name: include_yes_decisions - description: If true, returns YES decisions in explanation. + description: If `true`, returns YES decisions in explanation. schema: type: boolean default: false @@ -803,14 +836,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.delete_component_template::query.timeout: in: query name: timeout @@ -827,7 +860,7 @@ components: Specifies whether to wait for all excluded nodes to be removed from the cluster before clearing the voting configuration exclusions list. Defaults to true, meaning that all excluded nodes must be removed from - the cluster before this API takes any action. If set to false then the + the cluster before this API takes any action. If set to `false` then the voting configuration exclusions list is cleared even if some excluded nodes are still in the cluster. schema: @@ -855,8 +888,8 @@ components: in: query name: local description: |- - If true, the request retrieves information from the local node only. - Defaults to false, which means information is retrieved from the master node. + If `true`, the request retrieves information from the local node only. + Defaults to false, which means information is retrieved from the cluster-manager node. schema: type: boolean default: false @@ -865,7 +898,7 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. If no response is + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true @@ -873,7 +906,7 @@ components: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.get_component_template::path.name: in: path name: name @@ -896,7 +929,7 @@ components: name: local description: |- If `true`, the request retrieves information from the local node only. - If `false`, information is retrieved from the master node. + If `false`, information is retrieved from the cluster-manager node. schema: type: boolean default: false @@ -905,14 +938,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.get_decommission_awareness::path.awareness_attribute_name: name: awareness_attribute_name in: path @@ -948,14 +981,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.get_settings::query.timeout: in: query name: timeout @@ -976,7 +1009,7 @@ components: cluster.health::path.index: in: path name: index - description: Comma-separated list of data streams, indices, and index aliases used to limit the request. Wildcard expressions (*) are supported. To target all data streams and indices in a cluster, omit this parameter or use `_all` or `*`. + description: Comma-separated list of data streams, indexes, and index aliases used to limit the request. Wildcard expressions (*) are supported. To target all data streams and indexes in a cluster, omit this parameter or use `_all` or `*`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -998,21 +1031,21 @@ components: cluster.health::query.expand_wildcards: in: query name: expand_wildcards - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' style: form cluster.health::query.level: in: query name: level - description: Can be one of cluster, indices or shards. Controls the details level of the health information returned. + description: Can be one of cluster, indexes or shards. Controls the details level of the health information returned. schema: $ref: '../schemas/cluster.health.yaml#/components/schemas/Level' style: form cluster.health::query.local: in: query name: local - description: If true, the request retrieves information from the local node only. Defaults to false, which means information is retrieved from the master node. + description: If `true`, the request retrieves information from the local node only. Defaults to false, which means information is retrieved from the cluster-manager node. schema: type: boolean default: false @@ -1020,13 +1053,13 @@ components: cluster.health::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.health::query.timeout: in: query name: timeout @@ -1051,14 +1084,14 @@ components: cluster.health::query.wait_for_no_initializing_shards: in: query name: wait_for_no_initializing_shards - description: A boolean value which controls whether to wait (until the timeout provided) for the cluster to have no shard initializations. Defaults to false, which means it will not wait for initializing shards. + description: A Boolean value which controls whether to wait (until the timeout provided) for the cluster to have no shard initializations. Defaults to false, which means it will not wait for initializing shards. schema: type: boolean style: form cluster.health::query.wait_for_no_relocating_shards: in: query name: wait_for_no_relocating_shards - description: A boolean value which controls whether to wait (until the timeout provided) for the cluster to have no shard relocations. Defaults to false, which means it will not wait for relocating shards. + description: A Boolean value which controls whether to wait (until the timeout provided) for the cluster to have no shard relocations. Defaults to false, which means it will not wait for relocating shards. schema: type: boolean style: form @@ -1090,7 +1123,7 @@ components: name: local description: |- If `true`, the request retrieves information from the local node only. - If `false`, information is retrieved from the master node. + If `false`, information is retrieved from the cluster-manager node. schema: type: boolean default: false @@ -1099,20 +1132,20 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.post_voting_config_exclusions::query.node_ids: in: query name: node_ids description: |- A comma-separated list of the persistent ids of the nodes to exclude - from the voting configuration. If specified, you may not also specify node_names. + from the voting configuration. If specified, you may not also specify `node_names`. schema: $ref: '../schemas/_common.yaml#/components/schemas/Ids' style: form @@ -1121,7 +1154,7 @@ components: name: node_names description: |- A comma-separated list of the names of the nodes to exclude from the - voting configuration. If specified, you may not also specify node_ids. + voting configuration. If specified, you may not also specify `node_ids`. schema: $ref: '../schemas/_common.yaml#/components/schemas/Names' style: form @@ -1142,7 +1175,7 @@ components: description: |- Name of the component template to create. OpenSearch includes the following built-in component templates: `logs-mappings`; 'logs-settings`; `metrics-mappings`; `metrics-settings`;`synthetics-mapping`; `synthetics-settings`. - OpenSearch Agent uses these templates to configure backing indices for its data streams. + OpenSearch Agent uses these templates to configure backing indexes for its data streams. If you use OpenSearch Agent and want to overwrite one of these templates, set the `version` for your replacement template higher than the current version. If you don't use OpenSearch Agent and want to disable all built-in component and index templates, set `stack.templates.enabled` to `false` using the cluster update settings API. required: true @@ -1168,14 +1201,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.put_component_template::query.timeout: name: timeout in: query @@ -1216,13 +1249,13 @@ components: cluster.put_settings::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.put_settings::query.timeout: in: query name: timeout @@ -1248,27 +1281,27 @@ components: cluster.reroute::query.dry_run: in: query name: dry_run - description: If true, then the request simulates the operation only and returns the resulting state. + description: If `true`, then the request simulates the operation only and returns the resulting state. schema: type: boolean style: form cluster.reroute::query.explain: in: query name: explain - description: If true, then the response contains an explanation of why the commands can or cannot be executed. + description: If `true`, then the response contains an explanation of why the commands can or cannot be executed. schema: type: boolean style: form cluster.reroute::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.reroute::query.metric: in: query name: metric @@ -1283,7 +1316,7 @@ components: cluster.reroute::query.retry_failed: in: query name: retry_failed - description: If true, then retries allocation of shards that are blocked due to too many subsequent allocation failures. + description: If `true`, then retries allocation of shards that are blocked due to too many subsequent allocation failures. schema: type: boolean style: form @@ -1297,7 +1330,7 @@ components: cluster.state::path.index: in: path name: index - description: A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + description: A comma-separated list of index names; use `_all` or empty string to perform the operation on all indexes required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -1315,7 +1348,7 @@ components: cluster.state::query.allow_no_indices: in: query name: allow_no_indices - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified) schema: type: boolean style: form @@ -1329,7 +1362,7 @@ components: cluster.state::query.expand_wildcards: in: query name: expand_wildcards - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' style: form @@ -1344,7 +1377,7 @@ components: cluster.state::query.ignore_unavailable: in: query name: ignore_unavailable - description: Whether specified concrete indices should be ignored when unavailable (missing or closed) + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed) schema: type: boolean style: form @@ -1359,27 +1392,48 @@ components: cluster.state::query.master_timeout: in: query name: master_timeout - description: Specify timeout for connection to master + description: Specify timeout for connection to cluster manager. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. cluster.state::query.wait_for_metadata_version: in: query name: wait_for_metadata_version - description: Wait for the metadata version to be equal or greater than the specified metadata version + description: Wait for the metadata version to be equal or greater than the specified metadata version. schema: $ref: '../schemas/_common.yaml#/components/schemas/VersionNumber' style: form cluster.state::query.wait_for_timeout: in: query name: wait_for_timeout - description: The maximum time to wait for wait_for_metadata_version before timing out + description: The maximum time to wait for `wait_for_metadata_version` before timing out. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form + cluster.stats::path.index_metric: + in: path + name: index_metric + description: Limit the information returned for indexes metric to the specific index metrics. It can be used only if indexes (or all) metric is specified. + required: true + schema: + type: array + items: + $ref: '../schemas/cluster.stats.yaml#/components/schemas/IndexMetric' + style: simple + cluster.stats::path.metric: + in: path + name: metric + description: Limit the information returned to the specified metrics. + required: true + schema: + type: array + items: + $ref: '../schemas/cluster.stats.yaml#/components/schemas/Metric' + style: + simple cluster.stats::path.node_id: in: path name: node_id diff --git a/spec/namespaces/dangling_indices.yaml b/spec/namespaces/dangling_indices.yaml index d4ba7438b..17a8d271a 100644 --- a/spec/namespaces/dangling_indices.yaml +++ b/spec/namespaces/dangling_indices.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: OpenSearch Dangling_indices API - description: OpenSearch Dangling_indices API. + title: OpenSearch Dangling Indices API + description: OpenSearch Dangling Indices API. version: 1.0.0 paths: /_dangling: @@ -9,7 +9,7 @@ paths: operationId: dangling_indices.list_dangling_indices.0 x-operation-group: dangling_indices.list_dangling_indices x-version-added: '1.0' - description: Returns all dangling indices. + description: Returns all dangling indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/index-apis/dangling-index/ parameters: [] @@ -31,8 +31,8 @@ paths: - $ref: '#/components/parameters/dangling_indices.import_dangling_index::query.master_timeout' - $ref: '#/components/parameters/dangling_indices.import_dangling_index::query.timeout' responses: - '200': - $ref: '#/components/responses/dangling_indices.import_dangling_index@200' + '202': + $ref: '#/components/responses/dangling_indices.import_dangling_index@202' delete: operationId: dangling_indices.delete_dangling_index.0 x-operation-group: dangling_indices.delete_dangling_index @@ -47,17 +47,17 @@ paths: - $ref: '#/components/parameters/dangling_indices.delete_dangling_index::query.master_timeout' - $ref: '#/components/parameters/dangling_indices.delete_dangling_index::query.timeout' responses: - '200': - $ref: '#/components/responses/dangling_indices.delete_dangling_index@200' + '202': + $ref: '#/components/responses/dangling_indices.delete_dangling_index@202' components: requestBodies: {} responses: - dangling_indices.delete_dangling_index@200: + dangling_indices.delete_dangling_index@202: content: application/json: schema: $ref: '../schemas/_common.yaml#/components/schemas/AcknowledgedResponseBase' - dangling_indices.import_dangling_index@200: + dangling_indices.import_dangling_index@202: content: application/json: schema: @@ -82,7 +82,7 @@ components: dangling_indices.delete_dangling_index::path.index_uuid: in: path name: index_uuid - description: The UUID of the dangling index + description: The UUID of the dangling index. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Uuid' @@ -90,7 +90,7 @@ components: dangling_indices.delete_dangling_index::query.accept_data_loss: in: query name: accept_data_loss - description: Must be set to true in order to delete the dangling index + description: Must be set to true in order to delete the dangling index. required: true schema: type: boolean @@ -105,24 +105,24 @@ components: dangling_indices.delete_dangling_index::query.master_timeout: in: query name: master_timeout - description: Specify timeout for connection to master + description: Specify timeout for connection to cluster manager. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. dangling_indices.delete_dangling_index::query.timeout: in: query name: timeout - description: Explicit operation timeout + description: Explicit operation timeout. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form dangling_indices.import_dangling_index::path.index_uuid: in: path name: index_uuid - description: The UUID of the dangling index + description: The UUID of the dangling index. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Uuid' @@ -130,7 +130,7 @@ components: dangling_indices.import_dangling_index::query.accept_data_loss: in: query name: accept_data_loss - description: Must be set to true in order to import the dangling index + description: Must be set to true in order to import the dangling index. required: true schema: type: boolean @@ -145,17 +145,17 @@ components: dangling_indices.import_dangling_index::query.master_timeout: in: query name: master_timeout - description: Specify timeout for connection to master + description: Specify timeout for connection to cluster manager. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. dangling_indices.import_dangling_index::query.timeout: in: query name: timeout - description: Explicit operation timeout + description: Explicit operation timeout. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form diff --git a/spec/namespaces/flow_framework.yaml b/spec/namespaces/flow_framework.yaml index feed463e6..b0a47a30a 100644 --- a/spec/namespaces/flow_framework.yaml +++ b/spec/namespaces/flow_framework.yaml @@ -61,7 +61,7 @@ paths: responses: '201': $ref: '#/components/responses/flow_framework.update@201' - description: It returns the workflow_id + description: It returns the `workflow_id`. '404': $ref: '#/components/responses/flow_framework.update@404' '400': @@ -301,9 +301,7 @@ components: schema: $ref: '../schemas/flow_framework.common.yaml#/components/schemas/Reprovision' flow_framework.create::query.use_case: - description: To use a workflow template, specify it in the use_case query parameter when creating a workflow. - externalDocs: - url: https://opensearch.org/docs/latest/automating-configurations/workflow-templates/#supported-workflow-templates + description: To use a workflow template, specify it in the `use_case` query parameter when creating a workflow. in: query name: use_case schema: @@ -315,9 +313,7 @@ components: schema: $ref: '../schemas/flow_framework.common.yaml#/components/schemas/All' flow_framework.update::query.use_case: - description: To use a workflow template, specify it in the use_case query parameter when creating a workflow. - externalDocs: - url: https://opensearch.org/docs/latest/automating-configurations/workflow-templates/#supported-workflow-templates + description: To use a workflow template, specify it in the `use_case` query parameter when creating a workflow. in: query name: use_case schema: @@ -400,36 +396,39 @@ components: flow_framework.create@403: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' flow_framework.create@400: description: Bad Request - Multiple possible reasons content: application/json: - oneOf: - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidParameterError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/ConflictError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/MissingParameterError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/ParameterConflictError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/MaxWorkflowsLimitError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowSaveError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowParsingError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/UnsupportedFieldUpdateError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidTemplateVersionError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNameRequiredError' + schema: + anyOf: + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidParameterError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/ConflictError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/MissingParameterError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/ParameterConflictError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/MaxWorkflowsLimitError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowSaveError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowParsingError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/UnsupportedFieldUpdateError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidTemplateVersionError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNameRequiredError' flow_framework.update@400: description: Bad Request - Multiple possible reasons content: application/json: - oneOf: - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidParameterError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/ConflictError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/MissingParameterError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/ParameterConflictError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/MaxWorkflowsLimitError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowSaveError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidTemplateVersionError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/UnsupportedFieldUpdateError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowParsingError' + schema: + anyOf: + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidParameterError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/ConflictError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/MissingParameterError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/ParameterConflictError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/MaxWorkflowsLimitError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowSaveError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidTemplateVersionError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/UnsupportedFieldUpdateError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowParsingError' flow_framework.update@201: content: application/json: @@ -444,121 +443,148 @@ components: flow_framework.delete@200: content: application/json: - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/FlowFrameworkDeleteResponse' + schema: + $ref: '../schemas/flow_framework.common.yaml#/components/schemas/FlowFrameworkDeleteResponse' flow_framework.get@200: content: application/json: - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/FlowFrameworkGetResponse' + schema: + $ref: '../schemas/flow_framework.common.yaml#/components/schemas/FlowFrameworkGetResponse' flow_framework.update@404: description: Template Not Found Error content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNotFoundError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNotFoundError' flow_framework.delete@400: description: Work Flow Id Null Error content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkFlowIdNullError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkFlowIdNullError' flow_framework.delete@403: description: Flow Framework API Disabled Error content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' flow_framework.get@404: description: Template Not Found Error content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNotFoundError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNotFoundError' flow_framework.get_steps@200: content: application/json: - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowStep' + schema: + $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowSteps' flow_framework.get_steps@403: description: Flow Framework API Disabled Error content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' flow_framework.get_steps@400: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowStepsRetrieveError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkflowStepsRetrieveError' flow_framework.get_status@403: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' flow_framework.get_status@404: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNotFoundError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNotFoundError' flow_framework.get_status@200: content: application/json: - oneOf: - - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkFlowStatusFullResponse' - - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkFlowStatusDefaultResponse' + schema: + anyOf: + - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkFlowStatusFullResponse' + - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkFlowStatusDefaultResponse' flow_framework.deprovision@200: content: application/json: - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowID' + schema: + $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowIDResponse' flow_framework.provision@200: content: application/json: - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowID' + schema: + $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowIDResponse' flow_framework.deprovision@202: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/DeprovisioningError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/DeprovisioningError' flow_framework.deprovision@403: content: application/json: - oneOf: - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/DeprovisioningForbiddenError' + schema: + oneOf: + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/DeprovisioningForbiddenError' flow_framework.deprovision@404: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNotFoundError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/TemplateNotFoundError' flow_framework.provision@403: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' flow_framework.provision@400: content: application/json: - oneOf: - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkFlowIdNullError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/RequestBodyParsingFailedError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidRequestBodyFieldError' - - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/DuplicateKeyError' + schema: + oneOf: + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/WorkFlowIdNullError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/RequestBodyParsingFailedError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/InvalidRequestBodyFieldError' + - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/DuplicateKeyError' flow_framework.search@200: content: application/json: - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowSearchResponse' + schema: + $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowSearchResponse' flow_framework.search@403: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' flow_framework.search@408: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/RequestTimeoutError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/RequestTimeoutError' flow_framework.search@400: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/BadRequestError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/BadRequestError' flow_framework.search_state@200: content: application/json: - $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowSearchStateResponse' + schema: + $ref: '../schemas/flow_framework.common.yaml#/components/schemas/WorkflowSearchStateResponse' flow_framework.search_state@403: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/FlowFrameworkAPIDisabledError' flow_framework.search_state@408: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/RequestTimeoutError' + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/RequestTimeoutError' flow_framework.search_state@400: content: application/json: - $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/BadRequestError' \ No newline at end of file + schema: + $ref: '../schemas/flow_framework.errors.yaml#/components/schemas/BadRequestError' \ No newline at end of file diff --git a/spec/namespaces/indices.yaml b/spec/namespaces/indices.yaml index d25f3ff09..09e149409 100644 --- a/spec/namespaces/indices.yaml +++ b/spec/namespaces/indices.yaml @@ -198,7 +198,7 @@ paths: x-distributions-excluded: - amazon-managed - amazon-serverless - description: Clears all or specific caches for one or more indices. + description: Clears all or specific caches for one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/index-apis/clear-index-cache/ parameters: @@ -295,7 +295,7 @@ paths: operationId: indices.flush.0 x-operation-group: indices.flush x-version-added: '1.0' - description: Performs the flush operation on one or more indices. + description: Performs the flush operation on one or more indexes. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -311,7 +311,7 @@ paths: operationId: indices.flush.1 x-operation-group: indices.flush x-version-added: '1.0' - description: Performs the flush operation on one or more indices. + description: Performs the flush operation on one or more indexes. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -331,7 +331,7 @@ paths: x-distributions-excluded: - amazon-managed - amazon-serverless - description: Performs the force merge operation on one or more indices. + description: Performs the force merge operation on one or more indexes. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -507,7 +507,7 @@ paths: operationId: indices.get_mapping.0 x-operation-group: indices.get_mapping x-version-added: '1.0' - description: Returns mappings for one or more indices. + description: Returns mappings for one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/field-types/index/#get-a-mapping parameters: @@ -558,7 +558,7 @@ paths: operationId: indices.refresh.0 x-operation-group: indices.refresh x-version-added: '1.0' - description: Performs the refresh operation in one or more indices. + description: Performs the refresh operation in one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/tuning-your-cluster/availability-and-recovery/remote-store/index/#refresh-level-and-request-level-durability parameters: @@ -572,7 +572,7 @@ paths: operationId: indices.refresh.1 x-operation-group: indices.refresh x-version-added: '1.0' - description: Performs the refresh operation in one or more indices. + description: Performs the refresh operation in one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/tuning-your-cluster/availability-and-recovery/remote-store/index/#refresh-level-and-request-level-durability parameters: @@ -587,7 +587,7 @@ paths: operationId: indices.resolve_index.0 x-operation-group: indices.resolve_index x-version-added: '1.0' - description: Returns information about any matching indices, aliases, and data streams. + description: Returns information about any matching indexes, aliases, and data streams. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -623,7 +623,7 @@ paths: x-distributions-excluded: - amazon-managed - amazon-serverless - description: Returns settings for one or more indices. + description: Returns settings for one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/index-apis/get-settings/ parameters: @@ -664,7 +664,7 @@ paths: operationId: indices.get_settings.1 x-operation-group: indices.get_settings x-version-added: '1.0' - description: Returns settings for one or more indices. + description: Returns settings for one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/index-apis/get-settings/ parameters: @@ -685,7 +685,7 @@ paths: operationId: indices.shard_stores.0 x-operation-group: indices.shard_stores x-version-added: '1.0' - description: Provides store information for shard copies of indices. + description: Provides store information for shard copies of indexes. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -845,7 +845,7 @@ paths: x-operation-group: indices.get_upgrade x-version-added: '1.0' x-version-deprecated: '2.0' # i dont know the actual version - description: The _upgrade API is no longer useful and will be removed. + description: The `_upgrade` API is no longer useful and will be removed. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -860,7 +860,7 @@ paths: x-operation-group: indices.upgrade x-version-added: '1.0' x-version-deprecated: '2.0' # i dont know the actual version - description: The _upgrade API is no longer useful and will be removed. + description: The `_upgrade` API is no longer useful and will be removed. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -973,7 +973,7 @@ paths: operationId: indices.get.0 x-operation-group: indices.get x-version-added: '1.0' - description: Returns information about one or more indices. + description: Returns information about one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/index-apis/get-index/ parameters: @@ -1046,6 +1046,8 @@ paths: responses: '200': $ref: '#/components/responses/indices.delete@200' + '404': + $ref: '#/components/responses/indices.delete@404' /{index}/_alias: get: operationId: indices.get_alias.2 @@ -1300,7 +1302,7 @@ paths: operationId: indices.clear_cache.1 x-operation-group: indices.clear_cache x-version-added: '1.0' - description: Clears all or specific caches for one or more indices. + description: Clears all or specific caches for one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/index-apis/clear-index-cache/ parameters: @@ -1385,7 +1387,7 @@ paths: operationId: indices.flush.2 x-operation-group: indices.flush x-version-added: '1.0' - description: Performs the flush operation on one or more indices. + description: Performs the flush operation on one or more indexes. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -1402,7 +1404,7 @@ paths: operationId: indices.flush.3 x-operation-group: indices.flush x-version-added: '1.0' - description: Performs the flush operation on one or more indices. + description: Performs the flush operation on one or more indexes. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -1420,7 +1422,7 @@ paths: operationId: indices.forcemerge.1 x-operation-group: indices.forcemerge x-version-added: '1.0' - description: Performs the force merge operation on one or more indices. + description: Performs the force merge operation on one or more indexes. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -1441,7 +1443,7 @@ paths: operationId: indices.get_mapping.1 x-operation-group: indices.get_mapping x-version-added: '1.0' - description: Returns mappings for one or more indices. + description: Returns mappings for one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/field-types/index/#get-a-mapping parameters: @@ -1559,7 +1561,7 @@ paths: operationId: indices.refresh.2 x-operation-group: indices.refresh x-version-added: '1.0' - description: Performs the refresh operation in one or more indices. + description: Performs the refresh operation in one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/tuning-your-cluster/availability-and-recovery/remote-store/index/#refresh-level-and-request-level-durability parameters: @@ -1574,7 +1576,7 @@ paths: operationId: indices.refresh.3 x-operation-group: indices.refresh x-version-added: '1.0' - description: Performs the refresh operation in one or more indices. + description: Performs the refresh operation in one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/tuning-your-cluster/availability-and-recovery/remote-store/index/#refresh-level-and-request-level-durability parameters: @@ -1610,7 +1612,7 @@ paths: operationId: indices.get_settings.2 x-operation-group: indices.get_settings x-version-added: '1.0' - description: Returns settings for one or more indices. + description: Returns settings for one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/index-apis/get-settings/ parameters: @@ -1653,7 +1655,7 @@ paths: operationId: indices.get_settings.3 x-operation-group: indices.get_settings x-version-added: '1.0' - description: Returns settings for one or more indices. + description: Returns settings for one or more indexes. externalDocs: url: https://opensearch.org/docs/latest/api-reference/index-apis/get-settings/ parameters: @@ -1675,7 +1677,7 @@ paths: operationId: indices.shard_stores.1 x-operation-group: indices.shard_stores x-version-added: '1.0' - description: Provides store information for shard copies of indices. + description: Provides store information for shard copies of indexes. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -1827,7 +1829,7 @@ paths: operationId: indices.get_upgrade.1 x-operation-group: indices.get_upgrade x-version-added: '1.0' - description: The _upgrade API is no longer useful and will be removed. + description: The `_upgrade` API is no longer useful and will be removed. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -1842,7 +1844,7 @@ paths: operationId: indices.upgrade.1 x-operation-group: indices.upgrade x-version-added: '1.0' - description: The _upgrade API is no longer useful and will be removed. + description: The `_upgrade` API is no longer useful and will be removed. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -2007,7 +2009,7 @@ components: is_write_index: description: |- If `true`, sets the write index or data stream for the alias. - If an alias points to multiple indices or data streams and `is_write_index` isn't set, the alias rejects write requests. + If an alias points to multiple indexes or data streams and `is_write_index` isn't set, the alias rejects write requests. If an index alias points to one index and `is_write_index` isn't set, the index automatically acts as the write index. Data stream aliases don't automatically set a write data stream, even if the alias points to one data stream. type: boolean @@ -2047,7 +2049,7 @@ components: The index template with the highest priority is chosen. If no priority is specified the template is treated as though it is of priority 0 (lowest priority). This number is not automatically generated by OpenSearch. - type: number + type: integer version: $ref: '../schemas/_common.yaml#/components/schemas/VersionNumber' _meta: @@ -2068,7 +2070,7 @@ components: dynamic_date_formats: description: |- If date detection is enabled then new string fields are checked - against 'dynamic_date_formats' and if the value matches then + against `dynamic_date_formats` and if the value matches then a new date field is added instead of string. type: array items: @@ -2105,8 +2107,6 @@ components: $ref: '../schemas/_common.mapping.yaml#/components/schemas/RoutingField' _source: $ref: '../schemas/_common.mapping.yaml#/components/schemas/SourceField' - runtime: - $ref: '../schemas/_common.mapping.yaml#/components/schemas/RuntimeFields' description: The mapping definition required: true indices.put_settings: @@ -2129,7 +2129,7 @@ components: index_patterns: description: |- Array of wildcard expressions used to match the names - of indices during creation. + of indexes during creation. oneOf: - type: string - type: array @@ -2207,8 +2207,8 @@ components: allow_auto_create: description: |- This setting overrides the value of the `action.auto_create_index` cluster setting. - If set to `true` in a template, then indices can be automatically created using that template even if auto-creation of indices is disabled via `actions.auto_create_index`. - If set to `false`, then indices or data streams matching the template must always be explicitly created, and may never be automatically created. + If set to `true` in a template, then indexes can be automatically created using that template even if auto-creation of indexes is disabled using `actions.auto_create_index`. + If set to `false`, then indexes or data streams matching the template must always be explicitly created, and may never be automatically created. type: boolean index_patterns: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -2229,7 +2229,7 @@ components: The index template with the highest priority is chosen. If no priority is specified the template is treated as though it is of priority 0 (lowest priority). This number is not automatically generated by OpenSearch. - type: number + type: integer version: $ref: '../schemas/_common.yaml#/components/schemas/VersionNumber' _meta: @@ -2383,7 +2383,7 @@ components: _shards: $ref: '../schemas/_common.yaml#/components/schemas/ShardStatistics' backing_indices: - description: Total number of backing indices for the selected data streams. + description: Total number of backing indexes for the selected data streams. type: number data_stream_count: description: Total number of selected data streams. @@ -2409,6 +2409,11 @@ components: application/json: schema: $ref: '../schemas/_common.yaml#/components/schemas/IndicesResponseBase' + indices.delete@404: + content: + application/json: + schema: + $ref: '../schemas/indices._common.yaml#/components/schemas/IndexError' indices.delete_alias@200: content: application/json: @@ -2462,8 +2467,8 @@ components: properties: task: description: |- - task contains a task id returned when wait_for_completion=false, - you can use the task_id to get the status of the task at _tasks/ + Task contains a task id returned when `wait_for_completion=false`, + you can use the `task_id` to get the status of the task at _tasks/. type: string indices.get@200: content: @@ -2775,7 +2780,7 @@ components: indices.add_block::path.block: in: path name: block - description: The block to add (one of read, write, read_only or metadata) + description: The block to add (one of `read`, `write`, `read_only` or `metadata`). required: true schema: $ref: '../schemas/indices.add_block.yaml#/components/schemas/IndicesBlockOptions' @@ -2783,7 +2788,7 @@ components: indices.add_block::path.index: in: path name: index - description: A comma separated list of indices to add a block to + description: A comma separated list of indexes to add a block to. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -2791,7 +2796,7 @@ components: indices.add_block::query.allow_no_indices: in: query name: allow_no_indices - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified). schema: type: boolean style: form @@ -2805,27 +2810,27 @@ components: indices.add_block::query.expand_wildcards: in: query name: expand_wildcards - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' style: form indices.add_block::query.ignore_unavailable: in: query name: ignore_unavailable - description: Whether specified concrete indices should be ignored when unavailable (missing or closed) + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). schema: type: boolean style: form indices.add_block::query.master_timeout: in: query name: master_timeout - description: Specify timeout for connection to master + description: Specify timeout for connection to cluster manager. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.add_block::query.timeout: in: query name: timeout @@ -2855,9 +2860,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -2866,8 +2871,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -2902,7 +2907,7 @@ components: x-version-added: '2.8' in: query name: file - description: If true, clears the unused entries from the file cache on nodes with the Search role. + description: If `true`, clears the unused entries from the file cache on nodes with the Search role. schema: type: boolean default: false @@ -2917,13 +2922,13 @@ components: indices.clear_cache::query.index: name: index in: query - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. style: form schema: type: array items: type: string - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. explode: true indices.clear_cache::query.query: in: query @@ -2966,18 +2971,18 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.clone::query.task_execution_timeout: name: task_execution_timeout in: query - description: Explicit task execution timeout, only useful when wait_for_completion is false, defaults to 1h. + description: Explicit task execution timeout, only useful when `wait_for_completion` is false, defaults to `1h`. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' indices.clone::query.timeout: @@ -3019,8 +3024,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -3053,14 +3058,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.close::query.timeout: in: query name: timeout @@ -3098,14 +3103,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.create::query.timeout: in: query name: timeout @@ -3153,7 +3158,7 @@ components: in: path name: index description: |- - Comma-separated list of indices to delete. + Comma-separated list of indexes to delete. You cannot specify index aliases. By default, this parameter does not support wildcards (`*`) or `_all`. To use wildcards or `_all`, set the `action.destructive_requires_name` cluster setting to `false`. @@ -3165,8 +3170,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean default: false @@ -3201,14 +3206,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.delete::query.timeout: in: query name: timeout @@ -3222,7 +3227,7 @@ components: in: path name: index description: |- - Comma-separated list of data streams or indices used to limit the request. + Comma-separated list of data streams or indexes used to limit the request. Supports wildcards (`*`). required: true schema: @@ -3249,14 +3254,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.delete_alias::query.timeout: in: query name: timeout @@ -3292,13 +3297,13 @@ components: indices.delete_index_template::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.delete_index_template::query.timeout: in: query name: timeout @@ -3327,14 +3332,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.delete_template::query.timeout: in: query name: timeout @@ -3347,7 +3352,7 @@ components: indices.exists::path.index: in: path name: index - description: Comma-separated list of data streams, indices, and aliases. Supports wildcards (`*`). + description: Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -3363,8 +3368,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean default: false @@ -3416,8 +3421,8 @@ components: in: path name: index description: |- - Comma-separated list of data streams or indices used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + Comma-separated list of data streams or indexes used to limit the request. Supports wildcards (`*`). + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -3434,8 +3439,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -3453,7 +3458,7 @@ components: indices.exists_alias::query.ignore_unavailable: in: query name: ignore_unavailable - description: If `false`, requests that include a missing data stream or index in the target indices or data streams return an error. + description: If `false`, requests that include a missing data stream or index in the target indexes or data streams return an error. schema: type: boolean style: form @@ -3499,13 +3504,13 @@ components: indices.exists_index_template::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.exists_template::path.name: in: path name: name @@ -3540,20 +3545,20 @@ components: indices.exists_template::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.flush::path.index: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases to flush. + Comma-separated list of data streams, indexes, and aliases to flush. Supports wildcards (`*`). - To flush all data streams and indices, omit this parameter or use `*` or `_all`. + To flush all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -3562,8 +3567,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -3605,7 +3610,7 @@ components: indices.forcemerge::path.index: in: path name: index - description: A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + description: A comma-separated list of index names; use `_all` or empty string to perform the operation on all indexes required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -3613,14 +3618,14 @@ components: indices.forcemerge::query.allow_no_indices: in: query name: allow_no_indices - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified) + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified) schema: type: boolean style: form indices.forcemerge::query.expand_wildcards: in: query name: expand_wildcards - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' style: form @@ -3635,7 +3640,7 @@ components: indices.forcemerge::query.ignore_unavailable: in: query name: ignore_unavailable - description: Whether specified concrete indices should be ignored when unavailable (missing or closed) + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed) schema: type: boolean style: form @@ -3678,7 +3683,7 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and index aliases used to limit the request. + Comma-separated list of data streams, indexes, and index aliases used to limit the request. Wildcard expressions (*) are supported. required: true schema: @@ -3688,8 +3693,8 @@ components: in: query name: allow_no_indices description: |- - If false, the request returns an error if any wildcard expression, index alias, or _all value targets only - missing or closed indices. This behavior applies even if the request targets other open indices. For example, + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only + missing or closed indexes. This behavior applies even if the request targets other open indexes. For example, a request targeting foo*,bar* returns an error if an index starts with foo but no index starts with bar. schema: type: boolean @@ -3708,14 +3713,14 @@ components: description: |- Type of index that wildcard expressions can match. If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams. Supports comma-separated values, - such as open,hidden. + such as `open,hidden`. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' style: form indices.get::query.flat_settings: in: query name: flat_settings - description: If true, returns settings in flat format. + description: If `true`, returns settings in flat format. schema: type: boolean default: false @@ -3723,7 +3728,7 @@ components: indices.get::query.ignore_unavailable: in: query name: ignore_unavailable - description: If false, requests that target a missing index return an error. + description: If `false`, requests that target a missing index return an error. schema: type: boolean default: false @@ -3731,7 +3736,7 @@ components: indices.get::query.include_defaults: in: query name: include_defaults - description: If true, return all default settings in the response. + description: If `true`, return all default settings in the response. schema: type: boolean default: false @@ -3739,7 +3744,7 @@ components: indices.get::query.local: in: query name: local - description: If true, the request retrieves information from the local node only. Defaults to false, which means information is retrieved from the master node. + description: If `true`, the request retrieves information from the local node only. Defaults to false, which means information is retrieved from the cluster-manager node. schema: type: boolean default: false @@ -3747,20 +3752,20 @@ components: indices.get::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.get_alias::path.index: in: path name: index description: |- - Comma-separated list of data streams or indices used to limit the request. + Comma-separated list of data streams or indexes used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -3780,8 +3785,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -3833,9 +3838,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -3844,8 +3849,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -3900,7 +3905,7 @@ components: indices.get_index_template::query.flat_settings: in: query name: flat_settings - description: If true, returns settings in flat format. + description: If `true`, returns settings in flat format. schema: type: boolean default: false @@ -3908,7 +3913,7 @@ components: indices.get_index_template::query.local: in: query name: local - description: If true, the request retrieves information from the local node only. Defaults to false, which means information is retrieved from the master node. + description: If `true`, the request retrieves information from the local node only. Defaults to false, which means information is retrieved from the cluster-manager node. schema: type: boolean default: false @@ -3916,20 +3921,20 @@ components: indices.get_index_template::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.get_mapping::path.index: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -3938,8 +3943,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -3972,12 +3977,12 @@ components: in: query name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' - style: simple + style: form indices.get_mapping::query.local: in: query name: local @@ -3990,21 +3995,21 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.get_settings::path.index: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). To target all data streams and - indices, omit this parameter or use `*` or `_all`. + indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4022,8 +4027,8 @@ components: name: allow_no_indices description: |- If `false`, the request returns an error if any wildcard expression, index - alias, or `_all` value targets only missing or closed indices. This - behavior applies even if the request targets other open indices. For + alias, or `_all` value targets only missing or closed indexes. This + behavior applies even if the request targets other open indexes. For example, a request targeting `foo*,bar*` returns an error if an index starts with foo but no index starts with `bar`. schema: @@ -4074,7 +4079,7 @@ components: name: local description: |- If `true`, the request retrieves information from the local node only. If - `false`, information is retrieved from the master node. + `false`, information is retrieved from the cluster-manager node. schema: type: boolean default: false @@ -4083,7 +4088,7 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. If no response is + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true @@ -4091,7 +4096,7 @@ components: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.get_template::path.name: in: path name: name @@ -4130,51 +4135,51 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.get_upgrade::path.index: name: index in: path - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. schema: type: array - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. items: type: string required: true indices.get_upgrade::query.allow_no_indices: name: allow_no_indices in: query - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified). + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified). schema: type: boolean - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified). + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified). indices.get_upgrade::query.expand_wildcards: name: expand_wildcards in: query - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' indices.get_upgrade::query.ignore_unavailable: name: ignore_unavailable in: query - description: Whether specified concrete indices should be ignored when unavailable (missing or closed). + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). schema: type: boolean - description: Whether specified concrete indices should be ignored when unavailable (missing or closed). + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). indices.open::path.index: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - By default, you must explicitly name the indices you using to limit the request. + By default, you must explicitly name the indexes you using to limit the request. To limit a request using `_all`, `*`, or other wildcard expressions, change the `action.destructive_requires_name` setting to false. You can update this setting in the `opensearch.yml` file or using the cluster update settings API. required: true @@ -4185,8 +4190,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -4219,18 +4224,18 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.open::query.task_execution_timeout: name: task_execution_timeout in: query - description: Explicit task execution timeout, only useful when wait_for_completion is false, defaults to 1h. + description: Explicit task execution timeout, only useful when `wait_for_completion` is false, defaults to `1h`. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' indices.open::query.timeout: @@ -4264,9 +4269,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams or indices to add. + Comma-separated list of data streams or indexes to add. Supports wildcards (`*`). - Wildcard patterns that match both data streams and indices return an error. + Wildcard patterns that match both data streams and indexes return an error. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4293,14 +4298,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.put_alias::query.timeout: in: query name: timeout @@ -4344,16 +4349,16 @@ components: indices.put_index_template::query.master_timeout: name: master_timeout in: query - description: Operation timeout for connection to master node. + description: Operation timeout for connection to cluster-manager node. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. deprecated: true indices.put_mapping::path.index: in: path name: index - description: A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indices. + description: A comma-separated list of index names the mapping should be added to (supports wildcards); use `_all` or omit to add the mapping on all indexes. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4362,8 +4367,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -4396,14 +4401,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.put_mapping::query.timeout: in: query name: timeout @@ -4425,9 +4430,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). To target all data streams and - indices, omit this parameter or use `*` or `_all`. + indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4437,8 +4442,8 @@ components: name: allow_no_indices description: |- If `false`, the request returns an error if any wildcard expression, index - alias, or `_all` value targets only missing or closed indices. This - behavior applies even if the request targets other open indices. For + alias, or `_all` value targets only missing or closed indexes. This + behavior applies even if the request targets other open indexes. For example, a request targeting `foo*,bar*` returns an error if an index starts with `foo` but no index starts with `bar`. schema: @@ -4473,7 +4478,7 @@ components: indices.put_settings::query.ignore_unavailable: in: query name: ignore_unavailable - description: Whether specified concrete indices should be ignored when unavailable (missing or closed). + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). schema: type: boolean style: form @@ -4481,7 +4486,7 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. If no response is + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true @@ -4489,7 +4494,7 @@ components: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.put_settings::query.preserve_existing: in: query name: preserve_existing @@ -4525,7 +4530,7 @@ components: indices.put_template::query.create: in: query name: create - description: If true, this request cannot replace or update existing index templates. + description: If `true`, this request cannot replace or update existing index templates. schema: type: boolean default: false @@ -4534,14 +4539,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. If no response is + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.put_template::query.order: in: query name: order @@ -4558,9 +4563,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4585,9 +4590,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4596,8 +4601,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -4623,7 +4628,7 @@ components: in: path name: name description: |- - Comma-separated name(s) or index pattern(s) of the indices, aliases, and data streams to resolve. + Comma-separated name(s) or index pattern(s) of the indexes, aliases, and data streams to resolve. Resources on remote clusters can be specified using the ``:`` syntax. required: true schema: @@ -4678,14 +4683,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.rollover::query.timeout: in: query name: timeout @@ -4708,9 +4713,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. + Comma-separated list of data streams, indexes, and aliases used to limit the request. Supports wildcards (`*`). - To target all data streams and indices, omit this parameter or use `*` or `_all`. + To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4719,8 +4724,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form @@ -4753,7 +4758,7 @@ components: indices.shard_stores::path.index: in: path name: index - description: List of data streams, indices, and aliases used to limit the request. + description: List of data streams, indexes, and aliases used to limit the request. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -4762,9 +4767,9 @@ components: in: query name: allow_no_indices description: |- - If false, the request returns an error if any wildcard expression, index alias, or _all - value targets only missing or closed indices. This behavior applies even if the request - targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` + value targets only missing or closed indexes. This behavior applies even if the request + targets other open indexes. schema: type: boolean style: form @@ -4780,7 +4785,7 @@ components: indices.shard_stores::query.ignore_unavailable: in: query name: ignore_unavailable - description: If true, missing or closed indices are not included in the response. + description: If `true`, missing or closed indexes are not included in the response. schema: type: boolean style: form @@ -4830,18 +4835,18 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.shrink::query.task_execution_timeout: name: task_execution_timeout in: query - description: Explicit task execution timeout, only useful when wait_for_completion is false, defaults to 1h. + description: Explicit task execution timeout, only useful when `wait_for_completion` is false, defaults to `1h`. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' indices.shrink::query.timeout: @@ -4911,14 +4916,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. If no response is received + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.simulate_template::path.name: in: path name: name @@ -4947,7 +4952,7 @@ components: indices.simulate_template::query.create: in: query name: create - description: If true, the template passed in the body is only used if no existing templates match the same index patterns. If false, the simulation uses the template with the highest priority. Note that the template is not permanently added or updated in either case; it is only used for the simulation. + description: If `true`, the template passed in the body is only used if no existing templates match the same index patterns. If `false`, the simulation uses the template with the highest priority. Note that the template is not permanently added or updated in either case; it is only used for the simulation. schema: type: boolean default: false @@ -4955,13 +4960,13 @@ components: indices.simulate_template::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.split::path.index: in: path name: index @@ -4997,18 +5002,18 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.split::query.task_execution_timeout: name: task_execution_timeout in: query - description: Explicit task execution timeout, only useful when wait_for_completion is false, defaults to 1h. + description: Explicit task execution timeout, only useful when `wait_for_completion` is false, defaults to `1h`. schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' indices.split::query.timeout: @@ -5041,7 +5046,7 @@ components: indices.stats::path.index: in: path name: index - description: A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices + description: A comma-separated list of index names; use `_all` or empty string to perform the operation on all indexes required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -5061,7 +5066,7 @@ components: indices.stats::query.completion_fields: in: query name: completion_fields - description: Comma-separated list or wildcard expressions of fields to include in fielddata and suggest statistics. + description: Comma-separated list or wildcard expressions of fields to include in field data and suggest statistics. schema: $ref: '../schemas/_common.yaml#/components/schemas/Fields' style: form @@ -5078,7 +5083,7 @@ components: indices.stats::query.fielddata_fields: in: query name: fielddata_fields - description: Comma-separated list or wildcard expressions of fields to include in fielddata statistics. + description: Comma-separated list or wildcard expressions of fields to include in field data statistics. schema: $ref: '../schemas/_common.yaml#/components/schemas/Fields' style: form @@ -5092,7 +5097,7 @@ components: indices.stats::query.forbid_closed_indices: in: query name: forbid_closed_indices - description: If true, statistics are not collected from closed indices. + description: If `true`, statistics are not collected from closed indexes. schema: type: boolean default: true @@ -5111,7 +5116,7 @@ components: indices.stats::query.include_segment_file_sizes: in: query name: include_segment_file_sizes - description: If true, the call reports the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested). + description: If `true`, the call reports the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested). schema: type: boolean default: false @@ -5119,7 +5124,7 @@ components: indices.stats::query.include_unloaded_segments: in: query name: include_unloaded_segments - description: If true, the response includes information from segments that are not loaded into memory. + description: If `true`, the response includes information from segments that are not loaded into memory. schema: type: boolean default: false @@ -5142,14 +5147,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. indices.update_aliases::query.timeout: in: query name: timeout @@ -5162,40 +5167,40 @@ components: indices.upgrade::path.index: name: index in: path - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. schema: type: array - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. items: type: string required: true indices.upgrade::query.allow_no_indices: name: allow_no_indices in: query - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified). + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified). schema: type: boolean - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified). + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified). indices.upgrade::query.expand_wildcards: name: expand_wildcards in: query - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' indices.upgrade::query.ignore_unavailable: name: ignore_unavailable in: query - description: Whether specified concrete indices should be ignored when unavailable (missing or closed). + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). schema: type: boolean - description: Whether specified concrete indices should be ignored when unavailable (missing or closed). + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). indices.upgrade::query.only_ancient_segments: name: only_ancient_segments in: query - description: If true, only ancient (an older Lucene major release) segments will be upgraded. + description: If `true`, only ancient (an older Lucene major release) segments will be upgraded. schema: type: boolean - description: If true, only ancient (an older Lucene major release) segments will be upgraded. + description: If `true`, only ancient (an older Lucene major release) segments will be upgraded. indices.upgrade::query.wait_for_completion: x-version-added: '2.7' name: wait_for_completion @@ -5209,9 +5214,9 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases to search. + Comma-separated list of data streams, indexes, and aliases to search. Supports wildcards (`*`). - To search all data streams or indices, omit this parameter or use `*` or `_all`. + To search all data streams or indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Indices' @@ -5227,8 +5232,8 @@ components: in: query name: allow_no_indices description: |- - If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indices. - This behavior applies even if the request targets other open indices. + If `false`, the request returns an error if any wildcard expression, index alias, or `_all` value targets only missing or closed indexes. + This behavior applies even if the request targets other open indexes. schema: type: boolean style: form diff --git a/spec/namespaces/ingest.yaml b/spec/namespaces/ingest.yaml index b1b550853..ed6f3c380 100644 --- a/spec/namespaces/ingest.yaml +++ b/spec/namespaces/ingest.yaml @@ -243,14 +243,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. ingest.delete_pipeline::query.timeout: in: query name: timeout @@ -282,14 +282,14 @@ components: in: query name: master_timeout description: |- - Period to wait for a connection to the master node. + Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. ingest.put_pipeline::path.id: in: path name: id @@ -308,13 +308,13 @@ components: ingest.put_pipeline::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. ingest.put_pipeline::query.timeout: in: query name: timeout diff --git a/spec/namespaces/insights.yaml b/spec/namespaces/insights.yaml new file mode 100644 index 000000000..a9b75f3c9 --- /dev/null +++ b/spec/namespaces/insights.yaml @@ -0,0 +1,34 @@ +openapi: 3.1.0 +info: + title: Query Insights API + description: API to retrieve top queries based on latency, CPU, or memory usage. + version: 1.0.0 +paths: + /_insights/top_queries: + get: + operationId: insights.top_queries.0 + x-operation-group: insights.top_queries + x-version-added: '1.0' + description: Retrieves the top queries based on the given metric type (latency, CPU, or memory). + parameters: + - $ref: '#/components/parameters/insights.top_queries::query.type' + responses: + '200': + $ref: '#/components/responses/insights.top_queries@200' + +components: + parameters: + insights.top_queries::query.type: + name: type + in: query + required: true + description: Get top n queries by a specific metric. + schema: + type: string + enum: [cpu, latency, memory] + responses: + insights.top_queries@200: + content: + application/json: + schema: + $ref: '../schemas/insights._common.yaml#/components/schemas/TopQueriesResponse' diff --git a/spec/namespaces/ism.yaml b/spec/namespaces/ism.yaml index 334bc69f7..c97b3e917 100644 --- a/spec/namespaces/ism.yaml +++ b/spec/namespaces/ism.yaml @@ -169,7 +169,7 @@ paths: get: operationId: ism.explain_policy.0 x-operation-group: ism.explain_policy - description: Gets the currently applied policy on indices. + description: Gets the currently applied policy on indexes. externalDocs: url: https://opensearch.org/docs/latest/im-plugin/ism/api/#explain-index requestBody: @@ -178,9 +178,9 @@ paths: '200': $ref: '#/components/responses/ism.explain_policy@200' post: - operationId: ism.explain_policy.0 + operationId: ism.explain_policy.1 x-operation-group: ism.explain_policy - description: Gets the currently applied policy on indices. + description: Gets the currently applied policy on indexes. externalDocs: url: https://opensearch.org/docs/latest/im-plugin/ism/api/#explain-index requestBody: @@ -190,9 +190,9 @@ paths: $ref: '#/components/responses/ism.explain_policy@200' /_plugins/_ism/explain/{index}: get: - operationId: ism.explain_policy.1 + operationId: ism.explain_policy.3 x-operation-group: ism.explain_policy - description: Gets the currently applied policy on indices. + description: Gets the currently applied policy on indexes. externalDocs: url: https://opensearch.org/docs/latest/im-plugin/ism/api/#explain-index parameters: @@ -203,9 +203,9 @@ paths: '200': $ref: '#/components/responses/ism.explain_policy@200' post: - operationId: ism.explain_policy.1 + operationId: ism.explain_policy.4 x-operation-group: ism.explain_policy - description: Gets the currently applied policy on indices. + description: Gets the currently applied policy on indexes. externalDocs: url: https://opensearch.org/docs/latest/im-plugin/ism/api/#explain-index parameters: @@ -399,7 +399,7 @@ components: name: index in: query description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -408,7 +408,7 @@ components: name: index in: path description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -418,7 +418,7 @@ components: name: index in: query description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -427,7 +427,7 @@ components: name: index in: query description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -436,7 +436,7 @@ components: name: index in: path description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -446,7 +446,7 @@ components: name: index in: path description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -456,7 +456,7 @@ components: name: index in: path description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -466,7 +466,7 @@ components: name: index in: query description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -475,7 +475,7 @@ components: name: index in: path description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: @@ -485,7 +485,7 @@ components: name: index in: path description: |- - Comma-separated list of data streams, indices, and aliases. + Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: diff --git a/spec/namespaces/knn.yaml b/spec/namespaces/knn.yaml index a33bd02df..563f4f783 100644 --- a/spec/namespaces/knn.yaml +++ b/spec/namespaces/knn.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: OpenSearch Knn API - description: OpenSearch Knn API. + title: OpenSearch Vector API + description: OpenSearch Vector API. version: 1.0.0 paths: /_plugins/_knn/models/_search: @@ -283,7 +283,11 @@ components: required: true responses: knn.delete_model@200: {} - knn.get_model@200: {} + knn.get_model@200: + content: + application/json: + schema: + type: object knn.search_models@200: {} knn.stats@200: {} knn.train_model@200: @@ -317,43 +321,43 @@ components: knn.search_models::query._source: name: _source in: query - description: True or false to return the _source field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. style: form schema: type: array items: type: string - description: True or false to return the _source field or not, or a list of fields to return. + description: Set to `true` or `false` to return the `_source` field or not, or a list of fields to return. explode: true knn.search_models::query._source_excludes: name: _source_excludes in: query - description: List of fields to exclude from the returned _source field. + description: List of fields to exclude from the returned `_source` field. style: form schema: type: array items: type: string - description: List of fields to exclude from the returned _source field. + description: List of fields to exclude from the returned `_source` field. explode: true knn.search_models::query._source_includes: name: _source_includes in: query - description: List of fields to extract and return from the _source field. + description: List of fields to extract and return from the `_source` field. style: form schema: type: array items: type: string - description: List of fields to extract and return from the _source field. + description: List of fields to extract and return from the `_source` field. explode: true knn.search_models::query.allow_no_indices: name: allow_no_indices in: query - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified). + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified). schema: type: boolean - description: Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified). + description: Whether to ignore if a wildcard indexes expression resolves into no concrete indexes. (This includes `_all` string or when no indexes have been specified). knn.search_models::query.allow_partial_search_results: name: allow_partial_search_results in: query @@ -421,7 +425,7 @@ components: knn.search_models::query.expand_wildcards: name: expand_wildcards in: query - description: Whether to expand wildcard expression to concrete indices that are open, closed or both. + description: Whether to expand wildcard expression to concrete indexes that are open, closed or both. schema: $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' knn.search_models::query.explain: @@ -443,17 +447,17 @@ components: knn.search_models::query.ignore_throttled: name: ignore_throttled in: query - description: Whether specified concrete, expanded or aliased indices should be ignored when throttled. + description: Whether specified concrete, expanded or aliased indexes should be ignored when throttled. schema: type: boolean - description: Whether specified concrete, expanded or aliased indices should be ignored when throttled. + description: Whether specified concrete, expanded or aliased indexes should be ignored when throttled. knn.search_models::query.ignore_unavailable: name: ignore_unavailable in: query - description: Whether specified concrete indices should be ignored when unavailable (missing or closed). + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). schema: type: boolean - description: Whether specified concrete indices should be ignored when unavailable (missing or closed). + description: Whether specified concrete indexes should be ignored when unavailable (missing or closed). knn.search_models::query.lenient: name: lenient in: query @@ -473,10 +477,10 @@ components: knn.search_models::query.pre_filter_shard_size: name: pre_filter_shard_size in: query - description: Threshold that enforces a pre-filter round-trip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter round-trip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint. + description: Threshold that enforces a pre-filter round-trip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter round-trip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method, that is if date filters are mandatory to match but the shard bounds and the query are disjoint. schema: type: integer - description: Threshold that enforces a pre-filter round-trip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter round-trip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint. + description: Threshold that enforces a pre-filter round-trip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter round-trip can limit the number of shards significantly if for instance a shard can not match any documents based on its rewrite method, that is if date filters are mandatory to match but the shard bounds and the query are disjoint. format: int32 knn.search_models::query.preference: name: preference @@ -503,18 +507,18 @@ components: knn.search_models::query.rest_total_hits_as_int: name: rest_total_hits_as_int in: query - description: Indicates whether hits.total should be rendered as an integer or an object in the rest search response. + description: Indicates whether `hits.total` should be rendered as an integer or an object in the rest search response. schema: type: boolean default: false - description: Indicates whether hits.total should be rendered as an integer or an object in the rest search response. + description: Indicates whether `hits.total` should be rendered as an integer or an object in the rest search response. knn.search_models::query.routing: name: routing in: query description: Comma-separated list of specific routing values. style: form schema: - $ref: '../schemas/_common.yaml#/components/schemas/Routing' + $ref: '../schemas/_common.yaml#/components/schemas/RoutingInQueryString' explode: true knn.search_models::query.scroll: name: scroll @@ -720,10 +724,10 @@ components: knn.warmup::path.index: name: index in: path - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. schema: type: array - description: Comma-separated list of indices; use `_all` or empty string to perform the operation on all indices. + description: Comma-separated list of indexes; use `_all` or empty string to perform the operation on all indexes. items: type: string required: true diff --git a/spec/namespaces/list.yaml b/spec/namespaces/list.yaml new file mode 100644 index 000000000..14bd8a6a1 --- /dev/null +++ b/spec/namespaces/list.yaml @@ -0,0 +1,487 @@ +openapi: 3.1.0 +info: + title: OpenSearch List API + description: OpenSearch List API. + version: 1.0.0 +paths: + /_list: + get: + operationId: list.help.0 + x-operation-group: list.help + x-version-added: '2.18' + description: Returns help for the List APIs. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/list/index/ + responses: + '200': + $ref: '#/components/responses/list.help@200' + /_list/indices: + get: + operationId: list.indices.0 + x-operation-group: list.indices + x-version-added: '2.18' + description: Returns paginated information about indexes including number of primaries and replicas, document counts, disk size. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/list/list-indices/ + parameters: + - $ref: '#/components/parameters/list.indices::query.bytes' + - $ref: '#/components/parameters/list.indices::query.cluster_manager_timeout' + - $ref: '#/components/parameters/list.indices::query.expand_wildcards' + - $ref: '#/components/parameters/list.indices::query.format' + - $ref: '#/components/parameters/list.indices::query.h' + - $ref: '#/components/parameters/list.indices::query.health' + - $ref: '#/components/parameters/list.indices::query.help' + - $ref: '#/components/parameters/list.indices::query.include_unloaded_segments' + - $ref: '#/components/parameters/list.indices::query.local' + - $ref: '#/components/parameters/list.indices::query.master_timeout' + - $ref: '#/components/parameters/list.indices::query.next_token' + - $ref: '#/components/parameters/list.indices::query.pri' + - $ref: '#/components/parameters/list.indices::query.s' + - $ref: '#/components/parameters/list.indices::query.size' + - $ref: '#/components/parameters/list.indices::query.sort' + - $ref: '#/components/parameters/list.indices::query.time' + - $ref: '#/components/parameters/list.indices::query.v' + responses: + '200': + $ref: '#/components/responses/list.indices@200' + /_list/indices/{index}: + get: + operationId: list.indices.1 + x-operation-group: list.indices + x-version-added: '2.18' + description: Returns paginated information about indexes including number of primaries and replicas, document counts, disk size. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/list/list-indices/ + parameters: + - $ref: '#/components/parameters/list.indices::path.index' + - $ref: '#/components/parameters/list.indices::query.bytes' + - $ref: '#/components/parameters/list.indices::query.cluster_manager_timeout' + - $ref: '#/components/parameters/list.indices::query.expand_wildcards' + - $ref: '#/components/parameters/list.indices::query.format' + - $ref: '#/components/parameters/list.indices::query.h' + - $ref: '#/components/parameters/list.indices::query.health' + - $ref: '#/components/parameters/list.indices::query.help' + - $ref: '#/components/parameters/list.indices::query.include_unloaded_segments' + - $ref: '#/components/parameters/list.indices::query.local' + - $ref: '#/components/parameters/list.indices::query.master_timeout' + - $ref: '#/components/parameters/list.indices::query.next_token' + - $ref: '#/components/parameters/list.indices::query.pri' + - $ref: '#/components/parameters/list.indices::query.s' + - $ref: '#/components/parameters/list.indices::query.size' + - $ref: '#/components/parameters/list.indices::query.sort' + - $ref: '#/components/parameters/list.indices::query.time' + - $ref: '#/components/parameters/list.indices::query.v' + responses: + '200': + $ref: '#/components/responses/list.indices@200' + /_list/shards: + get: + operationId: list.shards.0 + x-operation-group: list.shards + x-version-added: '2.18' + description: Returns paginated details of shard allocation on nodes. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/list/list-shards/ + parameters: + - $ref: '#/components/parameters/list.shards::query.bytes' + - $ref: '#/components/parameters/list.shards::query.cluster_manager_timeout' + - $ref: '#/components/parameters/list.shards::query.format' + - $ref: '#/components/parameters/list.shards::query.h' + - $ref: '#/components/parameters/list.shards::query.help' + - $ref: '#/components/parameters/list.shards::query.local' + - $ref: '#/components/parameters/list.shards::query.master_timeout' + - $ref: '#/components/parameters/list.shards::query.next_token' + - $ref: '#/components/parameters/list.shards::query.s' + - $ref: '#/components/parameters/list.shards::query.size' + - $ref: '#/components/parameters/list.shards::query.sort' + - $ref: '#/components/parameters/list.shards::query.time' + - $ref: '#/components/parameters/list.shards::query.v' + responses: + '200': + $ref: '#/components/responses/list.shards@200' + /_list/shards/{index}: + get: + operationId: list.shards.1 + x-operation-group: list.shards + x-version-added: '2.18' + description: Returns paginated details of shard allocation on nodes. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/list/list-shards/ + parameters: + - $ref: '#/components/parameters/list.shards::path.index' + - $ref: '#/components/parameters/list.shards::query.bytes' + - $ref: '#/components/parameters/list.shards::query.cluster_manager_timeout' + - $ref: '#/components/parameters/list.shards::query.format' + - $ref: '#/components/parameters/list.shards::query.h' + - $ref: '#/components/parameters/list.shards::query.help' + - $ref: '#/components/parameters/list.shards::query.local' + - $ref: '#/components/parameters/list.shards::query.master_timeout' + - $ref: '#/components/parameters/list.shards::query.next_token' + - $ref: '#/components/parameters/list.shards::query.s' + - $ref: '#/components/parameters/list.shards::query.size' + - $ref: '#/components/parameters/list.shards::query.sort' + - $ref: '#/components/parameters/list.shards::query.time' + - $ref: '#/components/parameters/list.shards::query.v' + responses: + '200': + $ref: '#/components/responses/list.shards@200' +components: + responses: + list.help@200: + content: + text/plain: + schema: + type: string + list.indices@200: + content: + text/plain: + schema: + type: string + application/json: + schema: + type: object + properties: + next_token: + type: ['null', string] + indices: + type: array + items: + $ref: '../schemas/cat.indices.yaml#/components/schemas/IndicesRecord' + application/yaml: + schema: + type: object + properties: + next_token: + type: ['null', string] + indices: + type: array + items: + $ref: '../schemas/cat.indices.yaml#/components/schemas/IndicesRecord' + application/cbor: + schema: + type: object + properties: + next_token: + type: ['null', string] + indices: + type: array + items: + $ref: '../schemas/cat.indices.yaml#/components/schemas/IndicesRecord' + application/smile: + schema: + type: object + properties: + next_token: + type: ['null', string] + indices: + type: array + items: + $ref: '../schemas/cat.indices.yaml#/components/schemas/IndicesRecord' + list.shards@200: + content: + text/plain: + schema: + type: string + application/json: + schema: + type: object + properties: + next_token: + type: ['null', string] + shards: + type: array + items: + $ref: '../schemas/cat.shards.yaml#/components/schemas/ShardsRecord' + application/yaml: + schema: + type: object + properties: + next_token: + type: ['null', string] + shards: + type: array + items: + $ref: '../schemas/cat.shards.yaml#/components/schemas/ShardsRecord' + application/cbor: + schema: + type: object + properties: + next_token: + type: ['null', string] + shards: + type: array + items: + $ref: '../schemas/cat.shards.yaml#/components/schemas/ShardsRecord' + application/smile: + schema: + type: object + properties: + next_token: + type: ['null', string] + shards: + type: array + items: + $ref: '../schemas/cat.shards.yaml#/components/schemas/ShardsRecord' + parameters: + list.indices::path.index: + in: path + name: index + description: |- + Comma-separated list of data streams, indexes, and aliases used to limit the request. + Supports wildcards (`*`). To target all data streams and indexes, omit this parameter or use `*` or `_all`. + required: true + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Indices' + style: simple + list.indices::query.bytes: + in: query + name: bytes + description: The unit used to display byte values. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/ByteUnit' + style: form + list.indices::query.cluster_manager_timeout: + name: cluster_manager_timeout + in: query + description: Operation timeout for connection to cluster-manager node. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Duration' + x-version-added: '2.0' + list.indices::query.expand_wildcards: + in: query + name: expand_wildcards + description: The type of index that wildcard patterns can match. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/ExpandWildcards' + style: form + list.indices::query.format: + name: format + in: query + description: A short version of the Accept header, such as `JSON`, `YAML`. + schema: + type: string + description: A short version of the Accept header, such as `JSON`, `YAML`. + list.indices::query.h: + name: h + in: query + description: Comma-separated list of column names to display. + style: form + schema: + type: array + items: + type: string + description: Comma-separated list of column names to display. + explode: true + list.indices::query.health: + in: query + name: health + description: The health status used to limit returned indexes. By default, the response includes indexes of any health status. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/HealthStatus' + style: form + list.indices::query.help: + name: help + in: query + description: Return help information. + schema: + type: boolean + default: false + description: Return help information. + list.indices::query.include_unloaded_segments: + in: query + name: include_unloaded_segments + description: If `true`, the response includes information from segments that are not loaded into memory. + schema: + type: boolean + default: false + style: form + list.indices::query.local: + name: local + in: query + description: Return local information, do not retrieve the state from cluster-manager node. + schema: + type: boolean + default: false + description: Return local information, do not retrieve the state from cluster-manager node. + list.indices::query.master_timeout: + name: master_timeout + in: query + description: Operation timeout for connection to cluster-manager node. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Duration' + x-version-deprecated: '2.0' + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. + deprecated: true + list.indices::query.pri: + in: query + name: pri + description: If `true`, the response only includes information from primary shards. + schema: + type: boolean + default: false + style: form + list.indices::query.s: + name: s + in: query + description: Comma-separated list of column names or column aliases to sort by. + style: form + schema: + type: array + items: + type: string + description: Comma-separated list of column names or column aliases to sort by. + explode: true + list.indices::query.time: + in: query + name: time + description: The unit used to display time values. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/TimeUnit' + style: form + list.indices::query.v: + name: v + in: query + description: Verbose mode. Display column headers. + schema: + type: boolean + default: false + description: Verbose mode. Display column headers. + list.indices::query.next_token: + name: next_token + in: query + description: Token to retrieve next page of indexes. + schema: + type: ['null', string] + description: Token to retrieve next page of indexes. + list.indices::query.size: + name: size + in: query + description: Maximum number of indexes to be displayed in a page. + schema: + type: integer + format: int32 + list.indices::query.sort: + name: sort + in: query + description: Defines order in which indexes will be displayed. Accepted values are `asc` and `desc`. If `desc`, most recently created indexes would be displayed first. + schema: + type: string + enum: + - asc + - desc + list.shards::path.index: + in: path + name: index + description: |- + A comma-separated list of data streams, indexes, and aliases used to limit the request. + Supports wildcards (`*`). + To target all data streams and indexes, omit this parameter or use `*` or `_all`. + required: true + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Indices' + style: simple + list.shards::query.bytes: + in: query + name: bytes + description: The unit used to display byte values. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/ByteUnit' + style: form + list.shards::query.cluster_manager_timeout: + name: cluster_manager_timeout + in: query + description: Operation timeout for connection to cluster-manager node. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Duration' + x-version-added: '2.0' + list.shards::query.format: + name: format + in: query + description: A short version of the Accept header, such as `JSON`, `YAML`. + schema: + type: string + description: A short version of the Accept header, such as `JSON`, `YAML`. + list.shards::query.h: + name: h + in: query + description: Comma-separated list of column names to display. + style: form + schema: + type: array + items: + type: string + description: Comma-separated list of column names to display. + explode: true + list.shards::query.help: + name: help + in: query + description: Return help information. + schema: + type: boolean + default: false + description: Return help information. + list.shards::query.local: + name: local + in: query + description: Return local information, do not retrieve the state from cluster-manager node. + schema: + type: boolean + default: false + description: Return local information, do not retrieve the state from cluster-manager node. + list.shards::query.master_timeout: + name: master_timeout + in: query + description: Operation timeout for connection to cluster-manager node. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/Duration' + x-version-deprecated: '2.0' + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. + deprecated: true + list.shards::query.s: + name: s + in: query + description: Comma-separated list of column names or column aliases to sort by. + style: form + schema: + type: array + items: + type: string + description: Comma-separated list of column names or column aliases to sort by. + explode: true + list.shards::query.time: + name: time + in: query + description: The unit in which to display time values. + schema: + $ref: '../schemas/_common.yaml#/components/schemas/TimeUnit' + list.shards::query.v: + name: v + in: query + description: Verbose mode. Display column headers. + schema: + type: boolean + default: false + description: Verbose mode. Display column headers. + list.shards::query.next_token: + name: next_token + in: query + description: Token to retrieve next page of shards. + schema: + type: ['null', string] + description: Token to retrieve next page of shards. + list.shards::query.size: + name: size + in: query + description: Maximum number of shards to be displayed in a page. + schema: + type: integer + format: int32 + list.shards::query.sort: + name: sort + in: query + description: Defines order in which shards will be displayed. Accepted values are `asc` and `desc`. If `desc`, most recently created shards would be displayed first. + schema: + type: string + enum: + - asc + - desc \ No newline at end of file diff --git a/spec/namespaces/nodes.yaml b/spec/namespaces/nodes.yaml index 236a2a8ec..31fec73a0 100644 --- a/spec/namespaces/nodes.yaml +++ b/spec/namespaces/nodes.yaml @@ -357,7 +357,7 @@ components: properties: secure_settings_password: $ref: '../schemas/_common.yaml#/components/schemas/Password' - description: An object containing the password for the opensearch keystore + description: An object containing the password for the OpenSearch keystore. responses: nodes.hot_threads@200: content: @@ -410,11 +410,11 @@ components: nodes.hot_threads::query.snapshots: name: snapshots in: query - description: Number of samples of thread stacktrace. + description: Number of samples of thread stack trace. schema: type: integer default: 10 - description: Number of samples of thread stacktrace. + description: Number of samples of thread stack trace. format: int32 nodes.hot_threads::query.threads: name: threads @@ -442,7 +442,7 @@ components: name: node_id_or_metric description: | Limits the information returned to a list of node IDs or specific metrics. - Supports a comma-separated list, such as node1,node2 or http,ingest. + Supports a comma-separated list, such as `node1,node2` or `http,ingest`. required: true schema: anyOf: @@ -464,7 +464,7 @@ components: nodes.info::path.metric: in: path name: metric - description: Limits the information returned to the specific metrics. Supports a comma-separated list, such as http,ingest. + description: Limits the information returned to the specific metrics. Supports a comma-separated list, such as `http,ingest`. required: true schema: type: array @@ -474,7 +474,7 @@ components: nodes.info::query.flat_settings: in: query name: flat_settings - description: If true, returns settings in flat format. + description: If `true`, returns settings in flat format. schema: type: boolean default: false @@ -506,7 +506,7 @@ components: nodes.stats::path.index_metric: in: path name: index_metric - description: Limit the information returned for indices metric to the specific index metrics. It can be used only if indices (or all) metric is specified. + description: Limit the information returned for indexes metric to the specific index metrics. It can be used only if indexes (or all) metric is specified. required: true schema: type: array @@ -534,14 +534,14 @@ components: nodes.stats::query.completion_fields: in: query name: completion_fields - description: Comma-separated list or wildcard expressions of fields to include in fielddata and suggest statistics. + description: Comma-separated list or wildcard expressions of fields to include in field data and suggest statistics. schema: $ref: '../schemas/_common.yaml#/components/schemas/Fields' style: form nodes.stats::query.fielddata_fields: in: query name: fielddata_fields - description: Comma-separated list or wildcard expressions of fields to include in fielddata statistics. + description: Comma-separated list or wildcard expressions of fields to include in field data statistics. schema: $ref: '../schemas/_common.yaml#/components/schemas/Fields' style: form @@ -564,7 +564,7 @@ components: nodes.stats::query.include_segment_file_sizes: in: query name: include_segment_file_sizes - description: If true, the call reports the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested). + description: If `true`, the call reports the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested). schema: type: boolean default: false diff --git a/spec/namespaces/notifications.yaml b/spec/namespaces/notifications.yaml index 00faf3941..811a2f21b 100644 --- a/spec/namespaces/notifications.yaml +++ b/spec/namespaces/notifications.yaml @@ -26,6 +26,8 @@ paths: parameters: - $ref: '#/components/parameters/notifications.get_configs::query.chime.url' - $ref: '#/components/parameters/notifications.get_configs::query.chime.url.keyword' + - $ref: '#/components/parameters/notifications.get_configs::query.config_id' + - $ref: '#/components/parameters/notifications.get_configs::query.config_id_list' - $ref: '#/components/parameters/notifications.get_configs::query.config_type' - $ref: '#/components/parameters/notifications.get_configs::query.created_time_ms' - $ref: '#/components/parameters/notifications.get_configs::query.description' @@ -318,6 +320,20 @@ components: in: query schema: type: string + notifications.get_configs::query.config_id: + name: config_id + in: query + description: Notification configuration ID. + schema: + type: string + notifications.get_configs::query.config_id_list: + name: config_id_list + in: query + description: Notification configuration IDs. + schema: + type: array + items: + type: string notifications.get_configs::query.config_type: name: config_type in: query diff --git a/spec/namespaces/observability.yaml b/spec/namespaces/observability.yaml index a8553dbe1..62cca3dfd 100644 --- a/spec/namespaces/observability.yaml +++ b/spec/namespaces/observability.yaml @@ -150,7 +150,6 @@ components: type: object additionalProperties: type: string - example: OK observability.delete_object@404: description: Not Found content: @@ -168,7 +167,7 @@ components: type: object additionalProperties: type: string - example: OK + # example: OK observability.delete_objects@404: description: Not Found content: diff --git a/spec/namespaces/ppl.yaml b/spec/namespaces/ppl.yaml index 0794fd32d..13741e007 100644 --- a/spec/namespaces/ppl.yaml +++ b/spec/namespaces/ppl.yaml @@ -70,7 +70,7 @@ components: ppl.query::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string ppl.query::query.sanitize: @@ -83,7 +83,7 @@ components: ppl.explain::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string ppl.explain::query.sanitize: @@ -96,7 +96,7 @@ components: ppl.get_stats::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string ppl.get_stats::query.sanitize: @@ -109,7 +109,7 @@ components: ppl.post_stats::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string ppl.post_stats::query.sanitize: @@ -150,16 +150,13 @@ components: application/json: schema: $ref: '../schemas/sql._common.yaml#/components/schemas/ExplainResponse' - required: true ppl.get_stats@200: content: text/plain: schema: type: string - required: true ppl.post_stats@200: content: text/plain: schema: type: string - required: true \ No newline at end of file diff --git a/spec/namespaces/query.yaml b/spec/namespaces/query.yaml index b055f4666..d2e76ba27 100644 --- a/spec/namespaces/query.yaml +++ b/spec/namespaces/query.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: OpenSearch Query Datasources API - description: OpenSearch Query Datasources API. + title: OpenSearch Query Data Sources API + description: OpenSearch Query Data Sources API. version: 2.7.0 paths: /_plugins/_query/_datasources: diff --git a/spec/namespaces/remote_store.yaml b/spec/namespaces/remote_store.yaml index 4202d5cdf..878633466 100644 --- a/spec/namespaces/remote_store.yaml +++ b/spec/namespaces/remote_store.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: OpenSearch Remote_store API - description: OpenSearch Remote_store API. + title: OpenSearch Remote Store API + description: OpenSearch Remote Store API. version: 1.0.0 paths: /_remotestore/_restore: diff --git a/spec/namespaces/replication.yaml b/spec/namespaces/replication.yaml index 5bb133021..098dd6537 100644 --- a/spec/namespaces/replication.yaml +++ b/spec/namespaces/replication.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: OpenSearch Replication API - description: OpenSearch Replication API + description: OpenSearch Replication API. version: 1.0.0 paths: /_plugins/_replication/{index}/_start: @@ -248,34 +248,22 @@ components: content: application/json: schema: - type: object - properties: - acknowledged: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/AcknowledgedResponseBase' replication.stop@200: content: application/json: schema: - type: object - properties: - acknowledged: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/AcknowledgedResponseBase' replication.pause@200: content: application/json: schema: - type: object - properties: - acknowledged: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/AcknowledgedResponseBase' replication.resume@200: content: application/json: schema: - type: object - properties: - acknowledged: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/AcknowledgedResponseBase' replication.status@200: content: application/json: @@ -300,23 +288,14 @@ components: content: application/json: schema: - type: object - properties: - acknowledged: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/AcknowledgedResponseBase' replication.create_replication_rule@200: content: application/json: schema: - type: object - properties: - acknowledged: - type: boolean + $ref: '../schemas/_common.yaml#/components/schemas/AcknowledgedResponseBase' replication.delete_replication_rule@200: content: application/json: schema: - type: object - properties: - acknowledged: - type: boolean \ No newline at end of file + $ref: '../schemas/_common.yaml#/components/schemas/AcknowledgedResponseBase' diff --git a/spec/namespaces/search_pipeline.yaml b/spec/namespaces/search_pipeline.yaml index 05d16fbdd..94aa9c907 100644 --- a/spec/namespaces/search_pipeline.yaml +++ b/spec/namespaces/search_pipeline.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: OpenSearch Search_pipeline API - description: OpenSearch Search_pipeline API. + title: OpenSearch Search Pipeline API + description: OpenSearch Search Pipeline API. version: 1.0.0 paths: /_search/pipeline: @@ -106,6 +106,7 @@ components: description: Comma-separated list of search pipeline ids. Wildcards supported. schema: type: string + required: true search_pipeline.get::query.cluster_manager_timeout: name: cluster_manager_timeout in: query diff --git a/spec/namespaces/security.yaml b/spec/namespaces/security.yaml index 5900516f5..2a63cd0d9 100644 --- a/spec/namespaces/security.yaml +++ b/spec/namespaces/security.yaml @@ -362,7 +362,7 @@ paths: x-distributions-excluded: - amazon-managed - amazon-serverless - description: Creates or replaces the allowlisted APIs. Accessible via Super Admin certificate or REST API permission. + description: Creates or replaces the permitted APIs. Accessible using Super Admin certificate or REST API permission. externalDocs: url: https://opensearch.org/docs/latest/security/access-control/api/#access-control-for-the-api requestBody: @@ -1031,7 +1031,7 @@ paths: x-distributions-excluded: - amazon-managed - amazon-serverless - description: A PATCH call is used to update the existing configuration using the REST API. Only accessible by admins and users with rest api access and only when put or patch is enabled. + description: A `PATCH` call is used to update the existing configuration using the REST API. Only accessible by admins and users with REST API access and only when put or patch is enabled. externalDocs: url: https://opensearch.org/docs/latest/security/access-control/api/#patch-configuration requestBody: @@ -1049,7 +1049,7 @@ paths: x-distributions-excluded: - amazon-managed - amazon-serverless - description: Adds or updates the existing configuration using the REST API. Only accessible by admins and users with rest api access and only when put or patch is enabled. + description: Adds or updates the existing configuration using the REST API. Only accessible by admins and users with REST API access and only when put or patch is enabled. externalDocs: url: https://opensearch.org/docs/latest/security/access-control/api/#update-configuration requestBody: @@ -1316,7 +1316,7 @@ paths: x-distributions-excluded: - amazon-managed - amazon-serverless - description: Generates authorization token for the given user. Legacy API. Not Implemented. + description: Generates authorization token for the given user. Legacy API. Not Implemented. parameters: - $ref: '#/components/parameters/security.generate_user_token_legacy::path.username' responses: @@ -1558,7 +1558,8 @@ components: security.cache@501: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.change_password@200: content: application/json: @@ -1567,7 +1568,8 @@ components: security.change_password@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.config_upgrade_check@200: content: application/json: @@ -1581,7 +1583,8 @@ components: security.config_upgrade_perform@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.create_action_group@200: content: application/json: @@ -1600,7 +1603,8 @@ components: security.create_allowlist@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.create_role@200: content: application/json: @@ -1634,7 +1638,8 @@ components: security.create_tenant@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.create_update_tenancy_config@200: content: application/json: @@ -1643,7 +1648,8 @@ components: security.create_update_tenancy_config@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.create_user@200: content: application/json: @@ -1672,11 +1678,13 @@ components: security.delete_distinguished_name@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.delete_distinguished_name@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.delete_role@200: content: application/json: @@ -1695,7 +1703,8 @@ components: security.delete_tenant@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.delete_user@200: content: application/json: @@ -1719,9 +1728,11 @@ components: security.generate_obo_token@400: content: text/plain: - type: string + schema: + type: string application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.generate_user_token@200: content: application/json: @@ -1730,11 +1741,13 @@ components: security.generate_user_token@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.generate_user_token_legacy@501: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_account_details@200: content: application/json: @@ -1758,7 +1771,8 @@ components: security.get_allowlist@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_audit_configuration@200: content: application/json: @@ -1777,7 +1791,8 @@ components: security.get_all_certificates@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_all_certificates@500: content: application/json: @@ -1791,15 +1806,18 @@ components: security.get_node_certificates@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_certificates@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_certificates@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_node_certificates@500: content: application/json: @@ -1821,7 +1839,7 @@ components: schema: $ref: '../schemas/security._common.yaml#/components/schemas/InternalServerError' security.get_distinguished_name@200: - description: Show nodesDn setting for given cluster. + description: Show `nodesDn` setting for given cluster. content: application/json: schema: @@ -1829,25 +1847,29 @@ components: security.get_distinguished_name@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_distinguished_name@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_distinguished_names@200: content: application/json: schema: $ref: '../schemas/security._common.yaml#/components/schemas/DistinguishedNamesMap' security.get_distinguished_names@400: - description: Show nodesDn setting for given cluster. + description: Show `nodesDn` setting for given cluster. content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_distinguished_names@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_permissions_info@200: content: application/json: @@ -1901,7 +1923,8 @@ components: security.get_tenancy_config@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_tenants@200: content: application/json: @@ -1910,7 +1933,8 @@ components: security.get_tenants@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.get_user@200: content: application/json: @@ -1944,7 +1968,8 @@ components: security.migrate@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_action_group@200: content: application/json: @@ -1963,7 +1988,8 @@ components: security.patch_allowlist@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_audit_configuration@200: content: application/json: @@ -1977,7 +2003,8 @@ components: security.patch_configuration@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_distinguished_name@200: content: application/json: @@ -1986,11 +2013,13 @@ components: security.patch_distinguished_name@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_distinguished_name@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_distinguished_names@200: content: application/json: @@ -1999,11 +2028,13 @@ components: security.patch_distinguished_names@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_distinguished_names@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_role@200: content: application/json: @@ -2012,7 +2043,8 @@ components: security.patch_role@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_role_mapping@200: content: application/json: @@ -2021,7 +2053,8 @@ components: security.patch_role_mapping@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_role_mappings@200: content: application/json: @@ -2030,7 +2063,8 @@ components: security.patch_role_mappings@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_roles@200: content: application/json: @@ -2039,7 +2073,8 @@ components: security.patch_roles@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_tenant@200: content: application/json: @@ -2048,7 +2083,8 @@ components: security.patch_tenant@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_tenants@200: content: application/json: @@ -2057,7 +2093,8 @@ components: security.patch_tenants@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.patch_user@200: content: application/json: @@ -2086,11 +2123,13 @@ components: security.reload_http_certificates@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.reload_http_certificates@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.reload_transport_certificates@200: content: application/json: @@ -2099,11 +2138,13 @@ components: security.reload_transport_certificates@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.reload_transport_certificates@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.tenant_info@200: content: application/json: @@ -2112,9 +2153,11 @@ components: security.tenant_info@403: content: text/plain: - type: string + schema: + type: string application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.tenant_info@500: content: application/json: @@ -2133,7 +2176,8 @@ components: security.update_configuration@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.update_distinguished_name@200: content: application/json: @@ -2142,11 +2186,13 @@ components: security.update_distinguished_name@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.update_distinguished_name@403: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.validate@200: content: application/json: @@ -2155,7 +2201,8 @@ components: security.validate@400: content: application/json: - schema: null + schema: + $ref: '../schemas/security._common.yaml#/components/schemas/Error' security.who_am_i@200: content: application/json: @@ -2348,14 +2395,14 @@ components: security.get_distinguished_name::query.show_all: name: show_all in: query - description: A boolean flag to include/exclude static nodes DN from final result. + description: A Boolean flag to include/exclude static nodes DN from final result. schema: type: boolean required: false security.get_distinguished_names::query.show_all: name: show_all in: query - description: A boolean flag to include/exclude static nodes DN from final result. + description: A Boolean flag to include/exclude static nodes DN from final result. schema: type: boolean required: false @@ -2374,7 +2421,7 @@ components: security.get_sslinfo::query.show_dn: name: show_dn in: query - description: A boolean flag to indicate whether all domain names should be returned. + description: A Boolean flag to indicate whether all domain names should be returned. schema: type: [boolean, string] required: false @@ -2402,7 +2449,7 @@ components: security.health::query.mode: name: mode in: query - description: A flag to indicate whether service should consider security-plugin's status before returning health response. `strict` mode indicates service should check security plugin status. + description: A flag to indicate whether service should consider security-plugin's status before returning health response. `strict` mode indicates service should check Security plugin status. schema: type: string required: false @@ -2416,7 +2463,7 @@ components: security.patch_distinguished_name::path.cluster_name: name: cluster_name in: path - description: The cluster-name to update nodesDn value. + description: The cluster name to update `nodesDn` value. schema: type: string required: true @@ -2451,14 +2498,14 @@ components: security.update_distinguished_name::path.cluster_name: name: cluster_name in: path - description: The cluster-name to create/update nodesDn value for. + description: The cluster-name to create/update `nodesDn` value for. schema: type: string required: true security.validate::query.accept_invalid: name: accept_invalid in: query - description: A boolean flag to indicate whether invalid v6 configuration should be allowed. + description: A Boolean flag to indicate whether invalid v6 configuration should be allowed. schema: type: boolean required: false diff --git a/spec/namespaces/snapshot.yaml b/spec/namespaces/snapshot.yaml index 5a8bbfb92..1c4dc532c 100644 --- a/spec/namespaces/snapshot.yaml +++ b/spec/namespaces/snapshot.yaml @@ -223,7 +223,7 @@ paths: operationId: snapshot.clone.0 x-operation-group: snapshot.clone x-version-added: '1.0' - description: Clones indices from one snapshot into another snapshot in the same repository. + description: Clones indexes from one snapshot into another snapshot in the same repository. externalDocs: url: https://opensearch.org/docs/latest parameters: @@ -294,22 +294,22 @@ components: type: object properties: ignore_unavailable: - description: If `true`, the request ignores data streams and indices in `indices` that are missing or closed. If `false`, the request returns an error for any data stream or index that is missing or closed. + description: If `true`, the request ignores data streams and indexes in `indexes` that are missing or closed. If `false`, the request returns an error for any data stream or index that is missing or closed. type: boolean include_global_state: - description: If `true`, the current cluster state is included in the snapshot. The cluster state includes persistent cluster settings, composable index templates, legacy index templates, ingest pipelines, and ILM policies. It also includes data stored in system indices, such as Watches and task records (configurable via `feature_states`). + description: If `true`, the current cluster state is included in the snapshot. The cluster state includes persistent cluster settings, composable index templates, legacy index templates, ingest pipelines, and ILM policies. It also includes data stored in system indexes, such as Watches and task records (configurable with `feature_states`). type: boolean indices: $ref: '../schemas/_common.yaml#/components/schemas/Indices' feature_states: - description: Feature states to include in the snapshot. Each feature state includes one or more system indices containing related data. You can view a list of eligible features using the get features API. If `include_global_state` is `true`, all current feature states are included by default. If `include_global_state` is `false`, no feature states are included by default. + description: Feature states to include in the snapshot. Each feature state includes one or more system indexes containing related data. You can view a list of eligible features using the get features API. If `include_global_state` is `true`, all current feature states are included by default. If `include_global_state` is `false`, no feature states are included by default. type: array items: type: string metadata: $ref: '../schemas/_common.yaml#/components/schemas/Metadata' partial: - description: If `true`, allows restoring a partial snapshot of indices with unavailable shards. Only shards that were successfully included in the snapshot will be restored. All missing shards will be recreated as empty. If `false`, the entire restore operation will fail if one or more indices included in the snapshot do not have all primary shards available. + description: If `true`, allows restoring a partial snapshot of indexes with unavailable shards. Only shards that were successfully included in the snapshot will be restored. All missing shards will be recreated as empty. If `false`, the entire restore operation will fail if one or more indexes included in the snapshot do not have all primary shards available. type: boolean description: The snapshot definition snapshot.create_repository: @@ -335,30 +335,67 @@ components: schema: type: object properties: - feature_states: - type: array - items: - type: string ignore_index_settings: + description: A comma-delimited list of index settings that you don't want to restore from a snapshot. type: array items: type: string ignore_unavailable: type: boolean + description: How to handle data streams or indexes that are missing or closed. If `false`, the request returns an error for any data stream or index that is missing or closed. If `true`, the request ignores data streams and indexes in indexes that are missing or closed. Defaults to `false`. include_aliases: type: boolean + description: How to handle index aliases from the original snapshot. If `true`, index aliases from the original snapshot are restored. If `false`, aliases along with associated indexes are not restored. Defaults to `true`. include_global_state: type: boolean + description: Whether to restore the current cluster state. If `false`, the cluster state is not restored. If true, the current cluster state is restored. Defaults to `false`. index_settings: + description: A comma-delimited list of settings to add or change in all restored indexes. Use this parameter to override index settings during snapshot restoration. For data streams, these index settings are applied to the restored backing indexes. $ref: '../schemas/indices._common.yaml#/components/schemas/IndexSettings' indices: + description: A comma-delimited list of data streams and indexes to restore from the snapshot. Multi-index syntax is supported. By default, a restore operation includes all data streams and indexes in the snapshot. If this argument is provided, the restore operation only includes the data streams and indexes that you specify. $ref: '../schemas/_common.yaml#/components/schemas/Indices' partial: type: boolean + description: |- + How the restore operation will behave if indexes in the snapshot do not have all primary shards available. + If `false`, the entire restore operation fails if any indexes in the snapshot do not have all primary shards available. + If `true`, allows the restoration of a partial snapshot of indexes with unavailable shards. Only shards that were successfully included in the snapshot are restored. All missing shards are recreated as empty. By default, the entire restore operation fails if one or more indexes included in the snapshot do not have all primary shards available. To change this behavior, set `partial` to `true`. + Defaults to `false`. rename_pattern: type: string + description: |- + The pattern to apply to the restored data streams and indexes. Data streams and indexes matching the rename pattern will be renamed according to the `rename_replacement` setting. + The rename pattern is applied as defined by the regular expression that supports referencing the original text. + The request fails if two or more data streams or indexes are renamed into the same name. + If you rename a restored data stream, its backing indexes are also renamed. For example, if you rename the logs data stream to `recovered-logs`, the backing index `.ds-logs-1` is renamed to `.ds-recovered-logs-1`. + If you rename a restored stream, ensure an index template matches the new stream name. If there are no matching index template names, the stream cannot roll over and new backing indexes are not created. rename_replacement: type: string + description: The rename replacement string. + rename_alias_pattern: + x-version-added: '2.18' + type: string + description: |- + The pattern to apply to the restored aliases. Aliases matching the rename pattern will be renamed according to the `rename_alias_replacement` setting. + The rename pattern is applied as defined by the regular expression that supports referencing the original text. + If two or more aliases are renamed into the same name, these aliases will be merged into one. + rename_alias_replacement: + x-version-added: '2.18' + type: string + description: The rename replacement string for aliases. + source_remote_store_repository: + x-version-added: '2.10' + type: string + description: The name of the remote store repository of the source index being restored. If not provided, the Snapshot Restore API will use the repository that was registered when the snapshot was created. + storage_type: + x-version-added: '2.7' + type: string + description: |- + Where will be the authoritative store of the restored indexes' data. + A value of `local` indicates that all snapshot metadata and index data will be downloaded to local storage. + A value of `remote_snapshot` indicates that snapshot metadata will be downloaded to the cluster, but the remote repository will remain the authoritative store of the index data. Data will be downloaded and cached as necessary to service queries. At least one node in the cluster must be configured with the search role in order to restore a snapshot using the type `remote_snapshot`. + Defaults to `local`. description: Details of what to restore responses: snapshot.cleanup_repository@200: @@ -383,7 +420,7 @@ components: type: object properties: accepted: - description: Equals `true` if the snapshot was accepted. Present when the request had `wait_for_completion` set to `false` + description: Returns `true` if the snapshot was accepted. Present when the request had `wait_for_completion` set to `false`. type: boolean snapshot: $ref: '../schemas/snapshot._common.yaml#/components/schemas/SnapshotInfo' @@ -408,23 +445,12 @@ components: schema: type: object properties: - responses: - type: array - items: - $ref: '../schemas/snapshot.get.yaml#/components/schemas/SnapshotResponseItem' snapshots: type: array items: $ref: '../schemas/snapshot._common.yaml#/components/schemas/SnapshotInfo' - total: - description: The total number of snapshots that match the request when ignoring size limit or after query parameter. - type: number - remaining: - description: The number of remaining snapshots that were not returned due to size limits and that can be fetched by additional requests using the next field value. - type: number required: - - remaining - - total + - snapshots snapshot.get_repository@200: content: application/json: @@ -438,10 +464,11 @@ components: schema: type: object properties: + accepted: + description: Returns `true` if the restore was accepted. Present when the request had `wait_for_completion` set to `false`. + type: boolean snapshot: $ref: '../schemas/snapshot.restore.yaml#/components/schemas/SnapshotRestore' - required: - - snapshot snapshot.status@200: content: application/json: @@ -485,13 +512,13 @@ components: snapshot.cleanup_repository::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. + description: Period to wait for a connection to the cluster-manager node. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.cleanup_repository::query.timeout: in: query name: timeout @@ -533,13 +560,13 @@ components: snapshot.clone::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.create::path.repository: in: path name: repository @@ -566,13 +593,13 @@ components: snapshot.create::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.create::query.wait_for_completion: in: query name: wait_for_completion @@ -599,13 +626,13 @@ components: snapshot.create_repository::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.create_repository::query.timeout: in: query name: timeout @@ -646,13 +673,13 @@ components: snapshot.delete::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.delete_repository::path.repository: in: path name: repository @@ -671,13 +698,13 @@ components: snapshot.delete_repository::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.delete_repository::query.timeout: in: query name: timeout @@ -697,9 +724,9 @@ components: in: path name: snapshot description: |- - Comma-separated list of snapshot names to retrieve. Also accepts wildcards (*). - - To get information about all snapshots in a registered repository, use a wildcard (*) or _all. - - To get information about any snapshots that are currently running, use _current. + Comma-separated list of snapshot names to retrieve. Also accepts wildcards (`*`). + - To get information about all snapshots in a registered repository, use a wildcard (`*`) or `_all`. + - To get information about any snapshots that are currently running, use `_current`. required: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Names' @@ -714,7 +741,7 @@ components: snapshot.get::query.ignore_unavailable: in: query name: ignore_unavailable - description: If false, the request returns an error for any snapshots that are unavailable. + description: If `false`, the request returns an error for any snapshots that are unavailable. schema: type: boolean default: false @@ -722,17 +749,17 @@ components: snapshot.get::query.master_timeout: in: query name: master_timeout - description: Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. + description: Period to wait for a connection to the cluster-manager node. If no response is received before the timeout expires, the request fails and returns an error. deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.get::query.verbose: in: query name: verbose - description: If true, returns additional information about each snapshot such as the version of OpenSearch which took the snapshot, the start and end times of the snapshot, and the number of shards snapshotted. + description: If `true`, returns additional information about each snapshot such as the version of OpenSearch which took the snapshot, the start and end times of the snapshot, and the number of shards snapshotted. schema: type: boolean style: form @@ -762,13 +789,13 @@ components: snapshot.get_repository::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.restore::path.repository: in: path name: repository @@ -795,13 +822,13 @@ components: snapshot.restore::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.restore::query.wait_for_completion: in: query name: wait_for_completion @@ -836,7 +863,7 @@ components: snapshot.status::query.ignore_unavailable: in: query name: ignore_unavailable - description: Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown + description: Whether to ignore unavailable snapshots, defaults to `false` which means a SnapshotMissingException is thrown schema: type: boolean default: false @@ -844,13 +871,13 @@ components: snapshot.status::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.verify_repository::path.repository: in: path name: repository @@ -869,13 +896,13 @@ components: snapshot.verify_repository::query.master_timeout: in: query name: master_timeout - description: Explicit operation timeout for connection to master node + description: Explicit operation timeout for connection to cluster-manager node deprecated: true schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager_timeout' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager_timeout` instead. snapshot.verify_repository::query.timeout: in: query name: timeout diff --git a/spec/namespaces/sql.yaml b/spec/namespaces/sql.yaml index a54c6cc39..cfb41a967 100644 --- a/spec/namespaces/sql.yaml +++ b/spec/namespaces/sql.yaml @@ -101,13 +101,13 @@ components: sql.settings::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string sql.query::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string sql.query::query.sanitize: @@ -120,7 +120,7 @@ components: sql.explain::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string sql.explain::query.sanitize: @@ -133,7 +133,7 @@ components: sql.close::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string sql.close::query.sanitize: @@ -146,7 +146,7 @@ components: sql.get_stats::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string sql.get_stats::query.sanitize: @@ -159,7 +159,7 @@ components: sql.post_stats::query.format: name: format in: query - description: A short version of the Accept header, e.g. json, yaml. + description: A short version of the Accept header (for example, `json`, `yaml`). schema: type: string sql.post_stats::query.sanitize: @@ -177,31 +177,26 @@ components: anyOf: - $ref: '../schemas/sql._common.yaml#/components/schemas/SqlSettingsPlain' - $ref: '../schemas/sql._common.yaml#/components/schemas/SqlSettings' - required: true sql.query: content: application/json: schema: $ref: '../schemas/sql._common.yaml#/components/schemas/Query' - required: true sql.explain: content: application/json: schema: $ref: '../schemas/sql._common.yaml#/components/schemas/Explain' - required: true sql.close: content: application/json: schema: $ref: '../schemas/sql._common.yaml#/components/schemas/SqlClose' - required: true sql.post_stats: content: application/json: schema: $ref: '../schemas/sql._common.yaml#/components/schemas/Stats' - required: true responses: sql.settings@200: content: @@ -218,22 +213,18 @@ components: application/json: schema: $ref: '../schemas/sql._common.yaml#/components/schemas/ExplainResponse' - required: true sql.close@200: content: application/json: schema: $ref: '../schemas/sql._common.yaml#/components/schemas/SqlCloseResponse' - required: true sql.get_stats@200: content: text/plain: schema: type: string - required: true sql.post_stats@200: content: text/plain: schema: type: string - required: true \ No newline at end of file diff --git a/spec/namespaces/transforms.yaml b/spec/namespaces/transforms.yaml index 00c3fd4e6..abc3da786 100644 --- a/spec/namespaces/transforms.yaml +++ b/spec/namespaces/transforms.yaml @@ -38,7 +38,7 @@ paths: operationId: transforms.put.0 x-operation-group: transforms.put x-version-added: '1.0' - description: Create an index transform, or update a transform if if_seq_no and if_primary_term are provided. + description: Create an index transform, or update a transform if `if_seq_no` and `if_primary_term` are provided. externalDocs: url: https://opensearch.org/docs/latest/im-plugin/index-transforms/transforms-apis/#create-a-transform-job parameters: diff --git a/spec/namespaces/wlm.yaml b/spec/namespaces/wlm.yaml new file mode 100644 index 000000000..d9179f33e --- /dev/null +++ b/spec/namespaces/wlm.yaml @@ -0,0 +1,127 @@ +openapi: 3.1.0 +info: + title: Workload Management Query Group API + description: The Query Group Lifecycle APIs create, update, and delete workload management query groups. + version: 1.0.0 +paths: + /_wlm/query_group: + get: + operationId: wlm.get_query_group.0 + x-operation-group: wlm.get_query_group + x-version-added: '2.17' + description: Retrieves the specified query group. If no query group is specified, all query groups in the cluster are retrieved. + responses: + '200': + $ref: '#/components/responses/wlm.get_query_group@200' + put: + operationId: wlm.create_query_group.0 + x-operation-group: wlm.create_query_group + x-version-added: '2.17' + description: Creates a new query group and sets the resource limits for the new query group. + requestBody: + $ref: '#/components/requestBodies/wlm.create_query_group' + responses: + '200': + $ref: '#/components/responses/wlm.create_query_group@200' + /_wlm/query_group/{name}: + get: + operationId: wlm.get_query_group.1 + x-operation-group: wlm.get_query_group + x-version-added: '2.17' + description: Retrieves the specified query group. If no query group is specified, all query groups in the cluster are retrieved. + parameters: + - $ref: '#/components/parameters/wlm.get_query_group::path.name' + responses: + '200': + $ref: '#/components/responses/wlm.get_query_group@200' + put: + operationId: wlm.update_query_group.0 + x-operation-group: wlm.update_query_group + x-version-added: '2.17' + description: Updates the specified query group. + parameters: + - $ref: '#/components/parameters/wlm.update_query_group::path.name' + requestBody: + $ref: '#/components/requestBodies/wlm.update_query_group' + responses: + '200': + $ref: '#/components/responses/wlm.update_query_group@200' + delete: + operationId: wlm.delete_query_group.0 + x-operation-group: wlm.delete_query_group + x-version-added: '2.17' + description: Deletes the specified query group. + parameters: + - $ref: '#/components/parameters/wlm.delete_query_group::path.name' + responses: + '200': + $ref: '#/components/responses/wlm.delete_query_group@200' +components: + requestBodies: + wlm.create_query_group: + content: + application/json: + schema: + $ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupCreate' + required: true + wlm.update_query_group: + content: + application/json: + schema: + $ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupUpdate' + required: true + responses: + wlm.create_query_group@200: + description: '' + content: + application/json: + schema: + $ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupResponse' + wlm.update_query_group@200: + description: '' + content: + application/json: + schema: + $ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupResponse' + wlm.delete_query_group@200: + description: '' + content: + application/json: + schema: + type: object + properties: + acknowledged: + type: boolean + wlm.get_query_group@200: + description: '' + content: + application/json: + schema: + type: object + properties: + query_groups: + type: array + items: + $ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupResponse' + parameters: + wlm.update_query_group::path.name: + name: name + in: path + description: The name of the query group. + schema: + type: string + required: true + wlm.delete_query_group::path.name: + name: name + in: path + description: The name of the query group. + schema: + type: string + required: true + wlm.get_query_group::path.name: + name: name + in: path + description: The name of the query group. + schema: + type: string + required: true diff --git a/spec/schemas/_common.aggregations.yaml b/spec/schemas/_common.aggregations.yaml index 3313b096b..6281b97d2 100644 --- a/spec/schemas/_common.aggregations.yaml +++ b/spec/schemas/_common.aggregations.yaml @@ -1,13 +1,13 @@ openapi: 3.1.0 info: - title: Schemas of _common.aggregations category - description: Schemas of _common.aggregations category + title: Schemas of `_common.aggregations` Category + description: Schemas of `_common.aggregations` category. version: 1.0.0 paths: {} components: schemas: Aggregate: - oneOf: + anyOf: - $ref: '#/components/schemas/CardinalityAggregate' - $ref: '#/components/schemas/HdrPercentilesAggregate' - $ref: '#/components/schemas/HdrPercentileRanksAggregate' @@ -784,8 +784,11 @@ components: - doc_count NestedAggregate: allOf: - - $ref: '#/components/schemas/SingleBucketAggregateBase' + - $ref: '#/components/schemas/AggregateBase' - type: object + properties: + doc_count: + type: number ReverseNestedAggregate: allOf: - $ref: '#/components/schemas/SingleBucketAggregateBase' @@ -951,7 +954,7 @@ components: to_as_string: type: string key: - description: The bucket key. Present if the aggregation is _not_ keyed + description: The bucket key. Present if the aggregation is not keyed. type: string DateRangeAggregate: allOf: @@ -1842,7 +1845,7 @@ components: BucketsPath: description: |- Buckets path can be expressed in different ways, and an aggregation may accept some or all of these - forms depending on its type. Please refer to each aggregation's documentation to know what buckets + forms depending on its type. Refer to each aggregation's documentation to know what buckets path forms they accept. oneOf: - type: string @@ -1950,7 +1953,7 @@ components: doc_count: description: |- The total number of documents that initially created the expectations. It's required to be greater - than or equal to the sum of all values in the buckets_path as this is the originating superset of data + than or equal to the sum of all values in the `buckets_path` as this is the originating superset of data to which the term values are correlated. type: number expectations: @@ -1963,7 +1966,7 @@ components: fractions: description: |- An array of fractions to use when averaging and calculating variance. This should be used if - the pre-calculated data and the buckets_path have known gaps. The length of fractions, if provided, + the pre-calculated data and the `buckets_path` have known gaps. The length of fractions, if provided, must equal expectations. type: array items: @@ -2002,7 +2005,7 @@ components: $ref: '_common.yaml#/components/schemas/Field' max_unique_tokens: description: |- - The maximum number of unique tokens at any position up to max_matched_tokens. Must be larger than 1. + The maximum number of unique tokens at any position up to `max_matched_tokensg`. Must be larger than 1. Smaller values use less memory and create fewer categories. Larger values will use more memory and create narrower categories. Max allowed value is 100. type: number @@ -2022,10 +2025,10 @@ components: This property expects an array of regular expressions. The expressions are used to filter out matching sequences from the categorization field values. You can use this functionality to fine tune the categorization by excluding sequences from consideration when categories are defined. For example, you can exclude SQL - statements that appear in your log files. This property cannot be used at the same time as categorization_analyzer. + statements that appear in your log files. This property cannot be used at the same time as `categorization_analyzer`. If you only want to define simple regular expression filters that are applied prior to tokenization, setting this property is the easiest method. If you also want to customize the tokenizer or post-tokenization filtering, - use the categorization_analyzer property instead and include the filters as pattern_replace character filters. + use the `categorization_analyzer` property instead and include the filters as `pattern_replace` character filters. type: array items: type: string @@ -2554,7 +2557,7 @@ components: precision: description: |- Integer zoom of the key used to defined cells or buckets - in the results. Value should be between 0-15. + in the results. Value should be between 0 and 15. type: number bounds: $ref: '_common.yaml#/components/schemas/GeoBounds' @@ -2711,13 +2714,13 @@ components: description: Specifies the maximum number of feature importance values per document. type: number prediction_field_type: - description: 'Specifies the type of the predicted field to write. Acceptable values are: string, number, boolean. When boolean is provided 1.0 is transformed to true and 0.0 to false.' + description: 'Specifies the type of the predicted field to write. Acceptable values are: string, number, Boolean. When Boolean is provided 1.0 is transformed to true and 0.0 to false.' type: string results_field: - description: The field that is added to incoming documents to contain the inference prediction. Defaults to predicted_value. + description: The field that is added to incoming documents to contain the inference prediction. Defaults to `predicted_value`. type: string top_classes_results_field: - description: Specifies the field to which the top classes are written. Defaults to top_classes. + description: Specifies the field to which the top classes are written. Defaults to `top_classes`. type: string MatrixStatsAggregation: allOf: @@ -3294,7 +3297,7 @@ components: $ref: '#/components/schemas/ScriptedHeuristic' shard_min_doc_count: description: |- - Regulates the certainty a shard has if the values should actually be added to the candidate list or not with respect to the min_doc_count. + Regulates the certainty a shard has if the values should actually be added to the candidate list or not with respect to the `min_doc_count`. Values will only be considered if their local shard frequency within the set is higher than the `shard_min_doc_count`. type: number shard_size: diff --git a/spec/schemas/_common.analysis.yaml b/spec/schemas/_common.analysis.yaml index e917bf0d0..dfa6e9a6d 100644 --- a/spec/schemas/_common.analysis.yaml +++ b/spec/schemas/_common.analysis.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _common.analysis category - description: Schemas of _common.analysis category + title: Schemas of `_common.analysis` Category + description: Schemas of `_common.analysis` category. version: 1.0.0 paths: {} components: @@ -25,6 +25,9 @@ components: - $ref: '#/components/schemas/KuromojiAnalyzer' - $ref: '#/components/schemas/SnowballAnalyzer' - $ref: '#/components/schemas/DutchAnalyzer' + - $ref: '#/components/schemas/SmartcnAnalyzer' + - $ref: '#/components/schemas/CjkAnalyzer' + - $ref: '#/components/schemas/PhoneAnalyzer' CustomAnalyzer: type: object properties: @@ -41,9 +44,9 @@ components: items: type: string position_increment_gap: - type: number + type: integer position_offset_gap: - type: number + type: integer tokenizer: type: string required: @@ -59,7 +62,7 @@ components: version: $ref: '_common.yaml#/components/schemas/VersionString' max_output_size: - type: number + type: integer preserve_original: type: boolean separator: @@ -75,7 +78,7 @@ components: - type StopWords: description: |- - Language value, such as _arabic_ or _thai_. Defaults to _english_. + Language value, such as `arabic` or `thai`. Defaults to `english`. Each language value corresponds to a predefined list of stop words in Lucene. See Stop words by language for supported language values and their stop words. Also accepts an array of stop words. oneOf: @@ -218,7 +221,7 @@ components: enum: - standard max_token_length: - type: number + type: integer stopwords: $ref: '#/components/schemas/StopWords' required: @@ -347,10 +350,41 @@ components: $ref: '#/components/schemas/StopWords' required: - type + SmartcnAnalyzer: + type: object + properties: + type: + type: string + enum: + - smartcn + CjkAnalyzer: + type: object + properties: + type: + type: string + enum: + - cjk + stopwords: + $ref: '#/components/schemas/StopWords' + stopwords_path: + type: string + PhoneAnalyzer: + type: object + properties: + type: + type: string + enum: + - phone + - phone-search + phone-region: + type: string + description: Optional ISO 3166 country code, defaults to "ZZ" (unknown region). CharFilter: oneOf: - - type: string - - $ref: '#/components/schemas/CharFilterDefinition' + - title: name + type: string + - title: definition + $ref: '#/components/schemas/CharFilterDefinition' CharFilterDefinition: type: object discriminator: @@ -446,8 +480,10 @@ components: - type TokenFilter: oneOf: - - type: string - - $ref: '#/components/schemas/TokenFilterDefinition' + - title: name + type: string + - title: definition + $ref: '#/components/schemas/TokenFilterDefinition' TokenFilterDefinition: type: object discriminator: @@ -474,6 +510,7 @@ components: - $ref: '#/components/schemas/NoriPartOfSpeechTokenFilter' - $ref: '#/components/schemas/PatternCaptureTokenFilter' - $ref: '#/components/schemas/PatternReplaceTokenFilter' + - $ref: '#/components/schemas/PersianStemTokenFilter' - $ref: '#/components/schemas/PorterStemTokenFilter' - $ref: '#/components/schemas/PredicateTokenFilter' - $ref: '#/components/schemas/RemoveDuplicatesTokenFilter' @@ -501,6 +538,7 @@ components: - $ref: '#/components/schemas/IcuTransformTokenFilter' - $ref: '#/components/schemas/PhoneticTokenFilter' - $ref: '#/components/schemas/DictionaryDecompounderTokenFilter' + - $ref: '#/components/schemas/SmartcnStopTokenFilter' AsciiFoldingTokenFilter: allOf: - $ref: '#/components/schemas/TokenFilterBase' @@ -511,7 +549,7 @@ components: enum: - asciifolding preserve_original: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' required: - type TokenFilterBase: @@ -590,13 +628,13 @@ components: enum: - edge_ngram max_gram: - type: number + type: integer min_gram: - type: number + type: integer side: $ref: '#/components/schemas/EdgeNGramSide' preserve_original: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' required: - type EdgeNGramSide: @@ -620,7 +658,7 @@ components: articles_path: type: string articles_case: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' required: - type FingerprintTokenFilter: @@ -633,7 +671,7 @@ components: enum: - fingerprint max_output_size: - type: number + type: integer separator: type: string required: @@ -677,11 +715,11 @@ components: hyphenation_patterns_path: type: string max_subword_size: - type: number + type: integer min_subword_size: - type: number + type: integer min_word_size: - type: number + type: integer only_longest_match: type: boolean word_list: @@ -773,9 +811,9 @@ components: enum: - length max: - type: number + type: integer min: - type: number + type: integer required: - type LimitTokenCountTokenFilter: @@ -790,7 +828,7 @@ components: consume_all_tokens: type: boolean max_token_count: - $ref: '_common.yaml#/components/schemas/Stringifiedinteger' + $ref: '_common.yaml#/components/schemas/StringifiedInteger' required: - type LowercaseTokenFilter: @@ -820,7 +858,7 @@ components: items: type: string preserve_original: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' required: - filters - type @@ -834,11 +872,11 @@ components: enum: - ngram max_gram: - type: number + type: integer min_gram: - type: number + type: integer preserve_original: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' required: - type NoriPartOfSpeechTokenFilter: @@ -870,7 +908,7 @@ components: items: type: string preserve_original: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' required: - patterns - type @@ -894,6 +932,17 @@ components: required: - pattern - type + PersianStemTokenFilter: + allOf: + - $ref: '#/components/schemas/TokenFilterBase' + - type: object + properties: + type: + type: string + enum: + - persian_stem + required: + - type PorterStemTokenFilter: allOf: - $ref: '#/components/schemas/TokenFilterBase' @@ -1111,7 +1160,7 @@ components: enum: - truncate length: - type: number + type: integer required: - type UniqueTokenFilter: @@ -1162,7 +1211,7 @@ components: ignore_keywords: type: boolean preserve_original: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' protected_words: type: array items: @@ -1203,7 +1252,7 @@ components: generate_word_parts: type: boolean preserve_original: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' protected_words: type: array items: @@ -1234,7 +1283,7 @@ components: enum: - kuromoji_stemmer minimum_length: - type: number + type: integer required: - minimum_length - type @@ -1335,7 +1384,7 @@ components: IcuCollationDecomposition: type: string enum: - - identical + - canonical - no IcuCollationStrength: type: string @@ -1410,7 +1459,7 @@ components: items: $ref: '#/components/schemas/PhoneticLanguage' max_code_len: - type: number + type: integer name_type: $ref: '#/components/schemas/PhoneticNameType' replace: @@ -1475,6 +1524,17 @@ components: - dictionary_decompounder required: - type + SmartcnStopTokenFilter: + allOf: + - $ref: '#/components/schemas/TokenFilterBase' + - type: object + properties: + type: + type: string + enum: + - smartcn_stop + required: + - type Normalizer: type: object discriminator: @@ -1510,8 +1570,10 @@ components: - type Tokenizer: oneOf: - - type: string - - $ref: '#/components/schemas/TokenizerDefinition' + - title: name + type: string + - title: definition + $ref: '#/components/schemas/TokenizerDefinition' TokenizerDefinition: type: object discriminator: @@ -1531,6 +1593,7 @@ components: - $ref: '#/components/schemas/KuromojiTokenizer' - $ref: '#/components/schemas/PatternTokenizer' - $ref: '#/components/schemas/IcuTokenizer' + - $ref: '#/components/schemas/SmartcnTokenizer' CharGroupTokenizer: allOf: - $ref: '#/components/schemas/TokenizerBase' @@ -1545,7 +1608,7 @@ components: items: type: string max_token_length: - type: number + type: integer required: - tokenize_on_chars - type @@ -1561,9 +1624,9 @@ components: custom_token_chars: type: string max_gram: - type: number + type: integer min_gram: - type: number + type: integer token_chars: type: array items: @@ -1592,7 +1655,7 @@ components: enum: - keyword buffer_size: - type: number + type: integer required: - buffer_size - type @@ -1630,9 +1693,9 @@ components: custom_token_chars: type: string max_gram: - type: number + type: integer min_gram: - type: number + type: integer token_chars: type: array items: @@ -1673,15 +1736,15 @@ components: enum: - path_hierarchy buffer_size: - $ref: '_common.yaml#/components/schemas/Stringifiedinteger' + $ref: '_common.yaml#/components/schemas/StringifiedInteger' delimiter: type: string replacement: type: string reverse: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' skip: - $ref: '_common.yaml#/components/schemas/Stringifiedinteger' + $ref: '_common.yaml#/components/schemas/StringifiedInteger' required: - buffer_size - delimiter @@ -1698,7 +1761,7 @@ components: enum: - standard max_token_length: - type: number + type: integer required: - type UaxEmailUrlTokenizer: @@ -1711,7 +1774,7 @@ components: enum: - uax_url_email max_token_length: - type: number + type: integer required: - type WhitespaceTokenizer: @@ -1724,7 +1787,7 @@ components: enum: - whitespace max_token_length: - type: number + type: integer required: - type KuromojiTokenizer: @@ -1741,7 +1804,7 @@ components: mode: $ref: '#/components/schemas/KuromojiTokenizationMode' nbest_cost: - type: number + type: integer nbest_examples: type: string user_dictionary: @@ -1767,8 +1830,19 @@ components: flags: type: string group: - type: number + type: integer pattern: type: string required: - type + SmartcnTokenizer: + allOf: + - $ref: '#/components/schemas/TokenizerBase' + - type: object + properties: + type: + type: string + enum: + - smartcn_tokenizer + required: + - type diff --git a/spec/schemas/_common.mapping.yaml b/spec/schemas/_common.mapping.yaml index 2c26487fb..771955942 100644 --- a/spec/schemas/_common.mapping.yaml +++ b/spec/schemas/_common.mapping.yaml @@ -1,58 +1,11 @@ openapi: 3.1.0 info: - title: Schemas of _common.mapping category - description: Schemas of _common.mapping category + title: Schemas of `_common.mapping` Category + description: Schemas of `_common.mapping` category. version: 1.0.0 paths: {} components: schemas: - RuntimeFields: - type: object - additionalProperties: - $ref: '#/components/schemas/RuntimeField' - RuntimeField: - type: object - properties: - fetch_fields: - description: For type `lookup` - type: array - items: - $ref: '#/components/schemas/RuntimeFieldFetchFields' - format: - description: A custom format for `date` type runtime fields. - type: string - input_field: - $ref: '_common.yaml#/components/schemas/Field' - target_field: - $ref: '_common.yaml#/components/schemas/Field' - target_index: - $ref: '_common.yaml#/components/schemas/IndexName' - script: - $ref: '_common.yaml#/components/schemas/Script' - type: - $ref: '#/components/schemas/RuntimeFieldType' - required: - - type - RuntimeFieldFetchFields: - type: object - properties: - field: - $ref: '_common.yaml#/components/schemas/Field' - format: - type: string - required: - - field - RuntimeFieldType: - type: string - enum: - - boolean - - date - - double - - geo_point - - ip - - keyword - - long - - lookup TypeMapping: type: object properties: @@ -90,10 +43,6 @@ components: $ref: '#/components/schemas/SizeField' _source: $ref: '#/components/schemas/SourceField' - runtime: - type: object - additionalProperties: - $ref: '#/components/schemas/RuntimeField' enabled: type: boolean _data_stream_timestamp: @@ -160,10 +109,10 @@ components: type: object discriminator: propertyName: type + x-default: object oneOf: - $ref: '#/components/schemas/BinaryProperty' - $ref: '#/components/schemas/BooleanProperty' - - $ref: '#/components/schemas/DynamicProperty' - $ref: '#/components/schemas/JoinProperty' - $ref: '#/components/schemas/KeywordProperty' - $ref: '#/components/schemas/MatchOnlyTextProperty' @@ -177,9 +126,7 @@ components: - $ref: '#/components/schemas/DateNanosProperty' - $ref: '#/components/schemas/DateProperty' - $ref: '#/components/schemas/AggregateMetricDoubleProperty' - - $ref: '#/components/schemas/DenseVectorProperty' - - $ref: '#/components/schemas/SparseVectorProperty' - - $ref: '#/components/schemas/FlattenedProperty' + - $ref: '#/components/schemas/FlatObjectProperty' - $ref: '#/components/schemas/NestedProperty' - $ref: '#/components/schemas/ObjectProperty' - $ref: '#/components/schemas/CompletionProperty' @@ -209,6 +156,7 @@ components: - $ref: '#/components/schemas/IpRangeProperty' - $ref: '#/components/schemas/LongRangeProperty' - $ref: '#/components/schemas/KnnVectorProperty' + - $ref: '#/components/schemas/IcuCollationKeywordProperty' BinaryProperty: allOf: - $ref: '#/components/schemas/DocValuesPropertyBase' @@ -251,7 +199,7 @@ components: additionalProperties: $ref: '#/components/schemas/Property' ignore_above: - type: number + type: integer dynamic: $ref: '#/components/schemas/DynamicMapping' fields: @@ -265,6 +213,7 @@ components: properties: boost: type: number + format: double fielddata: $ref: 'indices._common.yaml#/components/schemas/NumericFielddata' index: @@ -277,74 +226,6 @@ components: - boolean required: - type - DynamicProperty: - allOf: - - $ref: '#/components/schemas/DocValuesPropertyBase' - - type: object - properties: - type: - type: string - enum: - - '{dynamic_property}' - enabled: - type: boolean - null_value: - $ref: '_common.yaml#/components/schemas/FieldValue' - boost: - type: number - coerce: - type: boolean - script: - $ref: '_common.yaml#/components/schemas/Script' - on_script_error: - $ref: '#/components/schemas/OnScriptError' - ignore_malformed: - type: boolean - time_series_metric: - $ref: '#/components/schemas/TimeSeriesMetricType' - analyzer: - type: string - eager_global_ordinals: - type: boolean - index: - type: boolean - index_options: - $ref: '#/components/schemas/IndexOptions' - index_phrases: - type: boolean - index_prefixes: - $ref: '#/components/schemas/TextIndexPrefixes' - norms: - type: boolean - position_increment_gap: - type: number - search_analyzer: - type: string - search_quote_analyzer: - type: string - term_vector: - $ref: '#/components/schemas/TermVectorOption' - format: - type: string - precision_step: - type: number - locale: - type: string - required: - - type - OnScriptError: - type: string - enum: - - continue - - fail - TimeSeriesMetricType: - type: string - enum: - - counter - - gauge - - histogram - - position - - summary IndexOptions: type: string enum: @@ -356,9 +237,9 @@ components: type: object properties: max_chars: - type: number + type: integer min_chars: - type: number + type: integer required: - max_chars - min_chars @@ -400,6 +281,7 @@ components: properties: boost: type: number + format: double eager_global_ordinals: type: boolean index: @@ -414,9 +296,6 @@ components: type: string split_queries_on_whitespace: type: boolean - time_series_dimension: - description: For internal use by OpenSearch only. Marks the field as a time series dimension. Defaults to false. - type: boolean type: type: string enum: @@ -493,7 +372,7 @@ components: index_options: $ref: '#/components/schemas/IndexOptions' max_shingle_size: - type: number + type: integer norms: type: boolean search_analyzer: @@ -517,6 +396,7 @@ components: type: string boost: type: number + format: double eager_global_ordinals: type: boolean fielddata: @@ -534,7 +414,7 @@ components: norms: type: boolean position_increment_gap: - type: number + type: integer search_analyzer: type: string search_quote_analyzer: @@ -578,6 +458,7 @@ components: properties: boost: type: number + format: double format: type: string ignore_malformed: @@ -587,7 +468,7 @@ components: null_value: $ref: '_common.yaml#/components/schemas/DateTime' precision_step: - type: number + type: integer type: type: string enum: @@ -601,6 +482,7 @@ components: properties: boost: type: number + format: double fielddata: $ref: 'indices._common.yaml#/components/schemas/NumericFielddata' format: @@ -612,7 +494,7 @@ components: null_value: $ref: '_common.yaml#/components/schemas/DateTime' precision_step: - type: number + type: integer locale: type: string type: @@ -636,83 +518,23 @@ components: type: array items: type: string - time_series_metric: - $ref: '#/components/schemas/TimeSeriesMetricType' required: - default_metric - metrics - type - DenseVectorProperty: + FlatObjectProperty: allOf: - $ref: '#/components/schemas/PropertyBase' - type: object properties: - type: - type: string - enum: - - dense_vector - dims: - type: number - similarity: - type: string - index: + searchable: type: boolean - index_options: - $ref: '#/components/schemas/DenseVectorIndexOptions' - required: - - dims - - type - DenseVectorIndexOptions: - type: object - properties: - type: - type: string - m: - type: number - ef_construction: - type: number - required: - - ef_construction - - m - - type - SparseVectorProperty: - allOf: - - $ref: '#/components/schemas/PropertyBase' - - type: object - properties: - type: - type: string - enum: - - sparse_vector - required: - - type - FlattenedProperty: - allOf: - - $ref: '#/components/schemas/PropertyBase' - - type: object - properties: - boost: - type: number - depth_limit: - type: number - doc_values: - type: boolean - eager_global_ordinals: - type: boolean - index: - type: boolean - index_options: - $ref: '#/components/schemas/IndexOptions' - null_value: - type: string - similarity: - type: string - split_queries_on_whitespace: + aggregatable: type: boolean type: type: string enum: - - flattened + - flat_object required: - type NestedProperty: @@ -755,7 +577,7 @@ components: items: $ref: '#/components/schemas/SuggestContext' max_input_length: - type: number + type: integer preserve_position_increments: type: boolean preserve_separators: @@ -789,8 +611,7 @@ components: - $ref: '#/components/schemas/PropertyBase' - type: object properties: - value: - type: object + value: {} type: type: string enum: @@ -830,19 +651,13 @@ components: properties: boost: type: number + format: double index: type: boolean ignore_malformed: type: boolean null_value: type: string - on_script_error: - $ref: '#/components/schemas/OnScriptError' - script: - $ref: '_common.yaml#/components/schemas/Script' - time_series_dimension: - description: For internal use by OpenSearch only. Marks the field as a time series dimension. Defaults to false. - type: boolean type: type: string enum: @@ -869,10 +684,12 @@ components: type: string boost: type: number + format: double index: type: boolean null_value: type: number + format: double enable_position_increments: type: boolean type: @@ -916,6 +733,7 @@ components: deprecated: true distance_error_pct: type: number + format: double deprecated: true type: type: string @@ -924,10 +742,23 @@ components: required: - type GeoOrientation: - type: string - enum: - - left - - right + oneOf: + # eslint-disable yml/sort-sequence-values + - title: left + type: string + enum: + - left + - LEFT + - clockwise + - cw + - title: right + type: string + enum: + - right + - RIGHT + - counterclockwise + - ccw + # eslint-enable yml/sort-sequence-values GeoStrategy: type: string enum: @@ -991,21 +822,13 @@ components: properties: boost: type: number + format: double coerce: type: boolean ignore_malformed: type: boolean index: type: boolean - on_script_error: - $ref: '#/components/schemas/OnScriptError' - script: - $ref: '_common.yaml#/components/schemas/Script' - time_series_metric: - $ref: '#/components/schemas/TimeSeriesMetricType' - time_series_dimension: - description: For internal use by OpenSearch only. Marks the field as a time series dimension. Defaults to false. - type: boolean DoubleNumberProperty: allOf: - $ref: '#/components/schemas/NumberPropertyBase' @@ -1017,6 +840,7 @@ components: - double null_value: type: number + format: double required: - type FloatNumberProperty: @@ -1030,6 +854,7 @@ components: - float null_value: type: number + format: float required: - type HalfFloatNumberProperty: @@ -1043,6 +868,7 @@ components: - half_float null_value: type: number + format: float required: - type IntegerNumberProperty: @@ -1055,7 +881,7 @@ components: enum: - integer null_value: - type: number + type: integer required: - type LongNumberProperty: @@ -1068,7 +894,8 @@ components: enum: - long null_value: - type: number + type: integer + format: int64 required: - type ScaledFloatNumberProperty: @@ -1082,8 +909,10 @@ components: - scaled_float null_value: type: number + format: double scaling_factor: type: number + format: double required: - type ShortNumberProperty: @@ -1132,27 +961,11 @@ components: properties: boost: type: number + format: double coerce: type: boolean index: type: boolean - KnnVectorPropertyBase: - type: object - properties: - dimension: - type: number - space_type: - type: string - data_type: - type: string - mode: - type: string - compression_level: - type: string - method: - $ref: '#/components/schemas/KnnVectorMethod' - required: - - dimension KnnVectorMethod: type: object properties: @@ -1164,8 +977,7 @@ components: type: string parameters: type: object - additionalProperties: - type: object + additionalProperties: {} required: - name DoubleRangeProperty: @@ -1225,13 +1037,65 @@ components: - type KnnVectorProperty: allOf: - - $ref: '#/components/schemas/KnnVectorPropertyBase' + - $ref: '#/components/schemas/DocValuesPropertyBase' - type: object properties: type: type: string enum: - knn_vector + dimension: + type: integer + space_type: + type: string + data_type: + type: string + mode: + type: string + compression_level: + type: string + method: + $ref: '#/components/schemas/KnnVectorMethod' + model_id: + type: string + required: + - dimension + - type + IcuCollationKeywordProperty: + allOf: + - $ref: '#/components/schemas/DocValuesPropertyBase' + - type: object + properties: + type: + type: string + enum: + - icu_collation_keyword + index: + type: boolean + null_value: + type: string + alternate: + $ref: '_common.analysis.yaml#/components/schemas/IcuCollationAlternate' + case_level: + type: boolean + case_first: + $ref: '_common.analysis.yaml#/components/schemas/IcuCollationCaseFirst' + decomposition: + $ref: '_common.analysis.yaml#/components/schemas/IcuCollationDecomposition' + hiragana_quaternary_mode: + type: boolean + numeric: + type: boolean + strength: + $ref: '_common.analysis.yaml#/components/schemas/IcuCollationStrength' + variable_top: + type: string + country: + type: string + language: + type: string + variant: + type: string required: - type MatchType: @@ -1284,14 +1148,6 @@ components: type: array items: type: string - mode: - $ref: '#/components/schemas/SourceFieldMode' - SourceFieldMode: - type: string - enum: - - disabled - - stored - - synthetic DataStreamTimestamp: type: object properties: diff --git a/spec/schemas/_common.query_dsl.yaml b/spec/schemas/_common.query_dsl.yaml index 2a23d5ccf..34206b155 100644 --- a/spec/schemas/_common.query_dsl.yaml +++ b/spec/schemas/_common.query_dsl.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _common.query_dsl category - description: Schemas of _common.query_dsl category + title: Schemas of `_common.query_dsl` Category + description: Schemas of `_common.query_dsl` category. version: 1.0.0 paths: {} components: @@ -69,7 +69,7 @@ components: $ref: '#/components/schemas/KnnQuery' match: description: |- - Returns documents that match a provided text, number, date or boolean value. + Returns documents that match a provided text, number, date or Boolean value. The provided text is analyzed before matching. type: object additionalProperties: @@ -181,7 +181,7 @@ components: term: description: |- Returns documents that contain an exact term in a provided field. - To return a document, the query term must exactly match the queried field's value, including whitespace and capitalization. + To return a document, the query term must exactly match the queried field's value, including white space and capitalization. type: object additionalProperties: anyOf: @@ -196,7 +196,7 @@ components: terms_set: description: |- Returns documents that contain a minimum number of exact terms in a provided field. - To return a document, a required number of terms must exactly match the field values, including whitespace and capitalization. + To return a document, a required number of terms must exactly match the field values, including white space and capitalization. type: object additionalProperties: $ref: '#/components/schemas/TermsSetQuery' @@ -212,7 +212,7 @@ components: type: $ref: '#/components/schemas/TypeQuery' weighted_tokens: - description: Supports returning text_expansion query results by sending in precomputed tokens with the query. + description: Supports returning `text_expansion` query results by sending in precomputed tokens with the query. type: object additionalProperties: $ref: '#/components/schemas/WeightedTokensQuery' @@ -270,6 +270,13 @@ components: - type: array items: $ref: '#/components/schemas/QueryContainer' + adjust_pure_negative: + description: |- + Ensures correct behavior when a query contains only `must_not` clauses. + By default set to true, OpenSearch adds a match-all clause to ensure results are returned from Lucene, with the `must_not` conditions applied as filters. + If set to false, the query may return no results, as Lucene typically requires at least one positive condition. + type: boolean + default: true QueryBase: type: object properties: @@ -280,6 +287,7 @@ components: A boost value between 0 and 1.0 decreases the relevance score. A value greater than 1.0 increases the relevance score. type: number + format: float _name: type: string BoostingQuery: @@ -290,6 +298,7 @@ components: negative_boost: description: Floating point number between 0 and 1.0 used to decrease the relevance scores of documents matching the `negative` query. type: number + format: float negative: $ref: '#/components/schemas/QueryContainer' positive: @@ -307,6 +316,7 @@ components: type: string cutoff_frequency: type: number + format: float high_freq_operator: $ref: '#/components/schemas/Operator' low_freq_operator: @@ -333,7 +343,7 @@ components: The `combined_fields` query analyzes the provided text before performing a search. type: string auto_generate_synonyms_phrase_query: - description: If true, match phrase queries are automatically created for multi-term synonyms. + description: If `true`, match phrase queries are automatically created for multi-term synonyms. type: boolean operator: $ref: '#/components/schemas/CombinedFieldsOperator' @@ -379,6 +389,7 @@ components: tie_breaker: description: Floating point number between 0 and 1.0 used to increase the relevance scores of documents matching multiple query clauses. type: number + format: float required: - queries DistanceFeatureQuery: @@ -447,9 +458,11 @@ components: max_boost: description: Restricts the new score to not exceed the provided limit. type: number + format: float min_score: description: Excludes documents that do not meet the provided score threshold. type: number + format: float query: $ref: '#/components/schemas/QueryContainer' score_mode: @@ -471,6 +484,7 @@ components: $ref: '#/components/schemas/QueryContainer' weight: type: number + format: float - type: object properties: exp: @@ -524,11 +538,13 @@ components: factor: description: Optional factor to multiply the field value with. type: number + format: float missing: description: |- Value used if the document doesn't have that field. The modifier and factor are still applied to it as though it were read from the document. type: number + format: double modifier: $ref: '#/components/schemas/FieldValueFactorModifier' required: @@ -553,7 +569,8 @@ components: $ref: '_common.yaml#/components/schemas/Field' seed: oneOf: - - type: number + - type: integer + format: int32 - type: string ScriptScoreFunction: type: object @@ -578,14 +595,16 @@ components: properties: max_expansions: description: Maximum number of variations created. - type: number + type: integer + format: int32 prefix_length: description: Number of beginning characters left unchanged when creating expansions. - type: number + type: integer + format: int32 rewrite: $ref: '_common.yaml#/components/schemas/MultiTermQueryRewrite' transpositions: - description: Indicates whether edits include transpositions of two adjacent characters (for example `ab` to `ba`). + description: Indicates whether edits include transpositions of two adjacent characters (for example, `ab` to `ba`). type: boolean fuzziness: $ref: '_common.yaml#/components/schemas/Fuzziness' @@ -695,12 +714,14 @@ components: description: |- Maximum number of child documents that match the query allowed for a returned parent document. If the parent document exceeds this limit, it is excluded from the search results. - type: number + type: integer + format: int32 min_children: description: |- Minimum number of child documents that match the query required to match the query for a returned parent document. If the parent document does not meet this limit, it is excluded from the search results. - type: number + type: integer + format: int32 query: $ref: '#/components/schemas/QueryContainer' score_mode: @@ -739,7 +760,7 @@ components: $ref: '#/components/schemas/IgnoreUnmapped' description: |- Indicates whether to ignore an unmapped `parent_type` and not return any documents instead of an error. - You can use this parameter to query multiple indices that may not contain the `parent_type`. + You can use this parameter to query multiple indexes that may not contain the `parent_type`. inner_hits: $ref: '_core.search.yaml#/components/schemas/InnerHits' parent_type: @@ -790,7 +811,8 @@ components: description: |- Maximum number of positions between the matching terms. Intervals produced by the rules further apart than this are not considered matches. - type: number + type: integer + format: int32 ordered: description: If `true`, intervals produced by the rules should appear in the order in which they are specified. type: boolean @@ -860,7 +882,8 @@ components: $ref: '_common.yaml#/components/schemas/Fuzziness' prefix_length: description: Number of beginning characters left unchanged when creating expansions. - type: number + type: integer + format: int32 term: description: The term to match. type: string @@ -881,7 +904,8 @@ components: description: |- Maximum number of positions between the matching terms. Terms further apart than this are not considered matches. - type: number + type: integer + format: int32 ordered: description: If `true`, matching terms must appear in their specified order. type: boolean @@ -942,6 +966,7 @@ components: cutoff_frequency: deprecated: true type: number + format: float fuzziness: $ref: '_common.yaml#/components/schemas/Fuzziness' fuzzy_rewrite: @@ -954,16 +979,18 @@ components: type: boolean max_expansions: description: Maximum number of terms to which the query will expand. - type: number + type: integer + format: int32 minimum_should_match: $ref: '_common.yaml#/components/schemas/MinimumShouldMatch' operator: $ref: '#/components/schemas/Operator' prefix_length: description: Number of beginning characters left unchanged for fuzzy matching. - type: number + type: integer + format: int32 query: - description: Text, number, boolean value or date you wish to find in the provided field. + description: Text, number, Boolean value or date you wish to find in the provided field. oneOf: - type: string - type: number @@ -1000,7 +1027,8 @@ components: description: |- Maximum number of terms to which the query will expand. Can be applied to the term subqueries constructed for all terms but the final term. - type: number + type: integer + format: int32 minimum_should_match: $ref: '_common.yaml#/components/schemas/MinimumShouldMatch' operator: @@ -1009,7 +1037,8 @@ components: description: |- Number of beginning characters left unchanged for fuzzy matching. Can be applied to the term subqueries constructed for all terms but the final term. - type: number + type: integer + format: int32 query: description: |- Terms you wish to find in the provided field. @@ -1034,7 +1063,8 @@ components: type: string slop: description: Maximum number of positions allowed between matching tokens. - type: number + type: integer + format: int32 zero_terms_query: $ref: '#/components/schemas/ZeroTermsQuery' required: @@ -1049,13 +1079,15 @@ components: type: string max_expansions: description: Maximum number of terms to which the last provided term of the query value will expand. - type: number + type: integer + format: int32 query: description: Text you wish to find in the provided field. type: string slop: description: Maximum number of positions allowed between matching tokens. - type: number + type: integer + format: int32 zero_terms_query: $ref: '#/components/schemas/ZeroTermsQuery' required: @@ -1076,6 +1108,7 @@ components: This sets the boost factor to use when using this feature. Defaults to deactivated (0). type: number + format: float fail_on_unsupported_field: description: Controls whether the query should fail (throw an exception) if any of the specified fields are not of the supported types (`text` or `keyword`). type: boolean @@ -1098,26 +1131,32 @@ components: $ref: '#/components/schemas/Like' max_doc_freq: description: The maximum document frequency above which the terms are ignored from the input document. - type: number + type: integer + format: int32 max_query_terms: description: The maximum number of query terms that can be selected. - type: number + type: integer + format: int32 max_word_length: description: |- The maximum word length above which the terms are ignored. Defaults to unbounded (`0`). - type: number + type: integer + format: int32 min_doc_freq: description: The minimum document frequency below which the terms are ignored from the input document. - type: number + type: integer + format: int32 minimum_should_match: $ref: '_common.yaml#/components/schemas/MinimumShouldMatch' min_term_freq: description: The minimum term frequency below which the terms are ignored from the input document. - type: number + type: integer + format: int32 min_word_length: description: The minimum word length below which the terms are ignored. - type: number + type: integer + format: int32 per_field_analyzer: description: Overrides the default analyzer. type: object @@ -1183,6 +1222,7 @@ components: cutoff_frequency: deprecated: true type: number + format: float fields: $ref: '_common.yaml#/components/schemas/Fields' fuzziness: @@ -1199,23 +1239,27 @@ components: type: boolean max_expansions: description: Maximum number of terms to which the query will expand. - type: number + type: integer + format: int32 minimum_should_match: $ref: '_common.yaml#/components/schemas/MinimumShouldMatch' operator: $ref: '#/components/schemas/Operator' prefix_length: description: Number of beginning characters left unchanged for fuzzy matching. - type: number + type: integer + format: int32 query: - description: Text, number, boolean value or date you wish to find in the provided field. + description: Text, number, Boolean value or date you wish to find in the provided field. type: string slop: description: Maximum number of positions allowed between matching tokens. - type: number + type: integer + format: int32 tie_breaker: description: Determines how scores for each per-term blended query and scores across groups are combined. type: number + format: float type: $ref: '#/components/schemas/TextQueryType' zero_terms_query: @@ -1270,8 +1314,10 @@ components: type: integer min_score: type: number + format: float max_distance: type: number + format: float filter: $ref: '#/components/schemas/QueryContainer' ParentIdQuery: @@ -1407,10 +1453,12 @@ components: $ref: '_common.yaml#/components/schemas/Fuzziness' fuzzy_max_expansions: description: Maximum number of terms to which the query expands for fuzzy matching. - type: number + type: integer + format: int32 fuzzy_prefix_length: description: Number of beginning characters left unchanged for fuzzy matching. - type: number + type: integer + format: int32 fuzzy_rewrite: $ref: '_common.yaml#/components/schemas/MultiTermQueryRewrite' fuzzy_transpositions: @@ -1421,12 +1469,14 @@ components: type: boolean max_determinized_states: description: Maximum number of automaton states required for the query. - type: number + type: integer + format: int32 minimum_should_match: $ref: '_common.yaml#/components/schemas/MinimumShouldMatch' phrase_slop: description: Maximum number of positions allowed between matching tokens for phrases. - type: number + type: integer + format: int32 query: description: Query string you wish to parse and use for search. type: string @@ -1445,6 +1495,7 @@ components: tie_breaker: description: How to combine the queries generated from the individual search terms in the resulting `dis_max` query. type: number + format: float time_zone: $ref: '_common.yaml#/components/schemas/TimeZone' type: @@ -1539,6 +1590,7 @@ components: pivot: description: Configurable pivot value so that the result will be less than 0.5. type: number + format: float RankFeatureFunction: type: object RankFeatureFunctionLogarithm: @@ -1549,6 +1601,7 @@ components: scaling_factor: description: Configurable scaling factor. type: number + format: float required: - scaling_factor RankFeatureFunctionLinear: @@ -1563,9 +1616,11 @@ components: pivot: description: Configurable pivot value so that the result will be less than 0.5. type: number + format: float exponent: description: Configurable Exponent. type: number + format: float required: - exponent - pivot @@ -1584,7 +1639,8 @@ components: type: string max_determinized_states: description: Maximum number of automaton states required for the query. - type: number + type: integer + format: int32 rewrite: $ref: '_common.yaml#/components/schemas/MultiTermQueryRewrite' value: @@ -1624,6 +1680,7 @@ components: min_score: description: Documents with a score lower than this floating point number are excluded from the search results. type: number + format: float query: $ref: '#/components/schemas/QueryContainer' script: @@ -1643,7 +1700,7 @@ components: description: If `true`, the query attempts to analyze wildcard terms in the query string. type: boolean auto_generate_synonyms_phrase_query: - description: If `true`, the parser creates a match_phrase query for each multi-position token. + description: If `true`, the parser creates a `match_phrase` query for each multi-position token. type: boolean default_operator: $ref: '#/components/schemas/Operator' @@ -1660,10 +1717,12 @@ components: $ref: '#/components/schemas/SimpleQueryStringFlags' fuzzy_max_expansions: description: Maximum number of terms to which the query expands for fuzzy matching. - type: number + type: integer + format: int32 fuzzy_prefix_length: description: Number of beginning characters left unchanged for fuzzy matching. - type: number + type: integer + format: int32 fuzzy_transpositions: description: If `true`, edits for fuzzy matching include transpositions of two adjacent characters (for example, `ab` to `ba`). type: boolean @@ -1681,7 +1740,7 @@ components: required: - query SimpleQueryStringFlags: - description: Query flags can be either a single flag or a combination of flags, e.g. `OR|AND|PREFIX`. + description: Query flags can be either a single flag or a combination of flags (e.g. `OR|AND|PREFIX`). allOf: - $ref: '_common.yaml#/components/schemas/PipeSeparatedFlagsSimpleQueryStringFlag' SimpleQueryStringFlag: @@ -1761,17 +1820,19 @@ components: properties: end: description: Controls the maximum end position permitted in a match. - type: number + type: integer + format: int32 match: $ref: '#/components/schemas/SpanQuery' required: - end - match SpanGapQuery: - description: Can only be used as a clause in a span_near query. + description: Can only be used as a clause in a `span_near` query. type: object additionalProperties: - type: number + type: integer + format: int32 minProperties: 1 maxProperties: 1 SpanMultiTermQuery: @@ -1798,7 +1859,8 @@ components: type: boolean slop: description: Controls the maximum number of intervening unmatched positions permitted. - type: number + type: integer + format: int32 required: - clauses SpanNotQuery: @@ -1810,17 +1872,20 @@ components: description: |- The number of tokens from within the include span that can't have overlap with the exclude span. Equivalent to setting both `pre` and `post`. - type: number + type: integer + format: int32 exclude: $ref: '#/components/schemas/SpanQuery' include: $ref: '#/components/schemas/SpanQuery' post: description: The number of tokens after the include span that can't have overlap with the exclude span. - type: number + type: integer + format: int32 pre: description: The number of tokens before the include span that can't have overlap with the exclude span. - type: number + type: integer + format: int32 required: - exclude - include @@ -1871,6 +1936,7 @@ components: type: boolean required: - value + TermsQueryField: type: object properties: diff --git a/spec/schemas/_common.yaml b/spec/schemas/_common.yaml index 889c8b014..0ae9e8db3 100644 --- a/spec/schemas/_common.yaml +++ b/spec/schemas/_common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _common category - description: Schemas of _common category + title: Schemas of `_common` Category + description: Schemas of `_common` category. version: 1.0.0 paths: {} components: @@ -21,51 +21,64 @@ components: - acknowledged DocStatus: description: |- - Item level REST category class codes during indexing. + The item level REST category class codes during indexing. type: object properties: 1xx: - type: number + type: integer + format: int32 2xx: - type: number + type: integer + format: int32 3xx: - type: number + type: integer + format: int32 4xx: - type: number + type: integer + format: int32 5xx: - type: number + type: integer + format: int32 Duration: description: |- A duration. Units can be `nanos`, `micros`, `ms` (milliseconds), `s` (seconds), `m` (minutes), `h` (hours) and `d` (days). Also accepts "0" without a unit and "-1" to indicate an unspecified value. - pattern: ^([0-9\.]+)(?:d|h|m|s|ms|micros|nanos)$ + pattern: ^(?:(-1)|([0-9\.]+)(?:d|h|m|s|ms|micros|nanos))$ type: string Metadata: type: object additionalProperties: true GeoBounds: description: |- - A geo bounding box. It can be represented in various ways: - - as 4 top/bottom/left/right coordinates - - as 2 top_left / bottom_right points - - as 2 top_right / bottom_left points - - as a WKT bounding box. + A geo-bounding box. It can be represented in the following ways: + - As 4 top/bottom/left/right coordinates. + - As 2 top_left/bottom_right points. + - As 2 top_right/bottom_left points. + - As a Well Known Text (WKT) bounding box. oneOf: - - $ref: '#/components/schemas/CoordsGeoBounds' - - $ref: '#/components/schemas/TopLeftBottomRightGeoBounds' - - $ref: '#/components/schemas/TopRightBottomLeftGeoBounds' - - $ref: '#/components/schemas/WktGeoBounds' + - title: coords + $ref: '#/components/schemas/CoordsGeoBounds' + - title: tlbr + $ref: '#/components/schemas/TopLeftBottomRightGeoBounds' + - title: trbl + $ref: '#/components/schemas/TopRightBottomLeftGeoBounds' + - title: wkt + $ref: '#/components/schemas/WktGeoBounds' CoordsGeoBounds: type: object properties: top: type: number + format: double bottom: type: number + format: double left: type: number + format: double right: type: number + format: double required: - bottom - left @@ -83,27 +96,34 @@ components: - top_left GeoLocation: description: |- - A latitude/longitude as a 2 dimensional point. It can be represented in various ways: - - as a `{lat, long}` object - - as a geo hash value - - as a `[lon, lat]` array - - as a string in `", "` or WKT point formats. + A latitude/longitude as a two-dimensional point. It can be represented in the following ways: + - As a `{lat, long}` object. + - As a geohash value. + - As a `[lon, lat]` array. + - As a string in `", "` or WKT point format. oneOf: - - $ref: '#/components/schemas/LatLonGeoLocation' - - $ref: '#/components/schemas/GeoHashLocation' - - type: array + - title: latlon + $ref: '#/components/schemas/LatLonGeoLocation' + - title: geohash + $ref: '#/components/schemas/GeoHashLocation' + - title: coords + type: array items: type: number - - type: string + format: double + - title: text + type: string LatLonGeoLocation: type: object properties: lat: description: Latitude type: number + format: double lon: description: Longitude type: number + format: double required: - lat - lon @@ -136,16 +156,20 @@ components: XyLocation: x-version-added: '2.4' description: |- - A two-dimensional Cartesian point specified by x and y coordinates. It can be represented in various ways: - - as a `{x, y}` object - - as a `[x, y]` array - - as a string in `"x, y"` or WKT point formats. + A two-dimensional Cartesian point specified by x and y coordinates. It can be represented in the following ways: + - As an `{x, y}` object. + - As an `[x, y]` array. + - As a string in `"x, y"` or WKT point format. oneOf: - - $ref: '#/components/schemas/XyCartesianCoordinates' - - type: array + - title: cartesian + $ref: '#/components/schemas/XyCartesianCoordinates' + - title: coords + type: array items: type: number - - type: string + format: double + - title: text + type: string XyCartesianCoordinates: x-version-added: '2.4' type: object @@ -153,9 +177,11 @@ components: x: description: The x coordinate. type: number + format: double y: description: The y coordinate. type: number + format: double required: - x - y @@ -163,12 +189,12 @@ components: allOf: - $ref: '#/components/schemas/UnitMillis' UnitMillis: - description: Time unit for milliseconds. + description: The time unit for milliseconds. type: integer format: int64 DurationLarge: description: |- - A date histogram interval. Similar to `Duration` with additional units: `w` (week), `M` (month), `q` (quarter) and `y` (year). + A date histogram interval, similar to `Duration`, with support for additional units: `w` (week), `M` (month), `q` (quarter), and `y` (year). type: string FieldValue: description: A field value. @@ -182,8 +208,8 @@ components: description: |- The absence of any type. This is commonly used in APIs that don't return a body. - Although "void" is generally used for the unit type that has only one value, this is to be interpreted as - the bottom type that has no value at all. Most languages have a unit type, but few have a bottom type. + Although "void" is generally used for a unit type that has only one value, this is interpreted as + the bottom type, which has no value. Most languages have a unit type, but few have a bottom type. See https://en.m.wikipedia.org/wiki/Unit_type and https://en.m.wikipedia.org/wiki/Bottom_type. type: object @@ -196,7 +222,7 @@ components: IndexName: type: string Field: - description: Path to field or array of paths. Some API's support wildcards in the path to select multiple fields. + description: The path to a field or an array of paths. Some APIs support wildcards in the path, which allows you to select multiple fields. type: string SequenceNumber: type: integer @@ -215,12 +241,13 @@ components: description: Always `"LineString"` type: string coordinates: - description: Array of `[lon, lat]` coordinates + description: An array of `[lon, lat]` coordinates. type: array items: type: array items: type: number + format: double required: - coordinates - type @@ -228,17 +255,23 @@ components: type: object properties: skipped: - type: number + type: integer + format: int32 successful: - type: number + type: integer + format: int32 total: - type: number + type: integer + format: int32 running: - type: number + type: integer + format: int32 partial: - type: number + type: integer + format: int32 failed: - type: number + type: integer + format: int32 details: type: object additionalProperties: @@ -323,13 +356,13 @@ components: type: object properties: type: - description: The type of error + description: The type of error. type: string reason: - description: A human-readable explanation of the error, in english + description: A human-readable explanation of the error, in English. type: string stack_trace: - description: The server stack trace. Present only if the `error_trace=true` parameter was sent with the request. + description: The server stack trace, present only if the `error_trace=true` parameter was sent with the request. type: string caused_by: $ref: '#/components/schemas/ErrorCause' @@ -345,7 +378,7 @@ components: - type additionalProperties: title: metadata - description: Additional details about the error. + description: Any additional information about the error. DurationValueUnitNanos: allOf: - $ref: '#/components/schemas/UnitNanos' @@ -356,6 +389,8 @@ components: ScrollId: type: string Routing: + type: string + RoutingInQueryString: oneOf: - type: string - type: array @@ -363,8 +398,8 @@ components: type: string DateTime: description: |- - A date and time, either as a string whose format can depend on the context (defaulting to ISO 8601), or a - number of milliseconds since the Epoch. OpenSearch accepts both as input, but will generally output a string + A date and time, either as a string whose format depends on the context (defaulting to ISO_8601) or the + number of milliseconds since the epoch. OpenSearch accepts both as an input but will generally output a string. representation. oneOf: - type: string @@ -388,13 +423,22 @@ components: items: $ref: '#/components/schemas/ExpandWildcard' ExpandWildcard: - type: string - enum: - - all - - closed - - hidden - - none - - open + oneOf: + - type: string + const: all + description: Match any index, including hidden ones. + - type: string + const: closed + description: Match closed, non-hidden indexes. + - type: string + const: hidden + description: Match hidden indexes. Must be combined with open, closed, or both. + - type: string + const: none + description: Wildcard expressions are not accepted. + - type: string + const: open + description: Match open, non-hidden indexes. VersionString: type: string SearchType: @@ -409,9 +453,10 @@ components: - missing - popular MinimumShouldMatch: - description: The minimum number of terms that should match as integer, percentage or range. + description: The minimum number of terms that should match as an integer, percentage, or range. oneOf: - - type: number + - type: integer + format: int32 - type: string Distance: type: string @@ -419,25 +464,36 @@ components: type: string Script: oneOf: - - $ref: '#/components/schemas/InlineScript' - - $ref: '#/components/schemas/StoredScriptId' + - title: inline + $ref: '#/components/schemas/InlineScript' + - title: stored + $ref: '#/components/schemas/StoredScriptId' InlineScript: - allOf: - - $ref: '#/components/schemas/ScriptBase' - - type: object - properties: - lang: - $ref: '#/components/schemas/ScriptLanguage' - options: - type: object - additionalProperties: - type: string - source: - description: The script source. - type: string - required: - - source + oneOf: + - title: source + type: string + - allOf: + - $ref: '#/components/schemas/ScriptBase' + - type: object + properties: + lang: + $ref: '#/components/schemas/ScriptLanguage' + options: + type: object + additionalProperties: + type: string + source: + description: The script source. + type: string + required: + - source ScriptLanguage: + anyOf: + - title: builtin + $ref: '#/components/schemas/BuiltinScriptLanguage' + - title: custom + type: string + BuiltinScriptLanguage: type: string enum: - expression @@ -449,8 +505,8 @@ components: properties: params: description: |- - Specifies any named parameters that are passed into the script as variables. - Use parameters instead of hard-coded values to decrease compile time. + Specifies any named parameters that are passed into the script as variables. + Use parameters instead of hard-coded values to decrease compilation time. type: object additionalProperties: true StoredScriptId: @@ -474,7 +530,8 @@ components: Fuzziness: oneOf: - type: string - - type: number + - type: integer + format: int32 GeoDistanceType: type: string enum: @@ -499,9 +556,18 @@ components: $ref: '#/components/schemas/SortCombinations' SortCombinations: oneOf: - - $ref: '#/components/schemas/Field' - - $ref: '#/components/schemas/FieldWithOrder' - - $ref: '#/components/schemas/SortOptions' + - title: field + $ref: '#/components/schemas/Field' + - title: field_with_direction + $ref: '#/components/schemas/FieldWithDirection' + - title: field_with_order + $ref: '#/components/schemas/FieldWithOrder' + - title: options + $ref: '#/components/schemas/SortOptions' + FieldWithDirection: + type: object + additionalProperties: + $ref: '#/components/schemas/SortOrder' FieldWithOrder: type: object additionalProperties: @@ -589,7 +655,8 @@ components: filter: $ref: '_common.query_dsl.yaml#/components/schemas/QueryContainer' max_children: - type: number + type: integer + format: int32 nested: $ref: '#/components/schemas/NestedSortValue' path: @@ -617,8 +684,8 @@ components: type: string PipeSeparatedFlagsSimpleQueryStringFlag: description: |- - A set of flags that can be represented as a single enum value or a set of values that are encoded - as a pipe-separated string + A set of flags represented as a single enum value or a set of values that are encoded + as a pipe-separated string. Depending on the target language, code generators can use this hint to generate language specific flags enum constructs and the corresponding (de-)serialization code. @@ -626,9 +693,10 @@ components: - $ref: '_common.query_dsl.yaml#/components/schemas/SimpleQueryStringFlag' - type: string GeoHashPrecision: - description: A precision that can be expressed as a geohash length between 1 and 12, or a distance measure like "1km", "10m". + description: The level of geohash precision, which can be expressed as a geohash length between 1 and 12 or as a distance measure, such as "1km" or "10m". oneOf: - - type: number + - type: integer + format: int32 - type: string GeoTilePrecision: type: number @@ -640,42 +708,49 @@ components: vector: $ref: '#/components/schemas/QueryVector' k: - description: The final number of nearest neighbors to return as top hits. - type: number + description: The total number of nearest neighbors to return as top hits. + type: integer + format: int32 min_score: - description: The minimum similarity score for a neighbor to be considered a hit. + description: The minimum similarity score required in order for a neighbor to be considered a hit. type: number + format: float x-version-added: '2.14' max_distance: - description: The maximum physical distance in vector space for a neighbor to be considered a hit. + description: The maximum physical vector space distance required in order for a neighbor to be considered a hit. type: number + format: float x-version-added: '2.14' filter: - description: Filters for the kNN search query. + description: The filters for the k-NN search query. oneOf: - $ref: '_common.query_dsl.yaml#/components/schemas/QueryContainer' - type: array items: $ref: '_common.query_dsl.yaml#/components/schemas/QueryContainer' boost: - description: Boost value to apply to kNN scores + description: The boost value applied to k-NN scores. type: number + format: float method_parameters: type: object x-version-added: '2.16' additionalProperties: - type: number + type: integer + format: int32 rescore: type: object x-version-added: '2.17' additionalProperties: type: number + format: float required: - vector QueryVector: type: array items: type: number + format: float SlicedScroll: type: object properties: @@ -684,22 +759,27 @@ components: id: $ref: '#/components/schemas/Id' max: - type: number + type: integer + format: int32 required: - id - max NodeName: type: string Refresh: - type: string - enum: - - 'false' - - 'true' - - wait_for + oneOf: + - type: boolean + - type: string + enum: + - 'false' + - 'true' + - wait_for WaitForActiveShards: oneOf: - - type: number - - $ref: '#/components/schemas/WaitForActiveShardOptions' + - title: count + type: integer + - title: option + $ref: '#/components/schemas/WaitForActiveShardOptions' WaitForActiveShardOptions: type: string enum: @@ -717,7 +797,8 @@ components: _seq_no: $ref: '#/components/schemas/SequenceNumber' _primary_term: - type: number + type: integer + format: int32 _routing: $ref: '#/components/schemas/Routing' _source: @@ -741,7 +822,7 @@ components: type: string HumanReadableByteCount: type: string - pattern: '\d+(\.\d+)?(b|kb|k|mb|m|gb|g|tb|t|pb|p)' + pattern: '(?:(-1)|(0)|\d+(\.\d+)?(b|kb|k|mb|m|gb|g|tb|t|pb|p))' ByteUnit: type: string enum: @@ -761,6 +842,7 @@ components: format: int64 PercentageNumber: type: number + format: double PercentageString: type: string pattern: '\d+(\.\d+)?' @@ -770,8 +852,8 @@ components: type: string StringifiedEpochTimeUnitSeconds: description: |- - Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior - is used to capture this behavior while keeping the semantics of the field type. + Certain APIs may return values, including numbers such as epoch timestamps, as strings. This setting captures + this behavior while keeping the semantics of the field type. Depending on the target language, code generators can keep the union or remove it and leniently parse strings to the target type. @@ -783,7 +865,8 @@ components: - $ref: '#/components/schemas/UnitSeconds' UnitSeconds: description: Time unit for seconds. - type: number + type: integer + format: int64 TimeOfDay: description: Time of day, expressed as HH:MM:SS. type: string @@ -838,20 +921,30 @@ components: $ref: '#/components/schemas/ScrollId' TransportAddress: type: string - Stringifiedinteger: + StringifiedInteger: description: |- - Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior - is used to capture this behavior while keeping the semantics of the field type. + Certain APIs may return values, including numbers such as epoch timestamps, as strings. This setting captures + this behavior while keeping the semantics of the field type. Depending on the target language, code generators can keep the union or remove it and leniently parse strings to the target type. + oneOf: + - type: integer + - type: string + StringifiedLong: + oneOf: + - type: integer + format: int64 + - type: string + StringifiedDouble: oneOf: - type: number + format: double - type: string - Stringifiedboolean: + StringifiedBoolean: description: |- - Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior - is used to capture this behavior while keeping the semantics of the field type. + Certain APIs may return values, including numbers such as epoch timestamps, as strings. This setting captures + this behavior while keeping the semantics of the field type. Depending on the target language, code generators can keep the union or remove it and leniently parse strings to the target type. @@ -862,8 +955,8 @@ components: type: string StringifiedEpochTimeUnitMillis: description: |- - Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior - is used to capture this behavior while keeping the semantics of the field type. + Certain APIs may return values, including numbers such as epoch timestamps, as strings. This setting captures + this behavior while keeping the semantics of the field type. Depending on the target language, code generators can keep the union or remove it and leniently parse strings to the target type. @@ -892,7 +985,7 @@ components: - in - ine - p - Normalization: + TermFrequencyNormalization: type: string enum: - h1 @@ -937,7 +1030,7 @@ components: type: object properties: size_in_bytes: - description: Total amount, in bytes, of memory used for completion across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used for completion across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' size: $ref: '#/components/schemas/HumanReadableByteCount' @@ -961,14 +1054,14 @@ components: properties: count: description: |- - Total number of non-deleted documents across all primary shards assigned to selected nodes. + The total number of non-deleted documents across all primary shards assigned to the selected nodes. This number is based on documents in Lucene segments and may include documents from nested fields. type: number deleted: description: |- - Total number of deleted documents across all primary shards assigned to selected nodes. - This number is based on documents in Lucene segments. - OpenSearch reclaims the disk space of deleted Lucene documents when a segment is merged. + The total number of deleted documents across all primary shards assigned to the selected nodes. + This number is based on the number of documents stored in Lucene segments. + OpenSearch reclaims the disk space previously occupied by the deleted Lucene documents when a segment is merged. type: number required: - count @@ -1001,28 +1094,28 @@ components: properties: cache_count: description: |- - Total number of entries added to the query cache across all shards assigned to selected nodes. - This number includes current and evicted entries. + The total number of entries added to the query cache across all shards assigned to the selected nodes. + This number includes all current and evicted entries. type: number cache_size: - description: Total number of entries currently in the query cache across all shards assigned to selected nodes. + description: The total number of entries currently stored in the query cache across all shards assigned to the selected nodes. type: number evictions: - description: Total number of query cache evictions across all shards assigned to selected nodes. + description: The total number of query cache evictions across all shards assigned to the selected nodes. type: number hit_count: - description: Total count of query cache hits across all shards assigned to selected nodes. + description: The total number of query cache hits across all shards assigned to the selected nodes. type: number memory_size: $ref: '#/components/schemas/HumanReadableByteCount' memory_size_in_bytes: - description: Total amount, in bytes, of memory used for the query cache across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used for the query cache across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' miss_count: - description: Total count of query cache misses across all shards assigned to selected nodes. + description: The total number of query cache misses across all shards assigned to the selected nodes. type: number total_count: - description: Total count of hits and misses in the query cache across all shards assigned to selected nodes. + description: The total number of hits and misses stored in the query cache across all shards assigned to the selected nodes. type: number required: - cache_count @@ -1034,7 +1127,7 @@ components: - total_count RemoteStoreStats: type: object - description: Statistics about remote segment store operations. + description: Statistics related to remote segment store operations. properties: upload: $ref: '#/components/schemas/RemoteStoreUploadStats' @@ -1080,7 +1173,7 @@ components: - succeeded RemoteStoreTranslogUploadTotalUploadSizeStats: type: object - description: The total amount of data uploaded to the remote translog store. + description: The total amount of data uploaded to the remote translog store. properties: failed: description: The number of bytes that failed to upload to the remote translog store. @@ -1119,7 +1212,7 @@ components: refresh_size_lag: $ref: '#/components/schemas/RemoteStoreUploadRefreshSizeLagStats' total_time_spent: - description: The total amount of time, spent on uploads to the remote segment store. + description: The total amount of time spent on uploads to the remote segment store. $ref: '#/components/schemas/Duration' total_time_spent_in_millis: description: The total amount of time, in milliseconds, spent on uploads to the remote segment store. @@ -1137,10 +1230,10 @@ components: description: The amount of data, in bytes, uploaded or downloaded to/from the remote segment store. properties: failed: - description: The number of bytes that failed to upload/upload to/from the remote segment store. + description: The number of bytes that failed to upload to/from the remote segment store. $ref: '#/components/schemas/HumanReadableByteCount' failed_bytes: - description: The number of bytes that failed to upload/upload to/from the remote segment store. + description: The number of bytes that failed to upload to/from the remote segment store. $ref: '#/components/schemas/ByteCount' started: description: The number of bytes to upload/download to/from the remote segment store after the upload/download has started. @@ -1160,10 +1253,10 @@ components: - succeeded_bytes RemoteStoreUploadPressureStats: type: object - description: Statistics related to segment store upload backpressure. + description: Statistics related to segment store upload backpressure. properties: total_rejections: - description: The total number of requests rejected due to segment store upload backpressure. + description: The total number of requests rejected due to segment store upload backpressure. type: number required: - total_rejections @@ -1172,32 +1265,32 @@ components: description: The amount of lag during upload between the remote segment store and the local store. properties: max: - description: The maximum amount of lag, in bytes, during the upload refresh between the remote segment store and the local store. + description: The maximum amount of lag, in bytes, during the upload refresh between the remote segment store and the local store. $ref: '#/components/schemas/HumanReadableByteCount' max_bytes: - description: The maximum amount of lag, in bytes, during the upload refresh between the remote segment store and the local store. + description: The maximum amount of lag, in bytes, during the upload refresh between the remote segment store and the local store. $ref: '#/components/schemas/ByteCount' total: - description: The total number of bytes that lagged during the upload refresh between the remote segment store and the local store. + description: The total number of bytes that lagged during the upload refresh between the remote segment store and the local store. $ref: '#/components/schemas/HumanReadableByteCount' total_bytes: - description: The total number of bytes that lagged during the upload refresh between the remote segment store and the local store. + description: The total number of bytes that lagged during the upload refresh between the remote segment store and the local store. $ref: '#/components/schemas/ByteCount' required: - max_bytes - total_bytes RemoteStoreDownloadStats: type: object - description: Statistics related to downloads to the remote segment store. + description: Statistics related to downloads to the remote segment store. properties: total_download_size: - description: The total amount of data download from the remote segment store. + description: The total amount of data downloaded from the remote segment store. $ref: '#/components/schemas/RemoteStoreUploadDownloadStats' total_time_spent: - description: The total duration, spent on downloads from the remote segment store. + description: The total amount of time spent on downloads from the remote segment store. $ref: '#/components/schemas/Duration' total_time_spent_in_millis: - description: The total duration, in milliseconds, spent on downloads from the remote segment store. + description: The total duration, in milliseconds, spent on downloads from the remote segment store. $ref: '#/components/schemas/DurationValueUnitMillis' required: - total_download_size @@ -1219,12 +1312,12 @@ components: type: object properties: count: - description: Total number of segments across all shards assigned to selected nodes. + description: The total number of segments across all shards assigned to the selected nodes. type: number doc_values_memory: $ref: '#/components/schemas/HumanReadableByteCount' doc_values_memory_in_bytes: - description: Total amount, in bytes, of memory used for doc values across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used for document values across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' file_sizes: description: |- @@ -1236,59 +1329,59 @@ components: fixed_bit_set: $ref: '#/components/schemas/HumanReadableByteCount' fixed_bit_set_memory_in_bytes: - description: Total amount of memory, in bytes, used by fixed bit sets across all shards assigned to selected nodes. + description: The total amount of memory, in bytes, used by fixed bit sets across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' index_writer_memory: $ref: '#/components/schemas/HumanReadableByteCount' index_writer_max_memory_in_bytes: $ref: '#/components/schemas/ByteCount' index_writer_memory_in_bytes: - description: Total amount, in bytes, of memory used by all index writers across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used by all index writers across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' max_unsafe_auto_id_timestamp: - description: Unix timestamp, in milliseconds, of the most recently retried indexing request. + description: The Unix timestamp, in milliseconds, of the most recently retried indexing request. type: number memory: - description: Total amount, of memory used for segments across all shards assigned to selected nodes. + description: The total amount of memory used for segments across all shards assigned to the selected nodes. $ref: '#/components/schemas/HumanReadableByteCount' memory_in_bytes: - description: Total amount, in bytes, of memory used for segments across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used for segments across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' norms_memory: - description: Total amount of memory used for normalization factors across all shards assigned to selected nodes. + description: The total amount of memory used for normalization factors across all shards assigned to the selected nodes. $ref: '#/components/schemas/HumanReadableByteCount' norms_memory_in_bytes: - description: Total amount, in bytes, of memory used for normalization factors across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used for normalization factors across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' points_memory: - description: Total amount of memory used for points across all shards assigned to selected nodes. + description: The total amount of memory used for points across all shards assigned to the selected nodes. $ref: '#/components/schemas/HumanReadableByteCount' points_memory_in_bytes: - description: Total amount, in bytes, of memory used for points across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used for points across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' stored_fields_memory: - description: Total amount of memory used for stored fields across all shards assigned to selected nodes. + description: The total amount of memory used for stored fields across all shards assigned to the selected nodes. $ref: '#/components/schemas/HumanReadableByteCount' stored_fields_memory_in_bytes: - description: Total amount, in bytes, of memory used for stored fields across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used for stored fields across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' terms_memory: - description: Total amount of memory used for terms across all shards assigned to selected nodes. + description: The total amount of memory used for terms across all shards assigned to the selected nodes. $ref: '#/components/schemas/HumanReadableByteCount' terms_memory_in_bytes: - description: Total amount, in bytes, of memory used for terms across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used for terms across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' term_vectors_memory: - description: Total amount of memory used for term vectors across all shards assigned to selected nodes. + description: The total amount of memory used for term vectors across all shards assigned to the selected nodes. $ref: '#/components/schemas/HumanReadableByteCount' term_vectors_memory_in_bytes: - description: Total amount, in bytes, of memory used for term vectors across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used for term vectors across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' version_map_memory: - description: Total amount of memory used by all version maps across all shards assigned to selected nodes. + description: The total amount of memory used by all version maps across all shards assigned to the selected nodes. $ref: '#/components/schemas/HumanReadableByteCount' version_map_memory_in_bytes: - description: Total amount, in bytes, of memory used by all version maps across all shards assigned to selected nodes. + description: The total amount, in bytes, of memory used by all version maps across all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' remote_store: $ref: '#/components/schemas/RemoteStoreStats' @@ -1314,7 +1407,7 @@ components: size: $ref: '#/components/schemas/HumanReadableByteCount' size_in_bytes: - description: Total size, in bytes, of all shards assigned to selected nodes. + description: The total size, in bytes, of all shards assigned to the selected nodes. $ref: '#/components/schemas/ByteCount' reserved: $ref: '#/components/schemas/HumanReadableByteCount' @@ -1366,13 +1459,13 @@ components: items: $ref: '#/components/schemas/ErrorCause' total: - description: Total number of nodes selected by the request. + description: The total number of nodes selected by the request. type: integer successful: - description: Number of nodes that responded successfully to the request. + description: The number of nodes that responded successfully to the request. type: integer failed: - description: Number of nodes that rejected the request or failed to respond. If this value is not 0, a reason for the rejection or failure is included in the response. + description: The number of nodes that rejected the request or failed to respond. If this value is not 0, then a reason for the rejection or failure is included in the response. type: integer required: - failed @@ -1422,7 +1515,7 @@ components: - abort - proceed Slices: - description: Slices configuration used to parallelize a process. + description: The slice configuration used to parallelize a process. oneOf: - type: number - $ref: '#/components/schemas/SlicesCalculation' @@ -1734,42 +1827,42 @@ components: type: object properties: open_contexts: - description: The number of open search contexts. + description: The number of open search contexts. type: number query_current: - description: The number of shard query operations that are currently running. + description: The number of currently running shard query operations. type: number query_time: - description: The total amount of time for all shard query operations. + description: The total amount of time taken to complete all shard query operations. $ref: '#/components/schemas/Duration' query_time_in_millis: - description: The total amount of time for all shard query operations, in milliseconds. + description: The total amount of time taken to complete all shard query operations, in milliseconds. $ref: '#/components/schemas/DurationValueUnitMillis' query_total: description: The total number of shard query operations. type: number concurrent_query_total: - description: The total number of query operations that use concurrent segment search. + description: The total number of query operations using concurrent segment search. type: number concurrent_query_time: $ref: '#/components/schemas/Duration' concurrent_query_time_in_millis: - description: The total amount of time taken by all query operations that use concurrent segment search, in milliseconds. + description: The total amount of time taken by all query operations using concurrent segment search, in milliseconds. $ref: '#/components/schemas/DurationValueUnitMillis' concurrent_query_current: - description: The number of currently running query operations that use concurrent segment search. + description: The number of currently running query operations using concurrent segment search. type: number concurrent_avg_slice_count: description: The average slice count of all search requests. This is computed as the total slice count divided by the total number of concurrent search requests. type: number fetch_current: - description: The number of shard fetch operations that are currently running. + description: The number of currently running shard fetch operations. type: number fetch_time: - description: The total amount of time for all shard fetch operations. + description: The total amount of time taken to complete all shard fetch operations. $ref: '#/components/schemas/Duration' fetch_time_in_millis: - description: The total amount of time for all shard fetch operations, in milliseconds. + description: The total amount of time taken to complete all shard fetch operations, in milliseconds. $ref: '#/components/schemas/DurationValueUnitMillis' fetch_total: description: The total number of shard fetch operations. @@ -1778,42 +1871,42 @@ components: description: The number of shard scroll operations that are currently running. type: number scroll_time: - description: The total amount of time for all shard scroll operations. + description: The total amount of time taken to complete all shard scroll operations. $ref: '#/components/schemas/Duration' scroll_time_in_millis: - description: The total amount of time for all shard scroll operations, in milliseconds. + description: The total amount of time taken to complete all shard scroll operations, in milliseconds. $ref: '#/components/schemas/DurationValueUnitMillis' scroll_total: description: The total number of shard scroll operations. type: number point_in_time_total: - description: The total number of shard Point in Time (PIT) contexts that have been created (completed and active) since the node last restarted. + description: The total number of shard Point in Time (PIT) contexts created (completed and active) since the node last restarted. type: number point_in_time_time: $ref: '#/components/schemas/Duration' point_in_time_time_in_millis: - description: The amount of time that shard PIT contexts have been held open since the node last restarted, in milliseconds. + description: The amount of time that shard PIT contexts have been held open since the node last restarted, in milliseconds. $ref: '#/components/schemas/DurationValueUnitMillis' point_in_time_current: - description: The number of shard PIT contexts currently open. + description: The number of currently open shard PIT contexts. type: number suggest_current: - description: The number of shard suggest operations that are currently running. + description: The number of currently running shard suggest operations. type: number suggest_time: - description: The total amount of time for all shard suggest operations. + description: The total amount of time take to complete all shard suggest operations. $ref: '#/components/schemas/Duration' suggest_time_in_millis: - description: The total amount of time for all shard suggest operations, in milliseconds. + description: The total amount of time taken to complete all shard suggest operations, in milliseconds. $ref: '#/components/schemas/DurationValueUnitMillis' suggest_total: - description: The total number of shard suggest operations. + description: The total number of shard suggest operations. type: number search_idle_reactivate_count_total: type: number request: type: object - description: Statistics about coordinator search operations for the node. + description: Statistics related to coordinator search operations for the node. additionalProperties: $ref: '#/components/schemas/RequestStats' groups: @@ -1893,8 +1986,8 @@ components: - within StringifiedVersionNumber: description: |- - Some APIs will return values such as numbers also as a string (notably epoch timestamps). This behavior - is used to capture this behavior while keeping the semantics of the field type. + Certain APIs may return values, including numbers such as epoch timestamps, as strings. This setting captures + this behavior while keeping the semantics of the field type. Depending on the target language, code generators can keep the union or remove it and leniently parse strings to the target type. @@ -1960,7 +2053,7 @@ components: - master deprecated: true x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager' instead. + x-deprecation-message: Use `cluster_manager` instead. - type: string enum: - cluster_manager @@ -2009,10 +2102,10 @@ components: - type: object properties: rank_constant: - description: How much influence documents in individual result sets per query have over the final ranked result set + description: To what degree documents found in individual result sets per query influence the final ranked result set. type: number window_size: - description: Size of the individual result sets per query + description: The size of the individual result sets per query. type: number RankBase: type: object @@ -2119,31 +2212,31 @@ components: type: integer format: int32 total: - description: The number of documents that were successfully processed. + description: The number of documents that were successfully processed. type: integer format: int64 updated: - description: The number of documents that were successfully updated, for example, a document with same ID already existed prior to reindex updating it. + description: The number of documents that were successfully updated after the reindex operation. type: integer format: int64 created: - description: The number of documents that were successfully created. + description: The number of documents that were successfully created. type: integer format: int64 deleted: - description: The number of documents that were successfully deleted. + description: The number of documents that were successfully deleted. type: integer format: int64 batches: - description: The number of scroll responses pulled back by the reindex. + description: The number of scroll responses pulled back by the reindex operation. type: integer format: int32 version_conflicts: - description: The number of version conflicts that reindex hits. + description: The number of version conflicts encountered by the reindex operation. type: integer format: int64 noops: - description: The number of documents that were ignored. + description: The number of documents that were ignored. type: integer format: int64 retries: @@ -2153,7 +2246,7 @@ components: throttled: $ref: '#/components/schemas/Duration' requests_per_second: - description: The number of requests per second effectively executed during the reindex. + description: The number of requests per second effectively executed during the reindex operation. type: number format: float canceled: @@ -2238,3 +2331,10 @@ components: required: - reason - status + BatchSize: + type: integer + format: int64 + ResourceType: + type: string + enum: + - index_or_alias diff --git a/spec/schemas/_core._common.yaml b/spec/schemas/_core._common.yaml index adb685ea9..4b1690c7e 100644 --- a/spec/schemas/_core._common.yaml +++ b/spec/schemas/_core._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core._common category - description: Schemas of _core._common category + title: Schemas of `_core._common` Category + description: Schemas of `_core._common` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/_core.bulk.yaml b/spec/schemas/_core.bulk.yaml index 417d1ffd4..c0649db10 100644 --- a/spec/schemas/_core.bulk.yaml +++ b/spec/schemas/_core.bulk.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.bulk category - description: Schemas of _core.bulk category + title: Schemas of `_core.bulk` Category + description: Schemas of `_core.bulk` category. version: 1.0.0 paths: {} components: @@ -29,7 +29,6 @@ components: dynamic_templates: description: |- A map from the full name of fields to the name of dynamic templates. - Defaults to an empty map. If a name matches a dynamic template, then that template will be applied regardless of other match predicates defined in the template. If a field is already defined in the mapping, then this parameter won't be used. type: object @@ -37,12 +36,12 @@ components: type: string pipeline: description: |- - ID of the pipeline to use to preprocess incoming documents. - If the index has a default ingest pipeline specified, then setting the value to `_none` disables the default ingest pipeline for this request. - If a final pipeline is configured it will always run, regardless of the value of this parameter. + The pipeline ID for preprocessing documents. + When the index has a default ingest pipeline specified, then setting the value to `_none` disables the default ingest pipeline for this request. + When a final pipeline is configured, that pipeline will always run, regardless of the value of this parameter. type: string require_alias: - description: If `true`, the request's actions must target an index alias. + description: When `true`, require that all actions target an index alias rather than an index. Default is `false`. type: boolean OperationBase: type: object @@ -54,7 +53,8 @@ components: routing: $ref: '_common.yaml#/components/schemas/Routing' if_primary_term: - type: number + type: integer + format: int64 if_seq_no: $ref: '_common.yaml#/components/schemas/SequenceNumber' version: @@ -69,10 +69,11 @@ components: - type: object properties: require_alias: - description: If `true`, the request's actions must target an index alias. + description: When `true`, the request's actions must target an index alias. type: boolean retry_on_conflict: - type: number + type: integer + format: int32 DeleteOperation: $ref: '#/components/schemas/OperationBase' UpdateAction: @@ -80,26 +81,26 @@ components: properties: detect_noop: description: |- - Set to false to disable setting 'result' in the response - to 'noop' if no change to the document occurred. + When `false` disables the setting `result` in the response + to `noop` if no change to the document occurred. type: boolean doc: description: A partial update to an existing document. type: object doc_as_upsert: - description: Set to true to use the contents of 'doc' as the value of 'upsert' + description: When `true`, uses the contents of `doc` as the value of `upsert`. type: boolean script: $ref: '_common.yaml#/components/schemas/Script' scripted_upsert: - description: Set to true to execute the script whether or not the document exists. + description: When `true`, executes the script whether or not the document exists. type: boolean _source: $ref: '_core.search.yaml#/components/schemas/SourceConfig' upsert: description: |- - If the document does not already exist, the contents of 'upsert' are inserted as a - new document. If the document exists, the 'script' is executed. + If the document does not already exist, the contents of `upsert` are inserted as a + new document. If the document exists, the `script` is executed. type: object ResponseItem: type: object @@ -113,17 +114,19 @@ components: type: ['null', string] _index: description: |- - Name of the index associated with the operation. - If the operation targeted a data stream, this is the backing index into which the document was written. + The name of the index associated with the operation. + If the operation targets a data stream, this is the backing index into which the document was written. type: string status: description: HTTP status code returned for the operation. - type: number + type: integer + format: int32 error: $ref: '_common.yaml#/components/schemas/ErrorCause' _primary_term: description: The primary term assigned to the document for the operation. - type: number + type: integer + format: int64 result: description: |- Result of the operation. diff --git a/spec/schemas/_core.explain.yaml b/spec/schemas/_core.explain.yaml index c0821a79b..e7acc514b 100644 --- a/spec/schemas/_core.explain.yaml +++ b/spec/schemas/_core.explain.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.explain category - description: Schemas of _core.explain category + title: Schemas of `_core.explain` Category + description: Schemas of `_core.explain` category. version: 1.0.0 paths: {} components: @@ -16,7 +16,15 @@ components: items: $ref: '#/components/schemas/ExplanationDetail' value: - type: number + oneOf: + - type: integer + format: int32 + - type: integer + format: int64 + - type: number + format: float + - type: number + format: double required: - description - details @@ -31,7 +39,15 @@ components: items: $ref: '#/components/schemas/ExplanationDetail' value: - type: number + anyOf: + - type: integer + format: int32 + - type: integer + format: int64 + - type: number + format: float + - type: number + format: double required: - description - value diff --git a/spec/schemas/_core.field_caps.yaml b/spec/schemas/_core.field_caps.yaml index f4cf82d15..3a0d4a589 100644 --- a/spec/schemas/_core.field_caps.yaml +++ b/spec/schemas/_core.field_caps.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.field_caps category - description: Schemas of _core.field_caps category + title: Schemas of `_core.field_caps` Category + description: Schemas of `_core.field_caps` category. version: 1.0.0 paths: {} components: @@ -10,7 +10,7 @@ components: type: object properties: aggregatable: - description: Whether this field can be aggregated on all indices. + description: Whether this field can be aggregated on all indexes. type: boolean indices: $ref: '_common.yaml#/components/schemas/Indices' @@ -21,32 +21,13 @@ components: non_searchable_indices: $ref: '_common.yaml#/components/schemas/Indices' searchable: - description: Whether this field is indexed for search on all indices. + description: Whether this field is indexed for search on all indexes. type: boolean type: type: string metadata_field: description: Whether this field is registered as a metadata field. type: boolean - time_series_dimension: - description: Whether this field is used as a time series dimension. - type: boolean - time_series_metric: - $ref: '_common.mapping.yaml#/components/schemas/TimeSeriesMetricType' - non_dimension_indices: - description: |- - If this list is present in response then some indices have the - field marked as a dimension and other indices, the ones in this list, do not. - type: array - items: - $ref: '_common.yaml#/components/schemas/IndexName' - metric_conflicts_indices: - description: |- - The list of indices where this field is present if these indices - don't have the same `time_series_metric` value for this field. - type: array - items: - $ref: '_common.yaml#/components/schemas/IndexName' required: - aggregatable - searchable diff --git a/spec/schemas/_core.get.yaml b/spec/schemas/_core.get.yaml index 42f70ce2a..616b6f42f 100644 --- a/spec/schemas/_core.get.yaml +++ b/spec/schemas/_core.get.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.get category - description: Schemas of _core.get category + title: Schemas of `_core.get` Category + description: Schemas of `_core.get` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/_core.get_script_context.yaml b/spec/schemas/_core.get_script_context.yaml index c71c99689..f59ae4cb2 100644 --- a/spec/schemas/_core.get_script_context.yaml +++ b/spec/schemas/_core.get_script_context.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.get_script_context category - description: Schemas of _core.get_script_context category + title: Schemas of `_core.get_script_context` Category + description: Schemas of `_core.get_script_context` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/_core.get_script_languages.yaml b/spec/schemas/_core.get_script_languages.yaml index 698c2490e..752c5ee9e 100644 --- a/spec/schemas/_core.get_script_languages.yaml +++ b/spec/schemas/_core.get_script_languages.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.get_script_languages category - description: Schemas of _core.get_script_languages category + title: Schemas of `_core.get_script_languages` Category + description: Schemas of `_core.get_script_languages` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/_core.mget.yaml b/spec/schemas/_core.mget.yaml index b75afa420..5543e9adb 100644 --- a/spec/schemas/_core.mget.yaml +++ b/spec/schemas/_core.mget.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.mget category - description: Schemas of _core.mget category + title: Schemas of `_core.mget` Category + description: Schemas of `_core.mget` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/_core.msearch.yaml b/spec/schemas/_core.msearch.yaml index 06c256943..f6a370454 100644 --- a/spec/schemas/_core.msearch.yaml +++ b/spec/schemas/_core.msearch.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.msearch category - description: Schemas of _core.msearch category + title: Schemas of `_core.msearch` Category + description: Schemas of `_core.msearch` category. version: 1.0.0 paths: {} components: @@ -47,10 +47,10 @@ components: query: $ref: '_common.query_dsl.yaml#/components/schemas/QueryContainer' explain: - description: If true, returns detailed information about score computation as part of a hit. + description: When `true`, returns detailed information about score computation as part of a hit. type: boolean ext: - description: Configuration of search extensions defined by OpenSearch plugins. + description: The configuration of search extensions defined by OpenSearch plugins. type: object additionalProperties: type: object @@ -58,13 +58,13 @@ components: $ref: '_common.yaml#/components/schemas/Fields' docvalue_fields: description: |- - Array of wildcard (*) patterns. The request returns doc values for field - names matching these patterns in the hits.fields property of the response. + An array of wildcard (*) patterns. The request returns document values for field + names matching these patterns in the `hits.fields` property of the response. type: array items: $ref: '_common.query_dsl.yaml#/components/schemas/FieldAndFormat' knn: - description: Defines the approximate kNN search to run. + description: Defines the approximate k-NN search to run. oneOf: - $ref: '_common.query_dsl.yaml#/components/schemas/KnnQuery' - type: array @@ -72,14 +72,14 @@ components: $ref: '_common.query_dsl.yaml#/components/schemas/KnnQuery' from: description: |- - Starting document offset. By default, you cannot page through more than 10,000 - hits using the from and size parameters. To page through more hits, use the - search_after parameter. + The starting document offset. By default, you cannot page through more than 10,000 + hits using the `from` and `size` parameters. To page through more than 10,000 hits, use the + `search_after` parameter. type: number highlight: $ref: '_core.search.yaml#/components/schemas/Highlight' indices_boost: - description: Boosts the _score of documents from specified indices. + description: Boosts the `_score` of documents from the specified indexes. type: array items: type: object @@ -87,8 +87,8 @@ components: type: number min_score: description: |- - Minimum _score for matching documents. Documents with a lower _score are - not included in the search results. + The minimum `_score` for document matching. Documents with a lower `_score` than the minimum + are not included in the search results. type: number post_filter: $ref: '_common.query_dsl.yaml#/components/schemas/QueryContainer' @@ -101,7 +101,7 @@ components: items: $ref: '_core.search.yaml#/components/schemas/Rescore' script_fields: - description: Retrieve a script evaluation (based on different fields) for each hit. + description: Retrieves a script evaluation (based on different fields) for each hit. type: object additionalProperties: $ref: '_common.yaml#/components/schemas/ScriptField' @@ -110,8 +110,8 @@ components: size: description: |- The number of hits to return. By default, you cannot page through more - than 10,000 hits using the from and size parameters. To page through more - hits, use the search_after parameter. + than 10,000 hits using the `from` and `size` parameters. To page through more + hits, use the `search_after` parameter. type: number sort: $ref: '_common.yaml#/components/schemas/Sort' @@ -119,22 +119,22 @@ components: $ref: '_core.search.yaml#/components/schemas/SourceConfig' fields: description: |- - Array of wildcard (*) patterns. The request returns values for field names - matching these patterns in the hits.fields property of the response. + An array of wildcard (*) patterns. The request returns values for field names + matching these patterns in the `hits.fields` property of the response. type: array items: $ref: '_common.query_dsl.yaml#/components/schemas/FieldAndFormat' terminate_after: description: |- - Maximum number of documents to collect for each shard. If a query reaches this - limit, OpenSearch terminates the query early. OpenSearch collects documents - before sorting. Defaults to 0, which does not terminate query execution early. + The maximum number of documents to collect for each shard. If a query reaches this + limit, OpenSearch stops the query early. OpenSearch collects documents + before sorting. Default is `0`, which does not terminate query execution early. type: number stats: description: |- - Stats groups to associate with the search. Each group maintains a statistics - aggregation for its associated searches. You can retrieve these stats using - the indices stats API. + The statistics groups to associate with the search. Each group maintains a statistics + aggregation for its associated searches. You can retrieve these statistics using + the Index Stats API. type: array items: type: string @@ -142,21 +142,19 @@ components: description: |- Specifies the period of time to wait for a response from each shard. If no response is received before the timeout expires, the request fails and returns an error. - Defaults to no timeout. + Default is no timeout. type: string track_scores: - description: If true, calculate and return document scores, even if the scores are not used for sorting. + description: When `true`, calculates and returns all document scores, even if the scores are not used for sorting. type: boolean track_total_hits: $ref: '_core.search.yaml#/components/schemas/TrackHits' version: - description: If true, returns document version as part of a hit. + description: When `true`, returns the document version as part of the hit. type: boolean - runtime_mappings: - $ref: '_common.mapping.yaml#/components/schemas/RuntimeFields' seq_no_primary_term: description: |- - If true, returns sequence number and primary term of the last modification + When `true`, returns the sequence number and primary term of the last modification. of each hit. See Optimistic concurrency control. type: boolean pit: diff --git a/spec/schemas/_core.msearch_template.yaml b/spec/schemas/_core.msearch_template.yaml index 23a050708..f9e164e84 100644 --- a/spec/schemas/_core.msearch_template.yaml +++ b/spec/schemas/_core.msearch_template.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.msearch_template category - description: Schemas of _core.msearch_template category + title: Schemas of `_core.msearch_template` Category + description: Schemas of `_core.msearch_template` category. version: 1.0.0 paths: {} components: @@ -14,24 +14,24 @@ components: type: object properties: explain: - description: If `true`, returns detailed information about score calculation as part of each hit. + description: When `true`, returns detailed information about score calculation as part of each hit. type: boolean id: $ref: '_common.yaml#/components/schemas/Id' params: description: |- - Key-value pairs used to replace Mustache variables in the template. + The key-value pairs used to replace Mustache variables in the template. The key is the variable name. The value is the variable value. type: object additionalProperties: type: object profile: - description: If `true`, the query execution is profiled. + description: When `true`, provides a profile for the query execution. type: boolean source: description: |- - An inline search template. Supports the same parameters as the search API's - request body. Also supports Mustache variables. If no id is specified, this + An inline search template that supports the same parameters as the Search API + request body and Mustache variables. If no `id` is specified, this parameter is required. type: string diff --git a/spec/schemas/_core.mtermvectors.yaml b/spec/schemas/_core.mtermvectors.yaml index bed09977d..deae8eda6 100644 --- a/spec/schemas/_core.mtermvectors.yaml +++ b/spec/schemas/_core.mtermvectors.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.mtermvectors category - description: Schemas of _core.mtermvectors category + title: Schemas of `_core.mtermvectors` Category + description: Schemas of `_core.mtermvectors` category. version: 1.0.0 paths: {} components: @@ -14,28 +14,28 @@ components: _index: $ref: '_common.yaml#/components/schemas/IndexName' doc: - description: An artificial document (a document not present in the index) for which you want to retrieve term vectors. + description: An artificial document for which you want to retrieve term vectors. type: object fields: $ref: '_common.yaml#/components/schemas/Fields' field_statistics: - description: If `true`, the response includes the document count, sum of document frequencies, and sum of total term frequencies. + description: When `true`, the response includes the document count, the sum of the document frequencies, and the sum of the term frequencies. type: boolean filter: $ref: '_core.termvectors.yaml#/components/schemas/Filter' offsets: - description: If `true`, the response includes term offsets. + description: When `true`, the response includes the term offsets. type: boolean payloads: - description: If `true`, the response includes term payloads. + description: When `true`, the response includes the term payloads. type: boolean positions: - description: If `true`, the response includes term positions. + description: When `true`, the response includes the term positions. type: boolean routing: $ref: '_common.yaml#/components/schemas/Routing' term_statistics: - description: If true, the response includes term frequency and document frequency. + description: When `true`, the response includes the term frequency and the document frequency. type: boolean version: $ref: '_common.yaml#/components/schemas/VersionNumber' diff --git a/spec/schemas/_core.rank_eval.yaml b/spec/schemas/_core.rank_eval.yaml index 4527f0c05..872689551 100644 --- a/spec/schemas/_core.rank_eval.yaml +++ b/spec/schemas/_core.rank_eval.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.rank_eval category - description: Schemas of _core.rank_eval category + title: Schemas of `_core.rank_eval` Category + description: Schemas of `_core.rank_eval` category. version: 1.0.0 paths: {} components: @@ -14,14 +14,14 @@ components: request: $ref: '#/components/schemas/RankEvalQuery' ratings: - description: List of document ratings + description: A list of document ratings. type: array items: $ref: '#/components/schemas/DocumentRating' template_id: $ref: '_common.yaml#/components/schemas/Id' params: - description: The search template parameters. + description: The search template parameters. type: object additionalProperties: type: object @@ -45,7 +45,7 @@ components: _index: $ref: '_common.yaml#/components/schemas/IndexName' rating: - description: The document's relevance with regard to this search request. + description: The document's relevance with regard to the specified search request. type: number required: - _id @@ -70,7 +70,7 @@ components: - type: object properties: ignore_unlabeled: - description: Controls how unlabeled documents in the search results are counted. If set to true, unlabeled documents are ignored and neither count as relevant or irrelevant. Set to false (the default), they are treated as irrelevant. + description: Controls how unlabeled documents in the search results are counted. When `true`, unlabeled documents are ignored and are not treated as relevant or irrelevant. When `false`, unlabeled documents are treated as irrelevant. type: boolean RankEvalMetricRatingThreshold: allOf: @@ -78,13 +78,13 @@ components: - type: object properties: relevant_rating_threshold: - description: Sets the rating threshold above which documents are considered to be "relevant". + description: Sets the rating threshold above which documents are considered to be relevant. type: number RankEvalMetricBase: type: object properties: k: - description: Sets the maximum number of documents retrieved per query. This value will act in place of the usual size parameter in the query. + description: Sets the maximum number of documents retrieved per query. This value replaces the `size` parameter in the query. type: number RankEvalMetricRecall: allOf: @@ -100,7 +100,7 @@ components: - type: object properties: normalize: - description: If set to true, this metric will calculate the Normalized DCG (https://en.wikipedia.org/wiki/Discounted_cumulative_gain#Normalized_DCG). + description: When `true`, calculates the [normalized discounted cumulative gain (nDCG)](https://en.wikipedia.org/wiki/Discounted_cumulative_gain#Normalized_DCG). type: boolean RankEvalMetricExpectedReciprocalRank: allOf: @@ -108,7 +108,7 @@ components: - type: object properties: maximum_relevance: - description: The highest relevance grade used in the user-supplied relevance judgments. + description: The highest relevance grade used in user-supplied relevance judgments. type: number required: - maximum_relevance @@ -116,20 +116,20 @@ components: type: object properties: metric_score: - description: The metric_score in the details section shows the contribution of this query to the global quality metric score + description: The `metric_score`, found in the `metric_details` section, shows the contribution of this query to the global quality metric score. type: number unrated_docs: - description: The unrated_docs section contains an _index and _id entry for each document in the search result for this query that didn't have a ratings value. This can be used to ask the user to supply ratings for these documents + description: The `unrated_docs` section contains an `_index` and `_id` entry for each document that didn't have a `ratings` value. This can be used to ask the user to supply ratings for these documents. type: array items: $ref: '#/components/schemas/UnratedDocument' hits: - description: The hits section shows a grouping of the search results with their supplied ratings + description: The `hits` section provides a grouping of the search results with their supplied ratings. type: array items: $ref: '#/components/schemas/RankEvalHitItem' metric_details: - description: The metric_details give additional information about the calculated quality metric (e.g. how many of the retrieved documents were relevant). The content varies for each metric but allows for better interpretation of the results + description: The `metric_details` section provides additional information about the calculated quality metric indicating the number of relevant retrieved documents. The content varies for each metric but allows for better interpretation of the results. type: object additionalProperties: type: object diff --git a/spec/schemas/_core.reindex.yaml b/spec/schemas/_core.reindex.yaml index 481f192ec..34fdbe13e 100644 --- a/spec/schemas/_core.reindex.yaml +++ b/spec/schemas/_core.reindex.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.reindex category - description: Schemas of _core.reindex category + title: Schemas of `_core.reindex` Category + description: Schemas of `_core.reindex` category. version: 1.0.0 paths: {} components: @@ -34,7 +34,7 @@ components: size: description: |- The number of documents to index per batch. - Use when indexing from remote to ensure that the batches fit within the on-heap buffer, which defaults to a maximum size of 100 MB. + Use the `size` setting when indexing from a remote cluster. This ensures that batches fit in the on-heap buffer. The buffer defaults to a maximum size of `100MB`. type: number slice: $ref: '_common.yaml#/components/schemas/SlicedScroll' @@ -42,8 +42,6 @@ components: $ref: '_common.yaml#/components/schemas/Sort' _source: $ref: '_common.yaml#/components/schemas/Fields' - runtime_mappings: - $ref: '_common.mapping.yaml#/components/schemas/RuntimeFields' required: - index RemoteSource: diff --git a/spec/schemas/_core.reindex_rethrottle.yaml b/spec/schemas/_core.reindex_rethrottle.yaml index 1fadb4aa0..877dc024c 100644 --- a/spec/schemas/_core.reindex_rethrottle.yaml +++ b/spec/schemas/_core.reindex_rethrottle.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.reindex_rethrottle category - description: Schemas of _core.reindex_rethrottle category + title: Schemas of `_core.reindex_rethrottle` Category + description: Schemas of `_core.reindex_rethrottle` category. version: 1.0.0 paths: {} components: @@ -55,7 +55,7 @@ components: type: object properties: batches: - description: The number of scroll responses pulled back by the reindex. + description: The number of scroll responses shown by the reindex. type: number created: description: The number of documents that were successfully created. @@ -64,10 +64,10 @@ components: description: The number of documents that were successfully deleted. type: number noops: - description: The number of documents that were ignored because the script used for the reindex returned a `noop` value for `ctx.op`. + description: The number of documents that were ignored because the script used for the reindex operation returned a `noop` value for `ctx.op`. type: number requests_per_second: - description: The number of requests per second effectively executed during the reindex. + description: The number of successful requests per second during the reindex operation. type: number retries: $ref: '_common.yaml#/components/schemas/Retries' @@ -83,7 +83,7 @@ components: description: The number of documents that were successfully processed. type: number updated: - description: The number of documents that were successfully updated, for example, a document with same ID already existed prior to reindex updating it. + description: The number of documents that were successfully updated. type: number version_conflicts: description: The number of version conflicts that reindex hits. diff --git a/spec/schemas/_core.scripts_painless_execute.yaml b/spec/schemas/_core.scripts_painless_execute.yaml index 5997842ff..a913914a0 100644 --- a/spec/schemas/_core.scripts_painless_execute.yaml +++ b/spec/schemas/_core.scripts_painless_execute.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.scripts_painless_execute category - description: Schemas of _core.scripts_painless_execute category + title: Schemas of `_core.scripts_painless_execute` Category + description: Schemas of `_core.scripts_painless_execute` category. version: 1.0.0 paths: {} components: @@ -10,7 +10,7 @@ components: type: object properties: document: - description: Document that's temporarily indexed in-memory and accessible from the script. + description: A document temporarily indexed in-memory and accessible from the Painless script. type: object index: $ref: '_common.yaml#/components/schemas/IndexName' diff --git a/spec/schemas/_core.search.yaml b/spec/schemas/_core.search.yaml index 87a2e01ef..29c753ed8 100644 --- a/spec/schemas/_core.search.yaml +++ b/spec/schemas/_core.search.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.search category - description: Schemas of _core.search category + title: Schemas of `_core.search` Category + description: Schemas of `_core.search` category. version: 1.0.0 paths: {} components: @@ -10,10 +10,11 @@ components: type: object properties: total: - description: Total hit count information, present only if `track_total_hits` wasn't `false` in the search request. + description: The total number of hits, present only if `track_total_hits` is not set to `false` in the search request. oneOf: - $ref: '#/components/schemas/TotalHits' - - type: number + - type: integer + format: int64 hits: type: array items: @@ -28,7 +29,8 @@ components: relation: $ref: '#/components/schemas/TotalHitsRelation' value: - type: number + type: integer + format: int64 required: - relation - value @@ -91,7 +93,8 @@ components: _seq_no: $ref: '_common.yaml#/components/schemas/SequenceNumber' _primary_term: - type: number + type: integer + format: int64 _version: $ref: '_common.yaml#/components/schemas/VersionNumber' sort: @@ -112,7 +115,8 @@ components: field: $ref: '_common.yaml#/components/schemas/Field' offset: - type: number + type: integer + format: int32 _nested: $ref: '#/components/schemas/NestedIdentity' required: @@ -172,29 +176,41 @@ components: type: object properties: build_aggregation: - type: number + type: integer + format: int64 build_aggregation_count: - type: number + type: integer + format: int64 build_leaf_collector: - type: number + type: integer + format: int64 build_leaf_collector_count: - type: number + type: integer + format: int64 collect: - type: number + type: integer + format: int64 collect_count: - type: number + type: integer + format: int64 initialize: - type: number + type: integer + format: int64 initialize_count: - type: number + type: integer + format: int64 post_collection: - type: number + type: integer + format: int64 post_collection_count: - type: number + type: integer + format: int64 reduce: - type: number + type: integer + format: int64 reduce_count: - type: number + type: integer + format: int64 required: - build_aggregation - build_aggregation_count @@ -210,15 +226,19 @@ components: type: object properties: segments_with_multi_valued_ords: - type: number + type: integer + format: int32 collection_strategy: type: string segments_with_single_valued_ords: - type: number + type: integer + format: int32 total_buckets: - type: number + type: integer + format: int32 built_buckets: - type: number + type: integer + format: int32 result_strategy: type: string has_filter: @@ -228,58 +248,76 @@ components: delegate_debug: $ref: '#/components/schemas/AggregationProfileDebug' chars_fetched: - type: number + type: integer + format: int32 extract_count: - type: number + type: integer + format: int32 extract_ns: - type: number + type: integer + format: int32 values_fetched: - type: number + type: integer + format: int32 collect_analyzed_ns: - type: number + type: integer + format: int32 collect_analyzed_count: - type: number + type: integer + format: int32 surviving_buckets: - type: number + type: integer + format: int32 ordinals_collectors_used: - type: number + type: integer + format: int32 ordinals_collectors_overhead_too_high: - type: number + type: integer + format: int32 string_hashing_collectors_used: - type: number + type: integer + format: int32 numeric_collectors_used: - type: number + type: integer + format: int32 empty_collectors_used: - type: number + type: integer + format: int32 deferred_aggregators: type: array items: type: string segments_with_doc_count_field: - type: number + type: integer + format: int32 segments_with_deleted_docs: - type: number + type: integer + format: int32 filters: type: array items: $ref: '#/components/schemas/AggregationProfileDelegateDebugFilter' segments_counted: - type: number + type: integer + format: int32 segments_collected: - type: number + type: integer + format: int32 map_reducer: type: string AggregationProfileDelegateDebugFilter: type: object properties: results_from_metadata: - type: number + type: integer + format: int32 query: type: string specialized_for: type: string segments_counted_in_constant_time: - type: number + type: integer + format: int32 SearchProfile: type: object properties: @@ -292,7 +330,8 @@ components: items: $ref: '#/components/schemas/QueryProfile' rewrite_time: - type: number + type: integer + format: int64 required: - collector - query @@ -338,41 +377,59 @@ components: type: object properties: advance: - type: number + type: integer + format: int64 advance_count: - type: number + type: integer + format: int64 build_scorer: - type: number + type: integer + format: int64 build_scorer_count: - type: number + type: integer + format: int64 create_weight: - type: number + type: integer + format: int64 create_weight_count: - type: number + type: integer + format: int64 match: - type: number + type: integer + format: int64 match_count: - type: number + type: integer + format: int64 shallow_advance: - type: number + type: integer + format: int64 shallow_advance_count: - type: number + type: integer + format: int64 next_doc: - type: number + type: integer + format: int64 next_doc_count: - type: number + type: integer + format: int64 score: - type: number + type: integer + format: int64 score_count: - type: number + type: integer + format: int64 compute_max_score: - type: number + type: integer + format: int64 compute_max_score_count: - type: number + type: integer + format: int64 set_min_competitive_score: - type: number + type: integer + format: int64 set_min_competitive_score_count: - type: number + type: integer + format: int64 required: - advance - advance_count @@ -422,17 +479,23 @@ components: load_source_count: type: number load_stored_fields: - type: number + type: integer + format: int32 load_stored_fields_count: - type: number + type: integer + format: int32 next_reader: - type: number + type: integer + format: int32 next_reader_count: - type: number + type: integer + format: int32 process_count: - type: number + type: integer + format: int32 process: - type: number + type: integer + format: int32 FetchProfileDebug: type: object properties: @@ -441,7 +504,8 @@ components: items: type: string fast_path: - type: number + type: integer + format: int32 Suggest: oneOf: - $ref: '#/components/schemas/CompletionSuggest' @@ -483,12 +547,14 @@ components: $ref: '_common.yaml#/components/schemas/Routing' _score: type: number + format: float _source: type: object text: type: string score: type: number + format: float required: - text Context: @@ -500,9 +566,11 @@ components: type: object properties: length: - type: number + type: integer + format: int32 offset: - type: number + type: integer + format: int32 text: type: string required: @@ -529,6 +597,7 @@ components: type: string score: type: number + format: float highlighted: type: string collate_match: @@ -556,8 +625,10 @@ components: type: string score: type: number + format: float freq: type: number + format: double highlighted: type: string collate_match: @@ -568,17 +639,18 @@ components: - text TrackHits: description: |- - Number of hits matching the query to count accurately. If true, the exact - number of hits is returned at the cost of some performance. If false, the + The number of hits matching the query. When `true`, the exact + number of hits is returned at the cost of some performance. When `false`, the response does not include the total number of hits matching the query. - Defaults to 10,000 hits. + Default is `10,000` hits. oneOf: - type: boolean - - type: number + - type: integer + format: int32 SourceConfigParam: description: |- Defines how to fetch a source. Fetching can be disabled entirely, or the source can be filtered. - Used as a query parameter along with the `_source_includes` and `_source_excludes` parameters. + Use this setting with the `_source_includes` and `_source_excludes` parameters. oneOf: - type: boolean - $ref: '_common.yaml#/components/schemas/Fields' @@ -589,10 +661,12 @@ components: $ref: '_common.yaml#/components/schemas/Name' size: description: The maximum number of hits to return per `inner_hits`. - type: number + type: integer + format: int32 from: - description: Inner hit starting document offset. - type: number + description: The inner hit that initiates document offset. + type: integer + format: int32 collapse: $ref: '#/components/schemas/FieldCollapse' docvalue_fields: @@ -629,17 +703,15 @@ components: field: $ref: '_common.yaml#/components/schemas/Field' inner_hits: - description: The number of inner hits and their sort order + description: The number of inner hits and their sort order. oneOf: - $ref: '#/components/schemas/InnerHits' - type: array items: $ref: '#/components/schemas/InnerHits' max_concurrent_group_searches: - description: The number of concurrent requests allowed to retrieve the inner_hits per group - type: number - collapse: - $ref: '#/components/schemas/FieldCollapse' + description: The number of concurrent requests that are allowed to be retrieved by the `inner_hits` parameter per group. + type: integer required: - field Highlight: @@ -666,7 +738,8 @@ components: - type: object properties: fragment_offset: - type: number + type: integer + format: int32 matched_fields: $ref: '_common.yaml#/components/schemas/Fields' analyzer: @@ -681,13 +754,14 @@ components: type: string boundary_max_scan: description: How far to scan for boundary characters. - type: number + type: integer + format: int32 boundary_scanner: $ref: '#/components/schemas/BoundaryScanner' boundary_scanner_locale: description: |- Controls which locale is used to search for sentence and word boundaries. - This parameter takes a form of a language tag, for example: `"en-US"`, `"fr-FR"`, `"ja-JP"`. + This parameter takes the form of a language tag, for example, `"en-US"`, `"fr-FR"`, or `"ja-JP"`. type: string force_source: deprecated: true @@ -696,30 +770,35 @@ components: $ref: '#/components/schemas/HighlighterFragmenter' fragment_size: description: The size of the highlighted fragment in characters. - type: number + type: integer + format: int32 highlight_filter: type: boolean highlight_query: $ref: '_common.query_dsl.yaml#/components/schemas/QueryContainer' max_fragment_length: - type: number + type: integer + format: int32 max_analyzed_offset: description: |- If set to a non-negative value, highlighting stops at this defined maximum limit. - The rest of the text is not processed, thus not highlighted and no error is returned - The `max_analyzed_offset` query setting does not override the `index.highlight.max_analyzed_offset` setting, which prevails when it's set to lower value than the query setting. - type: number + The rest of the text is not processed or highlighted, and no error is returned. + The `max_analyzed_offset` query setting does not override the `index.highlight.max_analyzed_offset` setting, which takes precedence when it is set to a lower value than the query setting. + type: integer + format: int32 no_match_size: description: The amount of text you want to return from the beginning of the field if there are no matching fragments to highlight. - type: number + type: integer + format: int32 number_of_fragments: description: |- The maximum number of fragments to return. - If the number of fragments is set to `0`, no fragments are returned. - Instead, the entire field contents are highlighted and returned. - This can be handy when you need to highlight short texts such as a title or address, but fragmentation is not required. - If `number_of_fragments` is `0`, `fragment_size` is ignored. - type: number + When the number of fragments is set to `0`, no fragments are returned. + Instead, the entirety of a field's contents are highlighted and returned. + This is useful when you need to highlight short texts, such as a title or address, in which fragmentation is not required. + If `number_of_fragments` is set to `0`, the `fragment_size` is ignored. + type: integer + format: int32 options: type: object additionalProperties: @@ -729,20 +808,21 @@ components: phrase_limit: description: |- Controls the number of matching phrases in a document that are considered. - Prevents the `fvh` highlighter from analyzing too many phrases and consuming too much memory. - When using `matched_fields`, `phrase_limit` phrases per matched field are considered. Raising the limit increases query time and consumes more memory. - Only supported by the `fvh` highlighter. - type: number + This prevents the `fvh` highlighter from analyzing too many phrases and consuming too much memory. + When using `matched_fields`, phrase-limited phrases per matched field are considered. Raising the limit increases the query time and consumes more memory. + This setting is only supported by the `fvh` highlighter. + type: integer + format: int32 post_tags: description: |- - Use in conjunction with `pre_tags` to define the HTML tags to use for the highlighted text. + When used in conjunction with `pre_tags`, defines the HTML tags to use for the highlighted text. By default, highlighted text is wrapped in `` and `` tags. type: array items: type: string pre_tags: description: |- - Use in conjunction with `post_tags` to define the HTML tags to use for the highlighted text. + When used in conjunction with `post_tags`, defines the HTML tags to use for the highlighted text. By default, highlighted text is wrapped in `` and `` tags. type: array items: @@ -755,6 +835,12 @@ components: tags_schema: $ref: '#/components/schemas/HighlighterTagsSchema' HighlighterType: + oneOf: + - title: builtin + $ref: '#/components/schemas/BuiltinHighlighterType' + - title: custom + type: string + BuiltinHighlighterType: type: string enum: - fvh @@ -782,11 +868,14 @@ components: SourceConfig: description: Defines how to fetch a source. Fetching can be disabled entirely, or the source can be filtered. oneOf: - - type: boolean - - type: array + - title: fetch + type: boolean + - title: includes + type: array items: - $ref: '_common.yaml#/components/schemas/Field' - - $ref: '#/components/schemas/SourceFilter' + $ref: '_common.yaml#/components/schemas/Field' + - title: filter + $ref: '#/components/schemas/SourceFilter' SourceFilter: type: object properties: @@ -800,7 +889,8 @@ components: query: $ref: '#/components/schemas/RescoreQuery' window_size: - type: number + type: integer + format: int32 required: - query RescoreQuery: @@ -809,11 +899,13 @@ components: rescore_query: $ref: '_common.query_dsl.yaml#/components/schemas/QueryContainer' query_weight: - description: Relative importance of the original query versus the rescore query. + description: The relative importance of the original query as compared to the rescore query. type: number + format: float rescore_query_weight: - description: Relative importance of the rescore query versus the original query. + description: The relative importance of the rescore query as compared to the original query. type: number + format: float score_mode: $ref: '#/components/schemas/ScoreMode' required: @@ -830,7 +922,7 @@ components: type: object properties: text: - description: Global suggest text, to avoid repetition when the same text is used in several suggesters + description: The global suggest text, which avoids repetition when the same text is used in several suggesters. type: string PointInTimeReference: type: object @@ -845,7 +937,8 @@ components: type: object properties: took: - type: number + type: integer + format: int64 timed_out: type: boolean _shards: @@ -867,8 +960,10 @@ components: type: object max_score: type: number + format: float num_reduce_phases: - type: number + type: integer + format: int32 profile: $ref: '#/components/schemas/Profile' pit_id: diff --git a/spec/schemas/_core.search_shards.yaml b/spec/schemas/_core.search_shards.yaml index ad83a3f18..33a85d3f8 100644 --- a/spec/schemas/_core.search_shards.yaml +++ b/spec/schemas/_core.search_shards.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.search_shards category - description: Schemas of _core.search_shards category + title: Schemas of `_core.search_shards` Category + description: Schemas of `_core.search_shards` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/_core.termvectors.yaml b/spec/schemas/_core.termvectors.yaml index 7cca65878..1b6d0a8c8 100644 --- a/spec/schemas/_core.termvectors.yaml +++ b/spec/schemas/_core.termvectors.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.termvectors category - description: Schemas of _core.termvectors category + title: Schemas of `_core.termvectors` Category + description: Schemas of `_core.termvectors` category. version: 1.0.0 paths: {} components: @@ -11,21 +11,22 @@ components: properties: max_doc_freq: description: |- - Ignore words which occur in more than this many docs. - Defaults to unbounded. + Ignores words that appear in more than the specified number of documents. + Default is `unbounded`. type: number max_num_terms: - description: Maximum number of terms that must be returned per field. + description: The maximum number of terms that should be returned per field. type: number max_term_freq: description: |- Ignore words with more than this frequency in the source doc. - Defaults to unbounded. + Default is `unbounded`. type: number max_word_length: description: |- - The maximum word length above which words will be ignored. - Defaults to unbounded. + The maximum word length. + Words longer than this value will be ignored. + Default is `unbounded`. type: number min_doc_freq: description: Ignore terms which do not occur in at least this many docs. @@ -34,7 +35,10 @@ components: description: Ignore words with less than this frequency in the source doc. type: number min_word_length: - description: The minimum word length below which words will be ignored. + description: |- + The minimum word length. + Words shorter than this value will be ignored. + Default is 0. type: number TermVector: type: object diff --git a/spec/schemas/_core.update.yaml b/spec/schemas/_core.update.yaml index f6a346c7e..6e6fc1436 100644 --- a/spec/schemas/_core.update.yaml +++ b/spec/schemas/_core.update.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.update category - description: Schemas of _core.update category + title: Schemas of `_core.update` Category + description: Schemas of `_core.update` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/_core.update_by_query_rethrottle.yaml b/spec/schemas/_core.update_by_query_rethrottle.yaml index c91fc4c57..f30fbf125 100644 --- a/spec/schemas/_core.update_by_query_rethrottle.yaml +++ b/spec/schemas/_core.update_by_query_rethrottle.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _core.update_by_query_rethrottle category - description: Schemas of _core.update_by_query_rethrottle category + title: Schemas of `_core.update_by_query_rethrottle` Category + description: Schemas of `_core.update_by_query_rethrottle` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/asynchronous_search._common.yaml b/spec/schemas/asynchronous_search._common.yaml index 17765d9f0..dea304c3f 100644 --- a/spec/schemas/asynchronous_search._common.yaml +++ b/spec/schemas/asynchronous_search._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of asynchronous_search._common category - description: Schemas of asynchronous_search._common category + title: Schemas of `asynchronous_search._common` Category + description: Schemas of `asynchronous_search._common` category. version: 1.0.0 paths: {} components: @@ -48,7 +48,7 @@ components: collapse: $ref: '_core.search.yaml#/components/schemas/FieldCollapse' explain: - description: If true, returns detailed information about score computation as part of a hit. + description: If `true`, returns detailed information about score computation as part of a hit. type: boolean ext: description: Configuration of search extensions defined by OpenSearch plugins. @@ -67,7 +67,7 @@ components: track_total_hits: $ref: '_core.search.yaml#/components/schemas/TrackHits' indices_boost: - description: Boosts the _score of documents from specified indices. + description: Boosts the `_score` of documents from specified indexes. type: array items: type: object @@ -132,9 +132,10 @@ components: Use with caution. OpenSearch applies this parameter to each shard handling the request. When possible, let OpenSearch perform early termination automatically. - Avoid specifying this parameter for requests that target data streams with backing indices across multiple data tiers. + Avoid specifying this parameter for requests that target data streams with backing indexes across multiple data tiers. If set to `0` (default), the query does not terminate early. - type: number + type: integer + format: int32 timeout: description: |- Specifies the period of time to wait for a response from each shard. @@ -142,10 +143,10 @@ components: Defaults to no timeout. type: string track_scores: - description: If true, calculate and return document scores, even if the scores are not used for sorting. + description: If `true`, calculate and return document scores, even if the scores are not used for sorting. type: boolean version: - description: If true, returns document version as part of a hit. + description: If `true`, returns document version as part of a hit. type: boolean seq_no_primary_term: description: If `true`, returns sequence number and primary term of the last modification of each hit. @@ -154,13 +155,11 @@ components: $ref: '_common.yaml#/components/schemas/Fields' pit: $ref: '_core.search.yaml#/components/schemas/PointInTimeReference' - runtime_mappings: - $ref: '_common.mapping.yaml#/components/schemas/RuntimeFields' stats: description: |- Stats groups to associate with the search. Each group maintains a statistics aggregation for its associated searches. - You can retrieve these stats using the indices stats API. + You can retrieve these stats using the indexes stats API. type: array items: type: string diff --git a/spec/schemas/cat._common.yaml b/spec/schemas/cat._common.yaml index 0eeda5f43..0c7df33ca 100644 --- a/spec/schemas/cat._common.yaml +++ b/spec/schemas/cat._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat._common category - description: Schemas of cat._common category + title: Schemas of `cat._common` Category + description: Schemas of `cat._common` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.aliases.yaml b/spec/schemas/cat.aliases.yaml index c8edd85d0..6fb15a7b4 100644 --- a/spec/schemas/cat.aliases.yaml +++ b/spec/schemas/cat.aliases.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.aliases category - description: Schemas of cat.aliases category + title: Schemas of `cat.aliases` Category + description: Schemas of `cat.aliases` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.allocation.yaml b/spec/schemas/cat.allocation.yaml index 6b499fb89..3a6ab6355 100644 --- a/spec/schemas/cat.allocation.yaml +++ b/spec/schemas/cat.allocation.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.allocation category - description: Schemas of cat.allocation category + title: Schemas of `cat.allocation` Category + description: Schemas of `cat.allocation` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.cluster_manager.yaml b/spec/schemas/cat.cluster_manager.yaml index 5b04fc472..c9d93847e 100644 --- a/spec/schemas/cat.cluster_manager.yaml +++ b/spec/schemas/cat.cluster_manager.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.cluster_manager category - description: Schemas of cat.cluster_manager category + title: Schemas of `cat.cluster_manager` Category + description: Schemas of `cat.cluster_manager` category. version: 1.0.0 paths: {} components: @@ -13,10 +13,10 @@ components: description: node id type: string host: - description: host name + description: hostname type: string ip: - description: ip address + description: IP address type: string node: description: node name diff --git a/spec/schemas/cat.count.yaml b/spec/schemas/cat.count.yaml index 97488a627..4d1904166 100644 --- a/spec/schemas/cat.count.yaml +++ b/spec/schemas/cat.count.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.count category - description: Schemas of cat.count category + title: Schemas of `cat.count` Category + description: Schemas of `cat.count` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.fielddata.yaml b/spec/schemas/cat.fielddata.yaml index 94dee473f..bc317db4e 100644 --- a/spec/schemas/cat.fielddata.yaml +++ b/spec/schemas/cat.fielddata.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.fielddata category - description: Schemas of cat.fielddata category + title: Schemas of `cat.fielddata` Category + description: Schemas of `cat.fielddata` category. version: 1.0.0 paths: {} components: @@ -13,10 +13,10 @@ components: description: node id type: string host: - description: host name + description: hostname type: string ip: - description: ip address + description: IP address type: string node: description: node name diff --git a/spec/schemas/cat.health.yaml b/spec/schemas/cat.health.yaml index d0b61ad0d..c73f375eb 100644 --- a/spec/schemas/cat.health.yaml +++ b/spec/schemas/cat.health.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.health category - description: Schemas of cat.health category + title: Schemas of `cat.health` Category + description: Schemas of `cat.health` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.indices.yaml b/spec/schemas/cat.indices.yaml index 803253ad0..2ff16ab12 100644 --- a/spec/schemas/cat.indices.yaml +++ b/spec/schemas/cat.indices.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.indices category - description: Schemas of cat.indices category + title: Schemas of `cat.indices` Category + description: Schemas of `cat.indices` category. version: 1.0.0 paths: {} components: @@ -19,7 +19,7 @@ components: description: index name type: string uuid: - description: index uuid + description: index UUID type: string pri: description: number of primary shards @@ -40,7 +40,7 @@ components: description: index creation date (as string) type: string store.size: - description: store size of primaries & replicas + description: store size of primaries and replicas type: ['null', string] pri.store.size: description: store size of primaries @@ -52,16 +52,16 @@ components: description: size of completion type: ['null', string] fielddata.memory_size: - description: used fielddata cache + description: used field data cache type: ['null', string] pri.fielddata.memory_size: - description: used fielddata cache + description: used field data cache type: ['null', string] fielddata.evictions: - description: fielddata evictions + description: field data evictions type: ['null', string] pri.fielddata.evictions: - description: fielddata evictions + description: field data evictions type: ['null', string] query_cache.memory_size: description: used query cache @@ -380,10 +380,10 @@ components: description: memory used by version map type: ['null', string] segments.fixed_bitset_memory: - description: memory used by fixed bit sets for nested object field types and export type filters for types referred in _parent fields + description: memory used by fixed bit sets for nested object field types and export type filters for types referred in `_parent` fields type: ['null', string] pri.segments.fixed_bitset_memory: - description: memory used by fixed bit sets for nested object field types and export type filters for types referred in _parent fields + description: memory used by fixed bit sets for nested object field types and export type filters for types referred in `_parent` fields type: ['null', string] warmer.current: description: current warmer ops diff --git a/spec/schemas/cat.master.yaml b/spec/schemas/cat.master.yaml index 3dd491d16..a583b8102 100644 --- a/spec/schemas/cat.master.yaml +++ b/spec/schemas/cat.master.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.master category - description: Schemas of cat.master category + title: Schemas of `cat.master` Category + description: Schemas of `cat.master` category. version: 1.0.0 paths: {} components: @@ -13,10 +13,10 @@ components: description: node id type: string host: - description: host name + description: hostname type: string ip: - description: ip address + description: IP address type: string node: description: node name diff --git a/spec/schemas/cat.nodeattrs.yaml b/spec/schemas/cat.nodeattrs.yaml index 81506fc69..aa59f4246 100644 --- a/spec/schemas/cat.nodeattrs.yaml +++ b/spec/schemas/cat.nodeattrs.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.nodeattrs category - description: Schemas of cat.nodeattrs category + title: Schemas of `cat.nodeattrs` Category + description: Schemas of `cat.nodeattrs` category. version: 1.0.0 paths: {} components: @@ -19,7 +19,7 @@ components: description: The process identifier. type: string host: - description: The host name. + description: The hostname. type: string ip: description: The IP address. diff --git a/spec/schemas/cat.nodes.yaml b/spec/schemas/cat.nodes.yaml index 7187d5c14..079452f01 100644 --- a/spec/schemas/cat.nodes.yaml +++ b/spec/schemas/cat.nodes.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.nodes category - description: Schemas of cat.nodes category + title: Schemas of `cat.nodes` Category + description: Schemas of `cat.nodes` category. version: 1.0.0 paths: {} components: @@ -101,21 +101,21 @@ components: type: string master: description: |- - Indicates whether the node is the elected master node. - Returned values include `*`(elected master) and `-`(not elected master). + Indicates whether the node is the elected cluster-manager node. + Returned values include `*`(elected cluster manager) and `-`(not elected cluster manager). type: string x-version-deprecated: '2.0' - x-deprecation-message: To promote inclusive language, use 'cluster_manager' instead. + x-deprecation-message: To promote inclusive language, use `cluster_manager` instead. name: $ref: '_common.yaml#/components/schemas/Name' completion.size: description: The size of completion. type: string fielddata.memory_size: - description: The used fielddata cache. + description: The used field data cache. type: string fielddata.evictions: - description: The fielddata evictions. + description: The field data evictions. type: string query_cache.memory_size: description: The used query cache. @@ -291,7 +291,7 @@ components: description: The memory used by the version map. type: string segments.fixed_bitset_memory: - description: The memory used by fixed bit sets for nested object field types and export type filters for types referred in _parent fields. + description: The memory used by fixed bit sets for nested object field types and export type filters for types referred in `_parent` fields. type: string suggest.current: description: The number of current suggest operations. diff --git a/spec/schemas/cat.pending_tasks.yaml b/spec/schemas/cat.pending_tasks.yaml index 41e982935..86ddffbae 100644 --- a/spec/schemas/cat.pending_tasks.yaml +++ b/spec/schemas/cat.pending_tasks.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.pending_tasks category - description: Schemas of cat.pending_tasks category + title: Schemas of `cat.pending_tasks` Category + description: Schemas of `cat.pending_tasks` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.plugins.yaml b/spec/schemas/cat.plugins.yaml index 3e470dff0..4d64aa9b6 100644 --- a/spec/schemas/cat.plugins.yaml +++ b/spec/schemas/cat.plugins.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.plugins category - description: Schemas of cat.plugins category + title: Schemas of `cat.plugins` Category + description: Schemas of `cat.plugins` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.recovery.yaml b/spec/schemas/cat.recovery.yaml index 947dab27a..f4ab2be99 100644 --- a/spec/schemas/cat.recovery.yaml +++ b/spec/schemas/cat.recovery.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.recovery category - description: Schemas of cat.recovery category + title: Schemas of `cat.recovery` Category + description: Schemas of `cat.recovery` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.repositories.yaml b/spec/schemas/cat.repositories.yaml index c7163972d..78b5fa33f 100644 --- a/spec/schemas/cat.repositories.yaml +++ b/spec/schemas/cat.repositories.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.repositories category - description: Schemas of cat.repositories category + title: Schemas of `cat.repositories` Category + description: Schemas of `cat.repositories` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.segments.yaml b/spec/schemas/cat.segments.yaml index b0a119457..348740b32 100644 --- a/spec/schemas/cat.segments.yaml +++ b/spec/schemas/cat.segments.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.segments category - description: Schemas of cat.segments category + title: Schemas of `cat.segments` Category + description: Schemas of `cat.segments` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.shards.yaml b/spec/schemas/cat.shards.yaml index 312faf725..c154792da 100644 --- a/spec/schemas/cat.shards.yaml +++ b/spec/schemas/cat.shards.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.shards category - description: Schemas of cat.shards category + title: Schemas of `cat.shards` Category + description: Schemas of `cat.shards` category. version: 1.0.0 paths: {} components: @@ -86,10 +86,10 @@ components: description: The size of completion. type: ['null', string] fielddata.memory_size: - description: The used fielddata cache memory. + description: The used field data cache memory. type: ['null', string] fielddata.evictions: - description: The fielddata cache evictions. + description: The field data cache evictions. type: ['null', string] query_cache.memory_size: description: The used query cache memory. diff --git a/spec/schemas/cat.snapshots.yaml b/spec/schemas/cat.snapshots.yaml index af46e1ba2..a13d3a29a 100644 --- a/spec/schemas/cat.snapshots.yaml +++ b/spec/schemas/cat.snapshots.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.snapshots category - description: Schemas of cat.snapshots category + title: Schemas of `cat.snapshots` Category + description: Schemas of `cat.snapshots` category. version: 1.0.0 paths: {} components: @@ -36,7 +36,7 @@ components: duration: $ref: '_common.yaml#/components/schemas/Duration' indices: - description: The number of indices in the snapshot. + description: The number of indexes in the snapshot. type: string successful_shards: description: The number of successful shards in the snapshot. diff --git a/spec/schemas/cat.tasks.yaml b/spec/schemas/cat.tasks.yaml index ce54f2c51..52bdde9f3 100644 --- a/spec/schemas/cat.tasks.yaml +++ b/spec/schemas/cat.tasks.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.tasks category - description: Schemas of cat.tasks category + title: Schemas of `cat.tasks` Category + description: Schemas of `cat.tasks` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.templates.yaml b/spec/schemas/cat.templates.yaml index ebc269250..734f2c0b2 100644 --- a/spec/schemas/cat.templates.yaml +++ b/spec/schemas/cat.templates.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.templates category - description: Schemas of cat.templates category + title: Schemas of `cat.templates` Category + description: Schemas of `cat.templates` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cat.thread_pool.yaml b/spec/schemas/cat.thread_pool.yaml index 510c5ba22..23fdc8e18 100644 --- a/spec/schemas/cat.thread_pool.yaml +++ b/spec/schemas/cat.thread_pool.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cat.thread_pool category - description: Schemas of cat.thread_pool category + title: Schemas of `cat.thread_pool` Category + description: Schemas of `cat.thread_pool` category. version: 1.0.0 paths: {} components: @@ -21,7 +21,7 @@ components: description: The process identifier. type: string host: - description: The host name for the current node. + description: The hostname for the current node. type: string ip: description: The IP address for the current node. diff --git a/spec/schemas/cluster._common.yaml b/spec/schemas/cluster._common.yaml index 8acd74b43..9c42b0948 100644 --- a/spec/schemas/cluster._common.yaml +++ b/spec/schemas/cluster._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cluster._common category - description: Schemas of cluster._common category + title: Schemas of `cluster._common` Category + description: Schemas of `cluster._common` category. version: 1.0.0 paths: {} components: @@ -44,5 +44,3 @@ components: type: object additionalProperties: $ref: 'indices._common.yaml#/components/schemas/AliasDefinition' - lifecycle: - $ref: 'indices._common.yaml#/components/schemas/DataStreamLifecycleWithRollover' diff --git a/spec/schemas/cluster.allocation_explain.yaml b/spec/schemas/cluster.allocation_explain.yaml index f7141a328..f90f94d7d 100644 --- a/spec/schemas/cluster.allocation_explain.yaml +++ b/spec/schemas/cluster.allocation_explain.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cluster.allocation_explain category - description: Schemas of cluster.allocation_explain category + title: Schemas of `cluster.allocation_explain` Category + description: Schemas of `cluster.allocation_explain` category. version: 1.0.0 paths: {} components: @@ -177,7 +177,6 @@ components: - node_id - node_name - transport_address - - weight_ranking AllocationStore: type: object properties: diff --git a/spec/schemas/cluster.health.yaml b/spec/schemas/cluster.health.yaml index 3af259176..c62ccbb37 100644 --- a/spec/schemas/cluster.health.yaml +++ b/spec/schemas/cluster.health.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cluster.health category - description: Schemas of cluster.health category + title: Schemas of `cluster.health` Category + description: Schemas of `cluster.health` category. version: 1.0.0 paths: {} components: @@ -31,11 +31,11 @@ components: description: The number of shards whose allocation has been delayed by the timeout settings. type: number discovered_master: - description: True if the master node has been discovered. + description: True if the cluster-manager node has been discovered. type: boolean x-version-deprecated: '2.0' discovered_cluster_manager: - description: True if the cluster manager node has been discovered. + description: True if the cluster-manager node has been discovered. type: boolean x-version-added: '2.0' indices: @@ -67,7 +67,7 @@ components: task_max_waiting_in_queue_millis: $ref: '_common.yaml#/components/schemas/DurationValueUnitMillis' timed_out: - description: If false the response returned within the period of time that is specified by the timeout parameter (30s by default). + description: If `false` the response returned within the period of time that is specified by the timeout parameter (`30s` by default). type: boolean unassigned_shards: description: The number of shards that are not allocated. diff --git a/spec/schemas/cluster.pending_tasks.yaml b/spec/schemas/cluster.pending_tasks.yaml index be221e8e3..efe552281 100644 --- a/spec/schemas/cluster.pending_tasks.yaml +++ b/spec/schemas/cluster.pending_tasks.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cluster.pending_tasks category - description: Schemas of cluster.pending_tasks category + title: Schemas of `cluster.pending_tasks` Category + description: Schemas of `cluster.pending_tasks` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cluster.remote_info.yaml b/spec/schemas/cluster.remote_info.yaml index d0fb00ac5..a92160bc8 100644 --- a/spec/schemas/cluster.remote_info.yaml +++ b/spec/schemas/cluster.remote_info.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cluster.remote_info category - description: Schemas of cluster.remote_info category + title: Schemas of `cluster.remote_info` Category + description: Schemas of `cluster.remote_info` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cluster.reroute.yaml b/spec/schemas/cluster.reroute.yaml index 2e569fae8..55ac62278 100644 --- a/spec/schemas/cluster.reroute.yaml +++ b/spec/schemas/cluster.reroute.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cluster.reroute category - description: Schemas of cluster.reroute category + title: Schemas of `cluster.reroute` Category + description: Schemas of `cluster.reroute` category. version: 1.0.0 paths: {} components: @@ -75,7 +75,7 @@ components: node: type: string accept_data_loss: - description: If a node which has a copy of the data rejoins the cluster later on, that data will be deleted. To ensure that these implications are well-understood, this command requires the flag accept_data_loss to be explicitly set to true + description: If a node which has a copy of the data rejoins the cluster later on, that data will be deleted. To ensure that these implications are well-understood, this command requires the flag `accept_data_loss` to be explicitly set to `true`. type: boolean required: - accept_data_loss diff --git a/spec/schemas/cluster.state.yaml b/spec/schemas/cluster.state.yaml index 9b02836dc..fc0149a1b 100644 --- a/spec/schemas/cluster.state.yaml +++ b/spec/schemas/cluster.state.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cluster.state category - description: Schemas of cluster.state category + title: Schemas of `cluster.state` Category + description: Schemas of `cluster.state` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/cluster.stats.yaml b/spec/schemas/cluster.stats.yaml index cd6ff6864..70cab97e5 100644 --- a/spec/schemas/cluster.stats.yaml +++ b/spec/schemas/cluster.stats.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of cluster.stats category - description: Schemas of cluster.stats category + title: Schemas of `cluster.stats` Category + description: Schemas of `cluster.stats` category. version: 1.0.0 paths: {} components: @@ -27,8 +27,6 @@ components: required: - cluster_name - cluster_uuid - - indices - - nodes - status - timestamp ClusterIndices: @@ -39,7 +37,7 @@ components: completion: $ref: '_common.yaml#/components/schemas/CompletionStats' count: - description: Total number of indices with shards assigned to selected nodes. + description: Total number of indexes with shards assigned to selected nodes. type: number docs: $ref: '_common.yaml#/components/schemas/DocStats' @@ -60,17 +58,6 @@ components: type: array items: $ref: '#/components/schemas/IndicesVersions' - required: - - analysis - - completion - - count - - docs - - fielddata - - mappings - - query_cache - - segments - - shards - - store CharFilterTypes: type: object properties: @@ -132,16 +119,16 @@ components: description: The number of occurrences of the field type in selected nodes. type: number index_count: - description: The number of indices containing the field type in selected nodes. + description: The number of indexes containing the field type in selected nodes. type: number indexed_vector_count: - description: For dense_vector field types, number of indexed vector types in selected nodes. + description: For `dense_vector` field types, number of indexed vector types in selected nodes. type: number indexed_vector_dim_max: - description: For dense_vector field types, the maximum dimension of all indexed vector types in selected nodes. + description: For `dense_vector` field types, the maximum dimension of all indexed vector types in selected nodes. type: number indexed_vector_dim_min: - description: For dense_vector field types, the minimum dimension of all indexed vector types in selected nodes. + description: For `dense_vector` field types, the minimum dimension of all indexed vector types in selected nodes. type: number script_count: description: The number of fields that declare a script. @@ -201,16 +188,11 @@ components: type: array items: $ref: '#/components/schemas/FieldTypes' - runtime_field_types: - description: Contains statistics about runtime field data types used in selected nodes. - type: array - items: - $ref: '#/components/schemas/RuntimeFieldTypes' total_field_count: - description: Total number of fields in all non-system indices. + description: Total number of fields in all non-system indexes. type: number total_deduplicated_field_count: - description: Total number of fields in all non-system indices, accounting for mapping deduplication. + description: Total number of fields in all non-system indexes, accounting for mapping deduplication. type: number total_deduplicated_mapping_size: $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' @@ -219,67 +201,6 @@ components: $ref: '_common.yaml#/components/schemas/ByteCount' required: - field_types - RuntimeFieldTypes: - type: object - properties: - chars_max: - description: Maximum number of characters for a single runtime field script. - type: number - chars_total: - description: Total number of characters for the scripts that define the current runtime field data type. - type: number - count: - description: Number of runtime fields mapped to the field data type in selected nodes. - type: number - doc_max: - description: Maximum number of accesses to doc_values for a single runtime field script - type: number - doc_total: - description: Total number of accesses to doc_values for the scripts that define the current runtime field data type. - type: number - index_count: - description: Number of indices containing a mapping of the runtime field data type in selected nodes. - type: number - lang: - description: Script languages used for the runtime fields scripts. - type: array - items: - type: string - lines_max: - description: Maximum number of lines for a single runtime field script. - type: number - lines_total: - description: Total number of lines for the scripts that define the current runtime field data type. - type: number - name: - $ref: '_common.yaml#/components/schemas/Name' - scriptless_count: - description: Number of runtime fields that don't declare a script. - type: number - shadowed_count: - description: Number of runtime fields that shadow an indexed field. - type: number - source_max: - description: Maximum number of accesses to _source for a single runtime field script. - type: number - source_total: - description: Total number of accesses to _source for the scripts that define the current runtime field data type. - type: number - required: - - chars_max - - chars_total - - count - - doc_max - - doc_total - - index_count - - lang - - lines_max - - lines_total - - name - - scriptless_count - - shadowed_count - - source_max - - source_total IndicesVersions: type: object properties: @@ -337,18 +258,6 @@ components: type: array items: $ref: '_common.yaml#/components/schemas/VersionString' - required: - - count - - discovery_types - - fs - - ingest - - jvm - - network_types - - os - - packaging_types - - plugins - - process - - versions ClusterNodeCount: type: object properties: @@ -755,3 +664,30 @@ components: - avg - max - min + Metric: + type: string + enum: + - _all + - discovery_type + - fs + - indices + - ingest + - jvm + - network_types + - os + - packaging_types + - plugins + - process + IndexMetric: + type: string + enum: + - _all + - analysis + - completion + - docs + - fielddata + - mappings + - query_cache + - segments + - shards + - store diff --git a/spec/schemas/dangling_indices.list_dangling_indices.yaml b/spec/schemas/dangling_indices.list_dangling_indices.yaml index a9f3a42cd..552bf607e 100644 --- a/spec/schemas/dangling_indices.list_dangling_indices.yaml +++ b/spec/schemas/dangling_indices.list_dangling_indices.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of dangling_indices.list_dangling_indices category - description: Schemas of dangling_indices.list_dangling_indices category + title: Schemas of `dangling_indices.list_dangling_indices` Category + description: Schemas of `dangling_indices.list_dangling_indices` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/flow_framework.common.yaml b/spec/schemas/flow_framework.common.yaml index d3ab4ae9b..d31caa059 100644 --- a/spec/schemas/flow_framework.common.yaml +++ b/spec/schemas/flow_framework.common.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: - title: Schemas of flow_framework.common category - description: Schemas of flow_framework.common category + title: Schemas of `flow_framework.common` Category + description: Schemas of `flow_framework.common` category. version: 1.0.0 paths: { } components: @@ -11,6 +11,12 @@ components: type: string WorkflowID: type: string + WorkflowIDResponse: + type: object + properties: + workflow_id: + type: string + description: The ID of the workflow WorkflowStepName: type: string Provision: @@ -50,7 +56,7 @@ components: $ref: '#/components/schemas/version' workflows: type: object - description: A map of workflows. Presently, only the provision key is supported. The value for the workflow key is a key-value map that includes fields for user_params and lists of nodes and edges. + description: A map of workflows. Presently, only the provision key is supported. The value for the workflow key is a key-value map that includes fields for `user_params` and lists of nodes and edges. required: - name FlowFrameworkUpdate: @@ -99,6 +105,8 @@ components: properties: name: type: string + version: + $ref: '#/components/schemas/version' description: type: string use_case: @@ -111,6 +119,8 @@ components: type: integer last_updated_time: type: integer + last_provisioned_time: + type: number version: type: object description: A key-value map with two fields, template, which identifies the template version, and compatibility, which identifies a list of minimum required OpenSearch versions. @@ -135,6 +145,9 @@ components: failed: type: integer description: The number of shards where the deletion failed. + skipped: + type: integer + description: The number of shards where the deletion was skipped. query: type: object description: The search query to match workflows. Use `match_all` to retrieve all workflows, or `match` to search by specific fields like `use_case`. @@ -237,9 +250,11 @@ components: total: $ref: '#/components/schemas/total' max_score: - type: number - format: float - description: The maximum score of the search hits. + oneOf: + - type: 'null' + - type: number + format: float + description: The maximum score of the search hits. hits: type: array items: @@ -250,13 +265,19 @@ components: total: $ref: '#/components/schemas/total' max_score: - type: number - format: float - description: The maximum score of the search hits. + oneOf: + - type: 'null' + - type: number + format: float + description: The maximum score of the search hits. hits: type: array items: $ref: '#/components/schemas/StateItems' + WorkflowSteps: + type: object + additionalProperties: + $ref: '#/components/schemas/WorkflowStep' WorkflowStep: type: object properties: @@ -275,6 +296,8 @@ components: items: type: string description: The list of plugins required for the workflow step + timeout: + $ref: '_common.yaml#/components/schemas/Duration' WorkFlowStatusDefaultResponse: type: object properties: diff --git a/spec/schemas/flow_framework.errors.yaml b/spec/schemas/flow_framework.errors.yaml index 879cf7fe5..1ca8965af 100644 --- a/spec/schemas/flow_framework.errors.yaml +++ b/spec/schemas/flow_framework.errors.yaml @@ -1,71 +1,59 @@ openapi: 3.1.0 info: - title: Schemas of flow_framework._errors category - description: Schemas of flow_framework._errors category + title: Schemas of `flow_framework._errors` Category + description: Schemas of `flow_framework._errors` category. version: 1.0.0 paths: {} components: schemas: FlowFrameworkAPIDisabledError: - content: - application/json: - type: object - properties: - error: - type: string - example: This API is disabled. To enable it, set [flow_framework.enabled] to true. - status: - type: integer + type: object + properties: + error: + type: string + # example: This API is disabled. To enable it, set [flow_framework.enabled] to true. + status: + type: integer InvalidParameterError: - content: - application/json: - type: object - properties: - error: - type: string - example: Only the parameters [param1, param2] are permitted unless the provision parameter is set to true. - status: - type: integer + type: object + properties: + error: + type: string + # example: Only the parameters [param1, param2] are permitted unless the provision parameter is set to true. + status: + type: integer ConflictError: - content: - application/json: - type: object - properties: - error: - type: string - example: You cannot use both the 'provision_workflow' and 'update_workflow_fields' parameters in the same request. - status: - type: integer + type: object + properties: + error: + type: string + # example: You cannot use both the 'provision_workflow' and 'update_workflow_fields' parameters in the same request. + status: + type: integer MissingParameterError: - content: - application/json: - type: object - properties: - error: - type: string - example: You cannot use the 'reprovision_workflow' parameter to create a new template. - status: - type: integer + type: object + properties: + error: + type: string + # example: You cannot use the 'reprovision_workflow' parameter to create a new template. + status: + type: integer ParameterConflictError: - content: - application/json: - type: object - properties: - error: - type: string - example: You cannot use the 'reprovision_workflow' and 'use_case' parameters in the same request. - status: - type: integer + type: object + properties: + error: + type: string + # example: You cannot use the 'reprovision_workflow' and 'use_case' parameters in the same request. + status: + type: integer WorkFlowIdNullError: - content: - application/json: - type: object - properties: - error: - type: string - example: Workflow ID can not be null - status: - type: integer + type: object + properties: + error: + type: string + # example: Workflow ID can not be null + status: + type: integer DuplicateKeyError: type: object properties: @@ -75,7 +63,7 @@ components: status: type: integer description: HTTP status code for the error. - example: 400 + # example: 400 InvalidRequestBodyFieldError: type: object properties: @@ -94,27 +82,23 @@ components: status: type: integer description: HTTP status code for the error. - example: 400 + # example: 400 WorkflowSaveError: - content: - application/json: - type: object - properties: - error: - type: string - example: Failed to save workflow state - status: - type: integer + type: object + properties: + error: + type: string + # example: Failed to save workflow state + status: + type: integer MaxWorkflowsLimitError: - content: - application/json: - type: object - properties: - error: - type: string - example: Maximum workflows limit reached 50 - code: - type: integer + type: object + properties: + error: + type: string + # example: Maximum workflows limit reached 50 + code: + type: integer TemplateNameRequiredError: type: object properties: @@ -122,59 +106,49 @@ components: type: string description: Error message when the template name is missing. TemplateNotFoundError: - content: - application/json: - type: object - properties: - error: - type: string - example: Failed to retrieve template (12345) from global context. - code: - type: integer + type: object + properties: + error: + type: string + # example: Failed to retrieve template (12345) from global context. + code: + type: integer InvalidTemplateVersionError: - content: - application/json: - type: object - properties: - error: - type: string - description: Error message when the template version is invalid or missing. - example: Unable to parse field [version] in a version object. + type: object + properties: + error: + type: string + description: Error message when the template version is invalid or missing. + # example: Unable to parse field [version] in a version object. UnsupportedFieldUpdateError: - content: - application/json: - type: object - properties: - error: - type: string - description: Error message when trying to update an unsupported field in a template. - example: You can not update the field [fieldName] without updating the whole template. + type: object + properties: + error: + type: string + description: Error message when trying to update an unsupported field in a template. + # example: You can not update the field [fieldName] without updating the whole template. WorkflowParsingError: - content: - application/json: - type: object - properties: - error: - type: string - description: Error message when workflow parsing fails. - example: Unable to parse field [workflow] in a template object. + type: object + properties: + error: + type: string + description: Error message when workflow parsing fails. + # example: Unable to parse field [workflow] in a template object. WorkflowStepsRetrieveError: - content: - application/json: - type: object - properties: - error: - type: string - example: Failed to retrieve workflow step json. - code: - type: integer + type: object + properties: + error: + type: string + # example: Failed to retrieve workflow step json. + code: + type: integer DeprovisioningError: type: object properties: error: type: string description: Describes the deprovisioning error and identifies resources that were not deprovisioned - example: Failed to deprovision some resources [connector_id Lw7PX4wBfVtHp98y06wV]. + # example: Failed to deprovision some resources [connector_id Lw7PX4wBfVtHp98y06wV]. required: - error DeprovisioningForbiddenError: @@ -182,8 +156,8 @@ components: properties: error: type: string - description: Describes the resources that require the allow_delete parameter for deprovisioning - example: These resources require the allow_delete parameter to deprovision [index_name my-index]. + description: Describes the resources that require the `allow_delete` parameter for deprovisioning + # example: These resources require the `allow_delete` parameter to deprovision [index_name my-index]. required: - error RequestTimeoutError: @@ -195,15 +169,15 @@ components: status: type: integer description: HTTP status code for the error. - example: 408 + # example: 408 BadRequestError: type: object properties: error: type: string description: Error message when the request body or parameters are invalid. - example: Invalid request body or query parameters. + # example: Invalid request body or query parameters. status: type: integer description: HTTP status code for the error. - example: 400 \ No newline at end of file + # example: 400 \ No newline at end of file diff --git a/spec/schemas/indices._common.yaml b/spec/schemas/indices._common.yaml index dac9df22b..df7c0801e 100644 --- a/spec/schemas/indices._common.yaml +++ b/spec/schemas/indices._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices._common category - description: Schemas of indices._common category + title: Schemas of `indices._common` Category + description: Schemas of `indices._common` category. version: 1.0.0 paths: {} components: @@ -22,64 +22,78 @@ components: type: string soft_deletes: $ref: '#/components/schemas/SoftDeletes' + soft_deletes.retention_lease.period: + $ref: '_common.yaml#/components/schemas/Duration' sort: $ref: '#/components/schemas/IndexSegmentSort' number_of_shards: - oneOf: - - type: number - - type: string + $ref: '_common.yaml#/components/schemas/StringifiedInteger' number_of_replicas: - oneOf: - - type: number - - type: string + $ref: '_common.yaml#/components/schemas/StringifiedInteger' number_of_routing_shards: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' check_on_startup: $ref: '#/components/schemas/IndexCheckOnStartup' codec: type: string routing_partition_size: - $ref: '_common.yaml#/components/schemas/Stringifiedinteger' + $ref: '_common.yaml#/components/schemas/StringifiedInteger' load_fixed_bitset_filters_eagerly: - type: boolean + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' hidden: - oneOf: - - type: boolean - - type: string + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' auto_expand_replicas: type: string merge: - $ref: '#/components/schemas/Merge' + $ref: '#/components/schemas/IndexSettingsMerge' + merge.scheduler.max_thread_count: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' search: - $ref: '#/components/schemas/SettingsSearch' + $ref: '#/components/schemas/IndexSettingsSearch' + search.idle.after: + $ref: '_common.yaml#/components/schemas/Duration' refresh_interval: $ref: '_common.yaml#/components/schemas/Duration' max_result_window: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' max_inner_result_window: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' max_rescore_window: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' max_docvalue_fields_search: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' max_script_fields: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' max_ngram_diff: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' max_shingle_diff: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' blocks: $ref: '#/components/schemas/IndexSettingBlocks' + blocks.read_only: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + blocks.read_only_allow_delete: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + blocks.read: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + blocks.write: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + blocks.metadata: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' max_refresh_listeners: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' analyze: - $ref: '#/components/schemas/SettingsAnalyze' + $ref: '#/components/schemas/IndexSettingsAnalyze' + analyze.max_token_count: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' highlight: - $ref: '#/components/schemas/SettingsHighlight' + $ref: '#/components/schemas/IndexSettingsHighlight' + highlight.max_analyzed_offset: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' max_terms_count: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' max_regex_length: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' routing: $ref: '#/components/schemas/IndexRouting' gc_deletes: @@ -90,6 +104,8 @@ components: $ref: '_common.yaml#/components/schemas/PipelineName' lifecycle: $ref: '#/components/schemas/IndexSettingsLifecycle' + lifecycle.name: + $ref: '_common.yaml#/components/schemas/Name' provided_name: $ref: '_common.yaml#/components/schemas/Name' creation_date: @@ -101,52 +117,73 @@ components: version: $ref: '#/components/schemas/IndexVersioning' verified_before_close: - oneOf: - - type: boolean - - type: string + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' format: oneOf: - type: string - type: number max_slices_per_scroll: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' translog: $ref: '#/components/schemas/Translog' + translog.durability: + $ref: '#/components/schemas/TranslogDurability' + translog.flush_threshold_size: + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' query_string: - $ref: '#/components/schemas/SettingsQueryString' + $ref: '#/components/schemas/IndexSettingsQueryString' + query_string.lenient: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' priority: oneOf: - type: number - type: string top_metrics_max_size: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' analysis: $ref: '#/components/schemas/IndexSettingsAnalysis' settings: $ref: '#/components/schemas/IndexSettings' - time_series: - $ref: '#/components/schemas/IndexSettingsTimeSeries' queries: - $ref: '#/components/schemas/Queries' + $ref: '#/components/schemas/IndexSettingsQueries' similarity: - $ref: '#/components/schemas/SettingsSimilarity' + $ref: '#/components/schemas/IndexSettingsSimilarity' mapping: - $ref: '#/components/schemas/MappingLimitSettings' - indexing.slowlog: - $ref: '#/components/schemas/IndexingSlowlogSettings' + $ref: '#/components/schemas/IndexSettingsMapping' + indexing: + $ref: '#/components/schemas/IndexSettingsIndexing' indexing_pressure: $ref: '#/components/schemas/IndexingPressure' store: - $ref: '#/components/schemas/Storage' - additionalProperties: {} + $ref: '#/components/schemas/IndexSettingsStore' + knn: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + knn.algo_param.ef_search: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + composite_index.star_tree: + $ref: '#/components/schemas/IndexSettingsStarTree' + additionalProperties: + title: custom_settings + IndexSettingsIndexing: + type: object + properties: + slowlog: + $ref: '#/components/schemas/IndexingSlowlog' SoftDeletes: type: object properties: enabled: description: Indicates whether soft deletes are enabled on the index. - type: boolean + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + retention: + $ref: '#/components/schemas/SoftDeletesRetention' retention_lease: $ref: '#/components/schemas/RetentionLease' + SoftDeletesRetention: + type: object + properties: + operations: + $ref: '_common.yaml#/components/schemas/StringifiedLong' RetentionLease: type: object properties: @@ -198,42 +235,127 @@ components: - checksum - 'false' - 'true' - Merge: - type: object - properties: + IndexSettingsMerge: + type: object + properties: + log_byte_size_policy: + $ref: '#/components/schemas/IndexSettingsMergeLogByteSizePolicy' + policy: + $ref: '#/components/schemas/IndexSettingsMergePolicy' + policy.deletes_pct_allowed: + $ref: '_common.yaml#/components/schemas/StringifiedDouble' + policy.expunge_deletes_allowed: + $ref: '_common.yaml#/components/schemas/StringifiedDouble' + policy.floor_segment: + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' + policy.max_merge_at_once: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + policy.max_merged_segment: + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' + policy.reclaim_deletes_weight: + $ref: '_common.yaml#/components/schemas/StringifiedDouble' + policy.segments_per_tier: + $ref: '_common.yaml#/components/schemas/StringifiedDouble' scheduler: - $ref: '#/components/schemas/MergeScheduler' - MergeScheduler: + $ref: '#/components/schemas/IndexSettingsMergeScheduler' + IndexSettingsMergeScheduler: type: object properties: + auto_throttle: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' max_thread_count: - $ref: '_common.yaml#/components/schemas/Stringifiedinteger' + $ref: '_common.yaml#/components/schemas/StringifiedInteger' max_merge_count: - $ref: '_common.yaml#/components/schemas/Stringifiedinteger' - SettingsSearch: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + IndexSettingsMergePolicy: + oneOf: + - title: name + $ref: '#/components/schemas/IndexSettingsMergePolicyName' + - title: tiered_policy_config + $ref: '#/components/schemas/IndexSettingsMergeTieredPolicy' + IndexSettingsMergePolicyName: + type: string + enum: + - default + - log_byte_size + - tiered + IndexSettingsMergeTieredPolicy: + type: object + properties: + deletes_pct_allowed: + $ref: '_common.yaml#/components/schemas/StringifiedDouble' + expunge_deletes_allowed: + $ref: '_common.yaml#/components/schemas/StringifiedDouble' + floor_segment: + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' + max_merge_at_once: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + max_merge_at_once_explicit: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + x-version-removed: '2.0' + max_merged_segment: + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' + reclaim_deletes_weight: + $ref: '_common.yaml#/components/schemas/StringifiedDouble' + segments_per_tier: + $ref: '_common.yaml#/components/schemas/StringifiedDouble' + IndexSettingsMergeLogByteSizePolicy: type: object properties: + max_merge_segment: + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' + max_merge_segment_forced_merge: + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' + max_merged_docs: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + merge_factor: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + min_merge: + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' + no_cfs_ratio: + $ref: '_common.yaml#/components/schemas/StringifiedDouble' + IndexSettingsSearch: + type: object + properties: + concurrent: + $ref: '#/components/schemas/IndexSettingsSearchConcurrent' + concurrent_segment_search: + $ref: '#/components/schemas/IndexSettingsSearchConcurrentSegmentSearch' + default_pipeline: + type: string idle: $ref: '#/components/schemas/SearchIdle' slowlog: - $ref: '#/components/schemas/SlowlogSettings' + $ref: '#/components/schemas/SearchSlowlog' + throttled: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + IndexSettingsSearchConcurrent: + type: object + properties: + max_slice_count: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + IndexSettingsSearchConcurrentSegmentSearch: + type: object + properties: + mode: + type: string + enabled: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' SearchIdle: type: object properties: after: $ref: '_common.yaml#/components/schemas/Duration' - SlowlogSettings: + SearchSlowlog: type: object properties: level: type: string - source: - type: number reformat: type: boolean threshold: - $ref: '#/components/schemas/SlowlogThresholds' - SlowlogThresholds: + $ref: '#/components/schemas/SearchSlowlogThresholds' + SearchSlowlogThresholds: type: object properties: query: @@ -255,25 +377,25 @@ components: type: object properties: read_only: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' read_only_allow_delete: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' read: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' write: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' metadata: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' - SettingsAnalyze: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + IndexSettingsAnalyze: type: object properties: max_token_count: - $ref: '_common.yaml#/components/schemas/Stringifiedinteger' - SettingsHighlight: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + IndexSettingsHighlight: type: object properties: max_analyzed_offset: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' IndexRouting: type: object properties: @@ -292,6 +414,8 @@ components: $ref: '#/components/schemas/IndexRoutingAllocationInitialRecovery' disk: $ref: '#/components/schemas/IndexRoutingAllocationDisk' + total_shards_per_node: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' IndexRoutingAllocationOptions: type: string enum: @@ -315,9 +439,7 @@ components: type: object properties: threshold_enabled: - oneOf: - - type: boolean - - type: string + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' IndexRoutingRebalance: type: object properties: @@ -338,19 +460,19 @@ components: name: $ref: '_common.yaml#/components/schemas/Name' indexing_complete: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' origination_date: description: |- If specified, this is the timestamp used to calculate the index age for its phase transitions. Use this setting if you create a new index that contains old data and want to use the original creation date to calculate the index age. Specified as a Unix epoch value in milliseconds. - type: number + $ref: '_common.yaml#/components/schemas/StringifiedEpochTimeUnitMillis' parse_origination_date: description: |- - Set to true to parse the origination date from the index name. This origination date is used to calculate the index age - for its phase transitions. The index name must match the pattern ^.*-{date_format}-\\d+, where the date_format is - yyyy.MM.dd and the trailing digits are optional. An index that was rolled over would normally match the full format, - for example logs-2016.10.31-000002). If the index name doesn't match the pattern, index creation fails. + Set to `true` to parse the origination date from the index name. This origination date is used to calculate the index age + for its phase transitions. The index name must match the pattern `^.*-{date_format}-\\d+`, where the `date_format` is + `yyyy.MM.dd` and the trailing digits are optional. An index that was rolled over would normally match the full format, + for example `logs-2016.10.31-000002`). If the index name doesn't match the pattern, index creation fails. type: boolean step: $ref: '#/components/schemas/IndexSettingsLifecycleStep' @@ -358,7 +480,7 @@ components: description: |- The index alias to update when the index rolls over. Specify when using a policy that contains a rollover action. When the index rolls over, the alias is updated to reflect that the index is no longer the write index. For more - information about rolling indices, see Rollover. + information about rolling indexes, see Rollover. type: string required: - name @@ -383,11 +505,15 @@ components: $ref: '#/components/schemas/TranslogDurability' flush_threshold_size: $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' + generation_threshold_size: + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' retention: $ref: '#/components/schemas/TranslogRetention' TranslogDurability: type: string enum: + - ASYNC + - REQUEST - async - request TranslogRetention: @@ -397,13 +523,11 @@ components: $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' age: $ref: '_common.yaml#/components/schemas/Duration' - SettingsQueryString: + IndexSettingsQueryString: type: object properties: lenient: - $ref: '_common.yaml#/components/schemas/Stringifiedboolean' - required: - - lenient + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' IndexSettingsAnalysis: type: object properties: @@ -427,51 +551,46 @@ components: type: object additionalProperties: $ref: '_common.analysis.yaml#/components/schemas/Tokenizer' - IndexSettingsTimeSeries: - type: object - properties: - end_time: - $ref: '_common.yaml#/components/schemas/DateTime' - start_time: - $ref: '_common.yaml#/components/schemas/DateTime' - Queries: + IndexSettingsQueries: type: object properties: cache: - $ref: '#/components/schemas/CacheQueries' - CacheQueries: + $ref: '#/components/schemas/IndexSettingsQueriesCache' + IndexSettingsQueriesCache: type: object properties: enabled: - type: boolean + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' required: - enabled - SettingsSimilarity: + IndexSettingsSimilarity: type: object properties: bm25: - $ref: '#/components/schemas/SettingsSimilarityBm25' + $ref: '#/components/schemas/IndexSettingsSimilarityBm25' dfi: - $ref: '#/components/schemas/SettingsSimilarityDfi' + $ref: '#/components/schemas/IndexSettingsSimilarityDfi' dfr: - $ref: '#/components/schemas/SettingsSimilarityDfr' + $ref: '#/components/schemas/IndexSettingsSimilarityDfr' ib: - $ref: '#/components/schemas/SettingsSimilarityIb' + $ref: '#/components/schemas/IndexSettingsSimilarityIb' lmd: - $ref: '#/components/schemas/SettingsSimilarityLmd' + $ref: '#/components/schemas/IndexSettingsSimilarityLmd' lmj: - $ref: '#/components/schemas/SettingsSimilarityLmj' + $ref: '#/components/schemas/IndexSettingsSimilarityLmj' scripted_tfidf: - $ref: '#/components/schemas/SettingsSimilarityScriptedTfidf' - SettingsSimilarityBm25: + $ref: '#/components/schemas/IndexSettingsSimilarityScriptedTfidf' + IndexSettingsSimilarityBm25: type: object properties: b: type: number + format: float discount_overlaps: type: boolean k1: type: number + format: float type: type: string enum: @@ -481,7 +600,7 @@ components: - discount_overlaps - k1 - type - SettingsSimilarityDfi: + IndexSettingsSimilarityDfi: type: object properties: independence_measure: @@ -493,7 +612,7 @@ components: required: - independence_measure - type - SettingsSimilarityDfr: + IndexSettingsSimilarityDfr: type: object properties: after_effect: @@ -501,7 +620,7 @@ components: basic_model: $ref: '_common.yaml#/components/schemas/DFRBasicModel' normalization: - $ref: '_common.yaml#/components/schemas/Normalization' + $ref: '_common.yaml#/components/schemas/TermFrequencyNormalization' type: type: string enum: @@ -511,7 +630,7 @@ components: - basic_model - normalization - type - SettingsSimilarityIb: + IndexSettingsSimilarityIb: type: object properties: distribution: @@ -519,7 +638,7 @@ components: lambda: $ref: '_common.yaml#/components/schemas/IBLambda' normalization: - $ref: '_common.yaml#/components/schemas/Normalization' + $ref: '_common.yaml#/components/schemas/TermFrequencyNormalization' type: type: string enum: @@ -529,11 +648,12 @@ components: - lambda - normalization - type - SettingsSimilarityLmd: + IndexSettingsSimilarityLmd: type: object properties: mu: type: number + format: float type: type: string enum: @@ -541,11 +661,12 @@ components: required: - mu - type - SettingsSimilarityLmj: + IndexSettingsSimilarityLmj: type: object properties: lambda: type: number + format: float type: type: string enum: @@ -553,7 +674,7 @@ components: required: - lambda - type - SettingsSimilarityScriptedTfidf: + IndexSettingsSimilarityScriptedTfidf: type: object properties: script: @@ -565,26 +686,26 @@ components: required: - script - type - MappingLimitSettings: + IndexSettingsMapping: type: object properties: coerce: - type: boolean + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' total_fields: - $ref: '#/components/schemas/MappingLimitSettingsTotalFields' + $ref: '#/components/schemas/IndexSettingsMappingLimitTotalFields' depth: - $ref: '#/components/schemas/MappingLimitSettingsDepth' + $ref: '#/components/schemas/IndexSettingsMappingLimitDepth' nested_fields: - $ref: '#/components/schemas/MappingLimitSettingsNestedFields' + $ref: '#/components/schemas/IndexSettingsMappingLimitNestedFields' nested_objects: - $ref: '#/components/schemas/MappingLimitSettingsNestedObjects' + $ref: '#/components/schemas/IndexSettingsMappingLimitNestedObjects' field_name_length: - $ref: '#/components/schemas/MappingLimitSettingsFieldNameLength' + $ref: '#/components/schemas/IndexSettingsMappingLimitFieldNameLength' dimension_fields: - $ref: '#/components/schemas/MappingLimitSettingsDimensionFields' + $ref: '#/components/schemas/IndexSettingsMappingLimitDimensionFields' ignore_malformed: - type: boolean - MappingLimitSettingsTotalFields: + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + IndexSettingsMappingLimitTotalFields: type: object properties: limit: @@ -592,16 +713,16 @@ components: The maximum number of fields in an index. Field and object mappings, as well as field aliases count towards this limit. The limit is in place to prevent mappings and searches from becoming too large. Higher values can lead to performance degradations and memory issues, especially in clusters with a high load or few resources. - type: number - MappingLimitSettingsDepth: + $ref: '_common.yaml#/components/schemas/StringifiedLong' + IndexSettingsMappingLimitDepth: type: object properties: limit: description: |- The maximum depth for a field, which is measured as the number of inner objects. For instance, if all fields are defined - at the root object level, then the depth is 1. If there is one object mapping, then the depth is 2, etc. - type: number - MappingLimitSettingsNestedFields: + at the root object level, then the depth is `1`. If there is one object mapping, then the depth is `2`. + $ref: '_common.yaml#/components/schemas/StringifiedLong' + IndexSettingsMappingLimitNestedFields: type: object properties: limit: @@ -609,16 +730,16 @@ components: The maximum number of distinct nested mappings in an index. The nested type should only be used in special cases, when arrays of objects need to be queried independently of each other. To safeguard against poorly designed mappings, this setting limits the number of unique nested types per index. - type: number - MappingLimitSettingsNestedObjects: + $ref: '_common.yaml#/components/schemas/StringifiedLong' + IndexSettingsMappingLimitNestedObjects: type: object properties: limit: description: |- The maximum number of nested JSON objects that a single document can contain across all nested types. This limit helps to prevent out of memory errors when a document contains too many nested objects. - type: number - MappingLimitSettingsFieldNameLength: + $ref: '_common.yaml#/components/schemas/StringifiedLong' + IndexSettingsMappingLimitFieldNameLength: type: object properties: limit: @@ -626,24 +747,24 @@ components: Setting for the maximum length of a field name. This setting isn't really something that addresses mappings explosion but might still be useful if you want to limit the field length. It usually shouldn't be necessary to set this setting. The default is okay unless a user starts to add a huge number of fields with really long names. Default is `Long.MAX_VALUE` (no limit). - type: number - MappingLimitSettingsDimensionFields: + $ref: '_common.yaml#/components/schemas/StringifiedLong' + IndexSettingsMappingLimitDimensionFields: type: object properties: limit: description: |- [preview] This functionality is in technical preview and may be changed or removed in a future release. OpenSearch will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. - type: number - IndexingSlowlogSettings: + $ref: '_common.yaml#/components/schemas/StringifiedLong' + IndexingSlowlog: type: object properties: level: type: string source: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedInteger' reformat: - type: boolean + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' threshold: $ref: '#/components/schemas/IndexingSlowlogThresholds' IndexingSlowlogThresholds: @@ -666,28 +787,110 @@ components: Number of outstanding bytes that may be consumed by indexing requests. When this limit is reached or exceeded, the node will reject new coordinating and primary operations. When replica operations consume 1.5x this limit, the node will reject new replica operations. Defaults to 10% of the heap. - type: number - Storage: + oneOf: + - type: string + - type: integer + format: int64 + IndexSettingsStore: type: object properties: type: $ref: '#/components/schemas/StorageType' allow_mmap: description: |- - You can restrict the use of the mmapfs and the related hybridfs store type via the setting node.store.allow_mmap. - This is a boolean setting indicating whether or not memory-mapping is allowed. The default is to allow it. This + You can restrict the use of the `mmapfs` and the related `hybridfs` store types with the setting `node.store.allow_mmap`. + This is a Boolean setting indicating whether or not memory-mapping is allowed. The default is to allow it. This setting is useful, for example, if you are in an environment where you can not control the ability to create a lot of memory maps so you need disable the ability to use memory-mapping. - type: boolean + $ref: '_common.yaml#/components/schemas/StringifiedBoolean' + fs: + $ref: '#/components/schemas/IndexSettingsStoreFs' + hybrid: + $ref: '#/components/schemas/IndexSettingsStoreHybrid' + preload: + type: array + items: + type: string + stats_refresh_interval: + $ref: '_common.yaml#/components/schemas/Duration' required: - type - StorageType: + IndexSettingsStoreFs: + type: object + properties: + fs_lock: + $ref: '#/components/schemas/IndexSettingsStoreFsLock' + IndexSettingsStoreFsLock: type: string enum: - - fs - - hybridfs - - mmapfs - - niofs + - native + - simple + IndexSettingsStoreHybrid: + type: object + properties: + mmap: + $ref: '#/components/schemas/IndexSettingsStoreHybridMmap' + nio: + $ref: '#/components/schemas/IndexSettingsStoreHybridNio' + IndexSettingsStoreHybridMmap: + type: object + properties: + extensions: + type: array + items: + type: string + IndexSettingsStoreHybridNio: + type: object + properties: + extensions: + type: array + items: + type: string + StorageType: + anyOf: + - type: string + enum: + - fs + - hybridfs + - mmapfs + - niofs + - type: string + IndexSettingsStarTree: + type: object + properties: + default: + $ref: '#/components/schemas/IndexSettingsStarTreeDefault' + field: + $ref: '#/components/schemas/IndexSettingsStarTreeField' + max_fields: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + IndexSettingsStarTreeDefault: + type: object + properties: + max_leaf_docs: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + IndexSettingsStarTreeField: + type: object + properties: + default: + $ref: '#/components/schemas/IndexSettingsStarTreeFieldDefault' + max_base_metrics: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + max_date_intervals: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + max_dimensions: + $ref: '_common.yaml#/components/schemas/StringifiedInteger' + IndexSettingsStarTreeFieldDefault: + type: object + properties: + date_intervals: + type: array + items: + type: string + metrics: + type: array + items: + type: string NumericFielddata: type: object properties: @@ -705,10 +908,12 @@ components: properties: max: type: number + format: double min: type: number + format: double min_segment_size: - type: number + type: integer required: - max - min @@ -737,67 +942,8 @@ components: is_hidden: description: |- If `true`, the alias is hidden. - All indices for the alias must have the same `is_hidden` value. + All indexes for the alias must have the same `is_hidden` value. type: boolean - DataStreamLifecycleWithRollover: - type: object - properties: - data_retention: - $ref: '_common.yaml#/components/schemas/Duration' - downsampling: - $ref: '#/components/schemas/DataStreamLifecycleDownsampling' - rollover: - $ref: '#/components/schemas/DataStreamLifecycleRolloverConditions' - DataStreamLifecycleDownsampling: - type: object - properties: - rounds: - description: The list of downsampling rounds to execute as part of this downsampling configuration - type: array - items: - $ref: '#/components/schemas/DownsamplingRound' - required: - - rounds - DownsamplingRound: - type: object - properties: - after: - $ref: '_common.yaml#/components/schemas/Duration' - config: - $ref: '#/components/schemas/DownsampleConfig' - required: - - after - - config - DownsampleConfig: - type: object - properties: - fixed_interval: - $ref: '_common.yaml#/components/schemas/DurationLarge' - required: - - fixed_interval - DataStreamLifecycleRolloverConditions: - type: object - properties: - min_age: - $ref: '_common.yaml#/components/schemas/Duration' - max_age: - type: string - min_docs: - type: number - max_docs: - type: number - min_size: - $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' - max_size: - $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' - min_primary_shard_size: - $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' - max_primary_shard_size: - $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' - min_primary_shard_docs: - type: number - max_primary_shard_docs: - type: number IndexState: type: object properties: @@ -813,8 +959,6 @@ components: $ref: '#/components/schemas/IndexSettings' data_stream: $ref: '_common.yaml#/components/schemas/DataStreamName' - lifecycle: - $ref: '#/components/schemas/DataStreamLifecycle' Alias: type: object properties: @@ -825,7 +969,7 @@ components: is_hidden: description: |- If `true`, the alias is hidden. - All indices for the alias must have the same `is_hidden` value. + All indexes for the alias must have the same `is_hidden` value. type: boolean is_write_index: description: If `true`, the index is the write index for the alias. @@ -834,13 +978,6 @@ components: $ref: '_common.yaml#/components/schemas/Routing' search_routing: $ref: '_common.yaml#/components/schemas/Routing' - DataStreamLifecycle: - type: object - properties: - data_retention: - $ref: '_common.yaml#/components/schemas/Duration' - downsampling: - $ref: '#/components/schemas/DataStreamLifecycleDownsampling' DataStream: type: object properties: @@ -864,13 +1001,11 @@ components: type: boolean indices: description: |- - Array of objects containing information about the data stream's backing indices. + Array of objects containing information about the data stream's backing indexes. The last item in this array contains information about the stream's current write index. type: array items: $ref: '#/components/schemas/DataStreamIndex' - lifecycle: - $ref: '#/components/schemas/DataStreamLifecycleWithRollover' name: $ref: '_common.yaml#/components/schemas/DataStreamName' replicated: @@ -944,7 +1079,8 @@ components: The index template with the highest priority is chosen. If no priority is specified the template is treated as though it is of priority 0 (lowest priority). This number is not automatically generated by OpenSearch. - type: number + type: integer + format: int64 _meta: $ref: '_common.yaml#/components/schemas/Metadata' allow_auto_create: @@ -970,16 +1106,14 @@ components: $ref: '_common.mapping.yaml#/components/schemas/TypeMapping' settings: $ref: '#/components/schemas/IndexSettings' - lifecycle: - $ref: '#/components/schemas/DataStreamLifecycleWithRollover' IndexTemplateDataStreamConfiguration: type: object properties: hidden: - description: If true, the data stream is hidden. + description: If `true`, the data stream is hidden. type: boolean allow_custom_routing: - description: If true, the data stream supports custom routing. + description: If `true`, the data stream supports custom routing. type: boolean timestamp_field: $ref: '#/components/schemas/DataStreamTimestampField' @@ -1063,4 +1197,37 @@ components: ignore_unavailable: type: boolean wait_for_completion: - type: boolean \ No newline at end of file + type: boolean + IndexError: + type: object + properties: + error: + $ref: '#/components/schemas/IndexErrorCause' + status: + type: number + IndexErrorCause: + type: object + properties: + type: + description: The type of error + type: string + reason: + description: A human-readable explanation of the error, in english + type: string + root_cause: + type: array + items: + $ref: '#/components/schemas/IndexErrorCause' + index: + $ref: '_common.yaml#/components/schemas/IndexName' + index_uuid: + $ref: '_common.yaml#/components/schemas/Uuid' + resource.id: + $ref: '_common.yaml#/components/schemas/IndexName' + resource.type: + $ref: '_common.yaml#/components/schemas/ResourceType' + required: + - type + additionalProperties: + title: metadata + description: Additional details about the error. diff --git a/spec/schemas/indices.add_block.yaml b/spec/schemas/indices.add_block.yaml index 7fdc4bb9f..b16c97623 100644 --- a/spec/schemas/indices.add_block.yaml +++ b/spec/schemas/indices.add_block.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.add_block category - description: Schemas of indices.add_block category + title: Schemas of `indices.add_block` Category + description: Schemas of `indices.add_block` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.analyze.yaml b/spec/schemas/indices.analyze.yaml index bd1492d8f..fb9b0d49e 100644 --- a/spec/schemas/indices.analyze.yaml +++ b/spec/schemas/indices.analyze.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.analyze category - description: Schemas of indices.analyze category + title: Schemas of `indices.analyze` Category + description: Schemas of `indices.analyze` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.close.yaml b/spec/schemas/indices.close.yaml index d1ba7f4c1..72ad6c07a 100644 --- a/spec/schemas/indices.close.yaml +++ b/spec/schemas/indices.close.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.close category - description: Schemas of indices.close category + title: Schemas of `indices.close` Category + description: Schemas of `indices.close` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.data_streams_stats.yaml b/spec/schemas/indices.data_streams_stats.yaml index f8309bb2e..216fa77ea 100644 --- a/spec/schemas/indices.data_streams_stats.yaml +++ b/spec/schemas/indices.data_streams_stats.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.data_streams_stats category - description: Schemas of indices.data_streams_stats category + title: Schemas of `indices.data_streams_stats` Category + description: Schemas of `indices.data_streams_stats` category. version: 1.0.0 paths: {} components: @@ -10,7 +10,7 @@ components: type: object properties: backing_indices: - description: Current number of backing indices for the data stream. + description: Current number of backing indexes for the data stream. type: number data_stream: $ref: '_common.yaml#/components/schemas/Name' @@ -19,7 +19,7 @@ components: store_size: $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' store_size_bytes: - description: Total size, in bytes, of all shards for the data stream's backing indices. + description: Total size, in bytes, of all shards for the data stream's backing indexes. $ref: '_common.yaml#/components/schemas/ByteCount' required: - backing_indices diff --git a/spec/schemas/indices.get_alias.yaml b/spec/schemas/indices.get_alias.yaml index 50aa52f73..f77de3af5 100644 --- a/spec/schemas/indices.get_alias.yaml +++ b/spec/schemas/indices.get_alias.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.get_alias category - description: Schemas of indices.get_alias category + title: Schemas of `indices.get_alias` Category + description: Schemas of `indices.get_alias` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.get_field_mapping.yaml b/spec/schemas/indices.get_field_mapping.yaml index 24f11fd2a..73af373b8 100644 --- a/spec/schemas/indices.get_field_mapping.yaml +++ b/spec/schemas/indices.get_field_mapping.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.get_field_mapping category - description: Schemas of indices.get_field_mapping category + title: Schemas of `indices.get_field_mapping` Category + description: Schemas of `indices.get_field_mapping` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.get_index_template.yaml b/spec/schemas/indices.get_index_template.yaml index 41baff1f4..43e1688ee 100644 --- a/spec/schemas/indices.get_index_template.yaml +++ b/spec/schemas/indices.get_index_template.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.get_index_template category - description: Schemas of indices.get_index_template category + title: Schemas of `indices.get_index_template` Category + description: Schemas of `indices.get_index_template` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.get_mapping.yaml b/spec/schemas/indices.get_mapping.yaml index 4ba669fe4..b63e4be56 100644 --- a/spec/schemas/indices.get_mapping.yaml +++ b/spec/schemas/indices.get_mapping.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.get_mapping category - description: Schemas of indices.get_mapping category + title: Schemas of `indices.get_mapping` Category + description: Schemas of `indices.get_mapping` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.put_index_template.yaml b/spec/schemas/indices.put_index_template.yaml index bdee9bbe9..57d1d82f3 100644 --- a/spec/schemas/indices.put_index_template.yaml +++ b/spec/schemas/indices.put_index_template.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.put_index_template category - description: Schemas of indices.put_index_template category + title: Schemas of `indices.put_index_template` Category + description: Schemas of `indices.put_index_template` category. version: 1.0.0 paths: {} components: @@ -22,5 +22,3 @@ components: $ref: '_common.mapping.yaml#/components/schemas/TypeMapping' settings: $ref: 'indices._common.yaml#/components/schemas/IndexSettings' - lifecycle: - $ref: 'indices._common.yaml#/components/schemas/DataStreamLifecycle' diff --git a/spec/schemas/indices.recovery.yaml b/spec/schemas/indices.recovery.yaml index d2b781830..bda47b369 100644 --- a/spec/schemas/indices.recovery.yaml +++ b/spec/schemas/indices.recovery.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.recovery category - description: Schemas of indices.recovery category + title: Schemas of `indices.recovery` Category + description: Schemas of `indices.recovery` category. version: 1.0.0 paths: {} components: @@ -175,6 +175,14 @@ components: $ref: '_common.yaml#/components/schemas/Uuid' index: $ref: '_common.yaml#/components/schemas/IndexName' + isSearchableSnapshot: + type: boolean + remoteStoreIndexShallowCopy: + type: boolean + sourceRemoteStoreRepository: + type: ['null', string] + sourceRemoteTranslogRepository: + type: ['null', string] RecoveryStartStatus: type: object properties: diff --git a/spec/schemas/indices.resolve_index.yaml b/spec/schemas/indices.resolve_index.yaml index 6e3b096a8..f8cd9e57b 100644 --- a/spec/schemas/indices.resolve_index.yaml +++ b/spec/schemas/indices.resolve_index.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.resolve_index category - description: Schemas of indices.resolve_index category + title: Schemas of `indices.resolve_index` Category + description: Schemas of `indices.resolve_index` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.rollover.yaml b/spec/schemas/indices.rollover.yaml index f78347fe4..29158a356 100644 --- a/spec/schemas/indices.rollover.yaml +++ b/spec/schemas/indices.rollover.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.rollover category - description: Schemas of indices.rollover category + title: Schemas of `indices.rollover` Category + description: Schemas of `indices.rollover` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.segments.yaml b/spec/schemas/indices.segments.yaml index ae2c62292..e2e8230ba 100644 --- a/spec/schemas/indices.segments.yaml +++ b/spec/schemas/indices.segments.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.segments category - description: Schemas of indices.segments category + title: Schemas of `indices.segments` Category + description: Schemas of `indices.segments` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.shard_stores.yaml b/spec/schemas/indices.shard_stores.yaml index 8e4268a58..0745101db 100644 --- a/spec/schemas/indices.shard_stores.yaml +++ b/spec/schemas/indices.shard_stores.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.shard_stores category - description: Schemas of indices.shard_stores category + title: Schemas of `indices.shard_stores` Category + description: Schemas of `indices.shard_stores` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.simulate_template.yaml b/spec/schemas/indices.simulate_template.yaml index 0265ecc2d..33e87f80b 100644 --- a/spec/schemas/indices.simulate_template.yaml +++ b/spec/schemas/indices.simulate_template.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.simulate_template category - description: Schemas of indices.simulate_template category + title: Schemas of `indices.simulate_template` Category + description: Schemas of `indices.simulate_template` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.stats.yaml b/spec/schemas/indices.stats.yaml index cb13ae0b3..367ce207f 100644 --- a/spec/schemas/indices.stats.yaml +++ b/spec/schemas/indices.stats.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.stats category - description: Schemas of indices.stats category + title: Schemas of `indices.stats` Category + description: Schemas of `indices.stats` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.update_aliases.yaml b/spec/schemas/indices.update_aliases.yaml index ee273091c..5f3de9d9c 100644 --- a/spec/schemas/indices.update_aliases.yaml +++ b/spec/schemas/indices.update_aliases.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.update_aliases category - description: Schemas of indices.update_aliases category + title: Schemas of `indices.update_aliases` Category + description: Schemas of `indices.update_aliases` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/indices.validate_query.yaml b/spec/schemas/indices.validate_query.yaml index 4c13bfa57..5d95f20ca 100644 --- a/spec/schemas/indices.validate_query.yaml +++ b/spec/schemas/indices.validate_query.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of indices.validate_query category - description: Schemas of indices.validate_query category + title: Schemas of `indices.validate_query` Category + description: Schemas of `indices.validate_query` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/ingest._common.yaml b/spec/schemas/ingest._common.yaml index 820b17e33..735ad690a 100644 --- a/spec/schemas/ingest._common.yaml +++ b/spec/schemas/ingest._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of ingest._common category - description: Schemas of ingest._common category + title: Schemas of `ingest._common` Category + description: Schemas of `ingest._common` category. version: 1.0.0 paths: {} components: @@ -203,7 +203,7 @@ components: target_fields: $ref: '_common.yaml#/components/schemas/Fields' trim: - description: Trim whitespaces in unquoted fields. + description: Trim white spaces in unquoted fields. type: boolean required: - field @@ -258,7 +258,7 @@ components: $ref: '_common.yaml#/components/schemas/Field' timezone: description: |- - The timezone to use when parsing the date. + The time zone to use when parsing the date. Supports template snippets. type: string required: @@ -271,8 +271,8 @@ components: properties: date_formats: description: |- - An array of the expected date formats for parsing dates / timestamps in the document being preprocessed. - Can be a java time pattern or one of the following formats: ISO8601, UNIX, UNIX_MS, or TAI64N. + An array of the expected date formats for parsing dates/timestamps in the document being preprocessed. + Can be a java time pattern or one of the following formats: `ISO8601`, `UNIX`, `UNIX_MS`, or `TAI64N`. type: array items: type: string @@ -299,7 +299,7 @@ components: description: The locale to use when parsing the date from the document being preprocessed, relevant when parsing month names or week days. type: string timezone: - description: The timezone to use when parsing the date and when date math index supports resolves expressions into concrete index names. + description: The time zone to use when parsing the date and when date math index supports resolves expressions into concrete index names. type: string required: - date_formats @@ -332,7 +332,7 @@ components: max_matches: description: |- The maximum number of matched documents to include under the configured target field. - The `target_field` will be turned into a json array if `max_matches` is higher than 1, otherwise `target_field` will become a json object. + The `target_field` will be turned into a JSON array if `max_matches` is higher than 1, otherwise `target_field` will become a JSON object. In order to avoid documents getting too large, the maximum allowed value is 128. type: number override: @@ -492,7 +492,7 @@ components: - type: object properties: database_file: - description: The database filename referring to a database the module ships with (GeoLite2-City.mmdb, GeoLite2-Country.mmdb, or GeoLite2-ASN.mmdb) or a custom database in the ingest-geoip config directory. + description: The database filename referring to a database the module ships with (`GeoLite2-City.mmdb`, `GeoLite2-Country.mmdb`, or `GeoLite2-ASN.mmdb`) or a custom database in the `ingest-geoip` config directory. type: string field: $ref: '_common.yaml#/components/schemas/Field' diff --git a/spec/schemas/ingest.simulate.yaml b/spec/schemas/ingest.simulate.yaml index 1efcc86d0..4b525dbf6 100644 --- a/spec/schemas/ingest.simulate.yaml +++ b/spec/schemas/ingest.simulate.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of ingest.simulate category - description: Schemas of ingest.simulate category + title: Schemas of `ingest.simulate` Category + description: Schemas of `ingest.simulate` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/insights._common.yaml b/spec/schemas/insights._common.yaml new file mode 100644 index 000000000..26907f160 --- /dev/null +++ b/spec/schemas/insights._common.yaml @@ -0,0 +1,228 @@ +openapi: 3.1.0 +info: + title: Schemas of query insights + description: Schemas of query insights + version: 1.0.0 +paths: {} +components: + schemas: + TopQueriesResponse: + type: object + properties: + top_queries: + type: array + items: + type: object + $ref: '#/components/schemas/TopQuery' + required: + - top_queries + TopQuery: + type: object + properties: + timestamp: + type: integer + description: The timestamp of the query execution. + total_shards: + type: integer + description: The total number of shards involved in the query. + task_resource_usages: + type: array + items: + type: object + $ref: '#/components/schemas/TaskResourceUsages' + + query_hashcode: + type: string + description: The hash code of the query. + labels: + type: object + description: Additional labels for the query. + search_type: + type: string + description: The search query type (for example, `query_then_fetch`). + source: + type: object + $ref: '#/components/schemas/Source' + node_id: + type: string + description: The node ID associated with the query. + indices: + type: array + items: + type: string + description: The indexes involved in the query. + phase_latency_map: + type: object + measurements: + type: object + $ref: '#/components/schemas/Measurements' + TaskResourceUsages: + type: object + properties: + action: + type: string + description: The action type of the task. + taskId: + type: integer + description: The task ID. + parentTaskId: + type: integer + description: The parent task ID. + nodeId: + type: string + description: The node ID where the task was executed. + taskResourceUsage: + type: object + $ref: '#/components/schemas/TaskResourceUsage' + TaskResourceUsage: + type: object + properties: + cpu_time_in_nanos: + type: integer + description: The CPU time used in nanoseconds. + memory_in_bytes: + type: integer + description: The memory usage in bytes. + Source: + type: object + properties: + aggregations: + description: Defines the aggregations that are run as part of the search request. + type: object + collapse: + $ref: '_core.search.yaml#/components/schemas/FieldCollapse' + explain: + description: If `true`, returns detailed information about score computation as part of a hit. + type: boolean + ext: + description: Configuration of search extensions defined by OpenSearch plugins. + type: object + additionalProperties: + type: object + from: + description: |- + Starting document offset. + Needs to be non-negative. + By default, you cannot page through more than 10,000 hits using the `from` and `size` parameters. + To page through more hits, use the `search_after` parameter. + type: number + highlight: + $ref: '_core.search.yaml#/components/schemas/Highlight' + track_total_hits: + $ref: '_core.search.yaml#/components/schemas/TrackHits' + indices_boost: + description: Boosts the `_score` of documents from specified indexes. + type: array + items: + type: object + additionalProperties: + type: number + docvalue_fields: + description: |- + Array of wildcard (`*`) patterns. + The request returns doc values for field names matching these patterns in the `hits.fields` property of the response. + type: array + items: + $ref: '_common.query_dsl.yaml#/components/schemas/FieldAndFormat' + min_score: + description: |- + Minimum `_score` for matching documents. + Documents with a lower `_score` are not included in the search results. + type: number + post_filter: + $ref: '_common.query_dsl.yaml#/components/schemas/QueryContainer' + profile: + description: |- + Set to `true` to return detailed timing information about the execution of individual components in a search request. + NOTE: This is a debugging tool and adds significant overhead to search execution. + type: boolean + query: + $ref: '_common.query_dsl.yaml#/components/schemas/QueryContainer' + script_fields: + description: Retrieve a script evaluation (based on different fields) for each hit. + type: object + additionalProperties: + $ref: '_common.yaml#/components/schemas/ScriptField' + search_after: + $ref: '_common.yaml#/components/schemas/SortResults' + size: + description: |- + The number of hits to return. + By default, you cannot page through more than 10,000 hits using the `from` and `size` parameters. + To page through more hits, use the `search_after` parameter. + type: number + slice: + $ref: '_common.yaml#/components/schemas/SlicedScroll' + sort: + $ref: '_common.yaml#/components/schemas/Sort' + _source: + $ref: '_core.search.yaml#/components/schemas/SourceConfig' + fields: + description: |- + Array of wildcard (`*`) patterns. + The request returns values for field names matching these patterns in the `hits.fields` property of the response. + type: array + items: + $ref: '_common.query_dsl.yaml#/components/schemas/FieldAndFormat' + suggest: + $ref: '_core.search.yaml#/components/schemas/Suggester' + terminate_after: + description: |- + Maximum number of documents to collect for each shard. + If a query reaches this limit, OpenSearch terminates the query early. + OpenSearch collects documents before sorting. + Use with caution. + OpenSearch applies this parameter to each shard handling the request. + When possible, let OpenSearch perform early termination automatically. + Avoid specifying this parameter for requests that target data streams with backing indexes across multiple data tiers. + If set to `0` (default), the query does not terminate early. + type: integer + format: int32 + timeout: + description: |- + Specifies the period of time to wait for a response from each shard. + If no response is received before the timeout expires, the request fails and returns an error. + Defaults to no timeout. + type: string + track_scores: + description: If `true`, calculate and return document scores, even if the scores are not used for sorting. + type: boolean + version: + description: If `true`, returns document version as part of a hit. + type: boolean + seq_no_primary_term: + description: If `true`, returns sequence number and primary term of the last modification of each hit. + type: boolean + stored_fields: + $ref: '_common.yaml#/components/schemas/Fields' + pit: + $ref: '_core.search.yaml#/components/schemas/PointInTimeReference' + stats: + description: |- + Stats groups to associate with the search. + Each group maintains a statistics aggregation for its associated searches. + You can retrieve these stats using the indexes stats API. + type: array + items: + type: string + Measurement: + type: object + properties: + number: + type: integer + count: + type: integer + aggregationType: + type: string + Measurements: + type: object + properties: + latency: + type: object + $ref: '#/components/schemas/Measurement' + cpu: + type: object + $ref: '#/components/schemas/Measurement' + memory: + type: object + $ref: '#/components/schemas/Measurement' \ No newline at end of file diff --git a/spec/schemas/ism._common.yaml b/spec/schemas/ism._common.yaml index 73cb42071..9c59ff375 100644 --- a/spec/schemas/ism._common.yaml +++ b/spec/schemas/ism._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: Schemas of ism._common Category - description: Schemas of ism._common category. + description: Schemas of `ism._common` category.. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/knn._common.yaml b/spec/schemas/knn._common.yaml index 9b3c1b44a..b4cbeaa36 100644 --- a/spec/schemas/knn._common.yaml +++ b/spec/schemas/knn._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of knn._common category - description: Schemas of knn._common category + title: Schemas of `knn._common` Category + description: Schemas of `knn._common` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/ml._common.yaml b/spec/schemas/ml._common.yaml index 46cffc9f3..ffe3b7bf3 100644 --- a/spec/schemas/ml._common.yaml +++ b/spec/schemas/ml._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of ml category - description: Schemas of ml category + title: Schemas of `ml` Category + description: Schemas of `ml` category. version: 1.0.0 paths: {} components: @@ -22,6 +22,14 @@ components: SearchModelsResponse: type: object properties: + took: + type: integer + description: The time taken to execute the search. + timed_out: + type: boolean + description: Whether the search timed out. + _shards: + $ref: '_common.yaml#/components/schemas/ShardStatistics' hits: $ref: '#/components/schemas/SearchModelsHits' required: @@ -35,6 +43,10 @@ components: type: array items: $ref: '#/components/schemas/SearchModelsHitsHit' + max_score: + type: number + format: float + description: The maximum score. required: - hits - total @@ -43,6 +55,7 @@ components: properties: value: type: integer + format: int64 description: The total number of hits. relation: type: string @@ -53,18 +66,140 @@ components: SearchModelsHitsHit: type: object properties: + _version: + $ref: '_common.yaml#/components/schemas/VersionNumber' + _seq_no: + $ref: '_common.yaml#/components/schemas/SequenceNumber' + _primary_term: + type: integer + description: The primary term. _index: - type: string - description: The index. + $ref: '_common.yaml#/components/schemas/IndexName' _id: + $ref: '_common.yaml#/components/schemas/Id' + _score: + type: number + format: float + description: The score. + _source: + $ref: '#/components/schemas/Source' + model_id: + $ref: '_common.yaml#/components/schemas/Name' + required: + - _score + Source: + type: object + properties: + last_deployed_time: + type: integer + format: int64 + description: The last deployed time. + model_version: type: string - description: The hit ID. + description: The model version. + version: + $ref: '_common.yaml#/components/schemas/VersionString' + created_time: + type: integer + format: int64 + description: The created time. + chunk_number: + type: integer + format: int64 + description: The chunk number. + deploy_to_all_nodes: + type: boolean + description: Whether to deploy to all nodes. + is_hidden: + type: boolean + description: Whether the model is hidden. model_id: + $ref: '_common.yaml#/components/schemas/Name' + description: type: string - description: The model ID. - required: - - _id - - model_id + description: The model description. + model_state: + type: string + description: The model state. + enum: + - DEPLOYED + - DEPLOYING + - DEPLOY_FAILED + - PARTIALLY_DEPLOYED + - REGISTERED + - REGISTERING + model_content_size_in_bytes: + type: integer + format: int64 + description: The model content size in bytes. + model_content_hash_value: + type: string + description: The model content hash value. + planning_worker_node_count: + type: number + description: The planning worker node count. + model_config: + $ref: '#/components/schemas/ModelConfig' + model_format: + type: string + description: The model format. + model_task_type: + type: string + description: The model task type. + last_updated_time: + type: integer + format: int64 + description: The last updated time. + last_registered_time: + type: integer + format: int64 + description: The last registered time. + auto_redeploy_retry_times: + type: integer + format: int64 + description: The auto redeploy retry times. + name: + type: string + description: The model name. + connector_id: + type: string + description: The connector ID. + current_worker_node_count: + type: number + description: The current worker node count. + model_group_id: + type: string + description: The model group ID. + planning_worker_nodes: + type: array + items: + $ref: '_common.yaml#/components/schemas/NodeIds' + total_chunks: + type: integer + format: int64 + description: The total chunks. + algorithm: + type: string + description: The algorithm. + url: + type: string + description: The model URL. + ModelConfig: + type: object + properties: + all_config: + type: string + description: The all config. + model_type: + type: string + description: The model type. + embedding_dimension: + type: integer + format: int64 + description: The embedding dimension. + framework_type: + type: string + description: The framework type. ModelGroupRegistration: type: object properties: diff --git a/spec/schemas/nodes._common.yaml b/spec/schemas/nodes._common.yaml index 9ba3c0621..8b4e8ba17 100644 --- a/spec/schemas/nodes._common.yaml +++ b/spec/schemas/nodes._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of nodes._common category - description: Schemas of nodes._common category + title: Schemas of `nodes._common` Category + description: Schemas of `nodes._common` category. version: 1.0.0 paths: {} components: @@ -276,12 +276,20 @@ components: $ref: '#/components/schemas/ShardSearchPipelineStats' segment_replication_backpressure: $ref: '#/components/schemas/ShardSegmentReplicationBackpressureStats' + remote_store: + $ref: '#/components/schemas/RemoteStoreStats' repositories: $ref: '#/components/schemas/ShardRepositoriesStats' admission_control: $ref: '#/components/schemas/ShardAdmissionControlStats' caches: $ref: '#/components/schemas/ShardCachesStats' + RemoteStoreStats: + type: object + properties: + last_successful_fetch_of_pinned_timestamps: + description: Timestamp for the last successful fetch of pinned timestamps. + $ref: '_common.yaml#/components/schemas/StringifiedEpochTimeUnitSeconds' ShardClusterManagerThrottlingStats: type: object properties: @@ -1000,8 +1008,8 @@ components: $ref: '#/components/schemas/PublishedClusterStates' cluster_state_update: description: |- - Contains low-level statistics about how long various activities took during cluster state updates while the node was the elected master. - Omitted if the node is not master-eligible. + Contains low-level statistics about how long various activities took during cluster state updates while the node was the elected cluster manager. + Omitted if the node is not cluster-manager-eligible. Every field whose name ends in `_time` within this object is also represented as a raw number of milliseconds in a field whose name ends in `_time_millis`. The human-readable fields with a `_time` suffix are only returned if requested with the `?human=true` query parameter. type: object diff --git a/spec/schemas/nodes.info.yaml b/spec/schemas/nodes.info.yaml index 2d27da447..789efa969 100644 --- a/spec/schemas/nodes.info.yaml +++ b/spec/schemas/nodes.info.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of nodes.info category - description: Schemas of nodes.info category + title: Schemas of `nodes.info` Category + description: Schemas of `nodes.info` category. version: 1.0.0 paths: {} components: @@ -228,7 +228,7 @@ components: description: Number of processors available to the Java virtual machine type: number allocated_processors: - description: The number of processors actually used to calculate thread pool size. This number can be set with the node.processors setting of a node and defaults to the number of processors reported by the OS. + description: The number of processors actually used to calculate thread pool size. This number can be set with the `node.processors` setting of a node and defaults to the number of processors reported by the OS. type: number name: $ref: '_common.yaml#/components/schemas/Name' diff --git a/spec/schemas/nodes.reload_secure_settings.yaml b/spec/schemas/nodes.reload_secure_settings.yaml index d748653b2..f1b106024 100644 --- a/spec/schemas/nodes.reload_secure_settings.yaml +++ b/spec/schemas/nodes.reload_secure_settings.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of nodes.reload_secure_settings category - description: Schemas of nodes.reload_secure_settings category + title: Schemas of `nodes.reload_secure_settings` Category + description: Schemas of `nodes.reload_secure_settings` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/nodes.stats.yaml b/spec/schemas/nodes.stats.yaml index 52dd278d0..0c5a1ee19 100644 --- a/spec/schemas/nodes.stats.yaml +++ b/spec/schemas/nodes.stats.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of nodes.stats category - description: Schemas of nodes.stats category + title: Schemas of `nodes.stats` Category + description: Schemas of `nodes.stats` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/nodes.usage.yaml b/spec/schemas/nodes.usage.yaml index bf397bfbf..2ce22876e 100644 --- a/spec/schemas/nodes.usage.yaml +++ b/spec/schemas/nodes.usage.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of nodes.usage category - description: Schemas of nodes.usage category + title: Schemas of `nodes.usage` Category + description: Schemas of `nodes.usage` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/notifications._common.yaml b/spec/schemas/notifications._common.yaml index 55d1a0040..791816731 100644 --- a/spec/schemas/notifications._common.yaml +++ b/spec/schemas/notifications._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of notifications._common category - description: Schemas of notifications._common category + title: Schemas of `notifications._common` Category + description: Schemas of `notifications._common` category. version: 1.0.0 paths: {} components: @@ -34,23 +34,14 @@ components: RestStatus: type: string enum: - - accepted - - continue - - created - - found - - moved_permanently - - multi_status - - multiple_choices - - no_content - - non_authoritative_information - - not_modified - - ok - - partial_content - - reset_content - - see_other - - switching_protocols - - temporary_redirect - - use_proxy + - ACCEPTED + - CREATED + - MULTI_STATUS + - NON_AUTHORITATIVE_INFORMATION + - NO_CONTENT + - OK + - PARTIAL_CONTENT + - RESET_CONTENT NotificationConfigType: type: string description: Type of notification configuration. diff --git a/spec/schemas/observability._common.yaml b/spec/schemas/observability._common.yaml index fc8018f55..08b7fbce6 100644 --- a/spec/schemas/observability._common.yaml +++ b/spec/schemas/observability._common.yaml @@ -218,7 +218,7 @@ components: $ref: '#/components/schemas/ErrorResponse' status: type: integer - example: 404 + # example: 404 required: - error - status @@ -232,10 +232,10 @@ components: $ref: '#/components/schemas/RootCause' type: type: string - example: status_exception + # example: status_exception reason: type: string - example: 'ObservabilityObject {objectId} not found' + # example: 'ObservabilityObject {objectId} not found' required: - reason - root_cause @@ -246,10 +246,10 @@ components: properties: type: type: string - example: status_exception + # example: status_exception reason: type: string - example: 'ObservabilityObject {objectId} not found' + # example: 'ObservabilityObject {objectId} not found' required: - reason - type diff --git a/spec/schemas/query._common.yaml b/spec/schemas/query._common.yaml index 40277b8b0..e6511cc8f 100644 --- a/spec/schemas/query._common.yaml +++ b/spec/schemas/query._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas for OpenSearch Query Datasources API - description: Schemas for OpenSearch Query Datasources API + title: Schemas for OpenSearch Query Data Sources API + description: Schemas for OpenSearch Query Data Sources API version: 1.0.0 paths: {} components: @@ -71,6 +71,14 @@ components: - error ErrorResponse: + type: object + properties: + error: + $ref: '#/components/schemas/Error' + status: + type: number + + Error: type: object properties: root_cause: diff --git a/spec/schemas/remote_store._common.yaml b/spec/schemas/remote_store._common.yaml index 3c0ca5057..cb4616efa 100644 --- a/spec/schemas/remote_store._common.yaml +++ b/spec/schemas/remote_store._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of remote_store._common category - description: Schemas of remote_store._common category + title: Schemas of `remote_store._common` Category + description: Schemas of `remote_store._common` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/replication._common.yaml b/spec/schemas/replication._common.yaml index bdd11c3f3..49f5f6402 100644 --- a/spec/schemas/replication._common.yaml +++ b/spec/schemas/replication._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of replication._common category. - description: Schemas of replication._common category. + title: Schemas of `replication._common` Category. + description: Schemas of `replication._common` category.. version: 1.0.0 paths: {} components: @@ -10,9 +10,9 @@ components: type: object properties: leader_alias: - type: string + $ref: '_common.yaml#/components/schemas/IndexAlias' leader_index: - type: string + $ref: '_common.yaml#/components/schemas/IndexName' use_roles: $ref: '#/components/schemas/UseRoles' UseRoles: @@ -27,14 +27,20 @@ components: properties: status: type: string + enum: + - BOOTSTRAPPING + - PAUSED + - REPLICATION NOT IN PROGRESS + - RUNNING + - SYNCING reason: type: string leader_alias: - type: string + $ref: '_common.yaml#/components/schemas/IndexAlias' leader_index: - type: string + $ref: '_common.yaml#/components/schemas/IndexName' follower_index: - type: string + $ref: '_common.yaml#/components/schemas/IndexName' syncing_details: $ref: '#/components/schemas/SyncingDetails' SyncingDetails: @@ -45,7 +51,7 @@ components: follower_checkpoint: type: integer seq_no: - type: integer + $ref: '_common.yaml#/components/schemas/SequenceNumber' LeaderStatus: type: object properties: @@ -54,17 +60,17 @@ components: operations_read: type: number translog_size_bytes: - type: number + $ref: '_common.yaml#/components/schemas/ByteCount' operations_read_lucene: type: number operations_read_translog: type: number total_read_time_lucene_millis: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedEpochTimeUnitMillis' total_read_time_translog_millis: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedEpochTimeUnitMillis' bytes_read: - type: number + $ref: '_common.yaml#/components/schemas/ByteCount' index_stats: type: object additionalProperties: @@ -75,17 +81,17 @@ components: operations_read: type: number translog_size_bytes: - type: number + $ref: '_common.yaml#/components/schemas/ByteCount' operations_read_lucene: type: number operations_read_translog: type: number total_read_time_lucene_millis: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedEpochTimeUnitMillis' total_read_time_translog_millis: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedEpochTimeUnitMillis' bytes_read: - type: number + $ref: '_common.yaml#/components/schemas/ByteCount' FollowerStatus: type: object properties: @@ -118,7 +124,7 @@ components: leader_checkpoint: type: number total_write_time_millis: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedEpochTimeUnitMillis' index_stats: type: object additionalProperties: @@ -143,7 +149,7 @@ components: leader_checkpoint: type: number total_write_time_millis: - type: number + $ref: '_common.yaml#/components/schemas/StringifiedEpochTimeUnitMillis' AutoFollowStatus: type: object properties: @@ -178,6 +184,8 @@ components: type: array items: type: string + last_execution_time: + type: number SettingsBody: type: object properties: @@ -187,7 +195,7 @@ components: type: object properties: settings: - anyOf: + allOf: - type: object properties: index.number_of_shards: @@ -206,7 +214,7 @@ components: type: object properties: leader_alias: - type: string + $ref: '_common.yaml#/components/schemas/IndexAlias' name: type: string pattern: @@ -217,6 +225,6 @@ components: type: object properties: leader_alias: - type: string + $ref: '_common.yaml#/components/schemas/IndexAlias' name: type: string \ No newline at end of file diff --git a/spec/schemas/rollups._common.yaml b/spec/schemas/rollups._common.yaml index cc12292bc..6e6da5704 100644 --- a/spec/schemas/rollups._common.yaml +++ b/spec/schemas/rollups._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of rollup._common category - description: Schemas of rollup._common category + title: Schemas of `rollup._common` Category + description: Schemas of `rollup._common` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/search_pipeline._common.yaml b/spec/schemas/search_pipeline._common.yaml index ebb14ee9a..1b6d32666 100644 --- a/spec/schemas/search_pipeline._common.yaml +++ b/spec/schemas/search_pipeline._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of search_pipeline._common category - description: Schemas of search_pipeline._common category + title: Schemas of `search_pipeline._common` Category + description: Schemas of `search_pipeline._common` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/security._common.yaml b/spec/schemas/security._common.yaml index d98618758..c754e2325 100644 --- a/spec/schemas/security._common.yaml +++ b/spec/schemas/security._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of security._common category. - description: Schemas of security._common category. + title: Schemas of `security._common` Category. + description: Schemas of `security._common` category.. version: 1.0.0 paths: {} components: @@ -64,7 +64,7 @@ components: type: boolean requests: type: object - description: An object with APIs as key and array of http methods as values. + description: An object with APIs as key and array of HTTP methods as values. AuditConfig: type: object @@ -131,7 +131,7 @@ components: properties: user: type: string - description: Stringified User object. + description: A User object as a string. user_name: type: string description: User's name. @@ -167,7 +167,7 @@ components: description: Number of peer certificates. sso_logout_url: type: ['null', string] - description: Logout url. + description: Logout URL. size_of_user: type: string description: Size of user in memory. @@ -420,7 +420,7 @@ components: description: The generated OBO token. durationSeconds: type: string - description: The duration of the token, defaulted to 300s. + description: The duration of the token. Default is `300s`. HealthInfo: type: object @@ -454,6 +454,22 @@ components: items: type: string + Error: + type: object + properties: + status: + type: string + enum: + - BAD_REQUEST + - CONFLICT + - FORBIDDEN + - INTERNAL_SERVER_ERROR + - NOT_FOUND + - NOT_IMPLEMENTED + - UNAUTHORIZED + message: + type: string + InternalServerError: type: object properties: @@ -534,7 +550,7 @@ components: type: boolean disabled_endpoints: type: object - description: An object with disabled APIs as key and array of http methods as values. + description: An object with disabled APIs as key and array of HTTP methods as values. Role: type: object @@ -623,22 +639,22 @@ components: type: string ssl_protocol: type: ['null',string] - description: Protocol for this ssl setup. + description: Protocol for this SSL setup. ssl_cipher: type: ['null',string] - description: Cipher for this ssl setup. + description: Cipher for this SSL setup. ssl_openssl_available: type: boolean - description: A boolean to indicate if OpenSSL is available. + description: A Boolean to indicate if OpenSSL is available. ssl_openssl_version: type: [number, string] - description: Version of openssl. + description: Version of OpenSSL. ssl_openssl_version_string: type: ['null', string] - description: Full version string for openssl version. + description: Full version string for OpenSSL version. ssl_openssl_non_available_cause: type: ['null', string] - description: Reason for openssl unavailability. + description: Reason for OpenSSL unavailability. ssl_openssl_supports_key_manager_factory: type: boolean description: Indicates where KMF is supported. @@ -647,7 +663,7 @@ components: description: Indicates whether hostname validation is supported. ssl_provider_http: type: ['null',string] - description: Returns http provider's name. + description: Returns HTTP provider's name. ssl_provider_transport_server: type: string description: Returns transport server's name. diff --git a/spec/schemas/snapshot._common.yaml b/spec/schemas/snapshot._common.yaml index 83c8a8d9c..8eae7a0ea 100644 --- a/spec/schemas/snapshot._common.yaml +++ b/spec/schemas/snapshot._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of snapshot._common category - description: Schemas of snapshot._common category + title: Schemas of `snapshot._common` Category + description: Schemas of `snapshot._common` category. version: 1.0.0 paths: {} components: @@ -31,16 +31,14 @@ components: type: array items: $ref: '_common.yaml#/components/schemas/IndexName' - index_details: - type: object - additionalProperties: - $ref: '#/components/schemas/IndexDetails' metadata: $ref: '_common.yaml#/components/schemas/Metadata' + pinned_timestamp: + $ref: '_common.yaml#/components/schemas/EpochTimeUnitMillis' reason: type: string - repository: - $ref: '_common.yaml#/components/schemas/Name' + remote_store_index_shallow_copy: + type: boolean snapshot: $ref: '_common.yaml#/components/schemas/Name' shards: @@ -57,10 +55,6 @@ components: $ref: '_common.yaml#/components/schemas/VersionString' version_id: $ref: '_common.yaml#/components/schemas/VersionNumber' - feature_states: - type: array - items: - $ref: '#/components/schemas/InfoFeatureState' required: - data_streams - snapshot @@ -83,31 +77,6 @@ components: - reason - shard_id - status - IndexDetails: - type: object - properties: - shard_count: - type: number - size: - $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' - size_in_bytes: - $ref: '_common.yaml#/components/schemas/ByteCount' - max_segments_per_shard: - type: number - required: - - max_segments_per_shard - - shard_count - - size_in_bytes - InfoFeatureState: - type: object - properties: - feature_name: - type: string - indices: - $ref: '_common.yaml#/components/schemas/Indices' - required: - - feature_name - - indices Repository: type: object properties: diff --git a/spec/schemas/snapshot.cleanup_repository.yaml b/spec/schemas/snapshot.cleanup_repository.yaml index de41cadb0..9560ee07c 100644 --- a/spec/schemas/snapshot.cleanup_repository.yaml +++ b/spec/schemas/snapshot.cleanup_repository.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of snapshot.cleanup_repository category - description: Schemas of snapshot.cleanup_repository category + title: Schemas of `snapshot.cleanup_repository` Category + description: Schemas of `snapshot.cleanup_repository` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/snapshot.get.yaml b/spec/schemas/snapshot.get.yaml deleted file mode 100644 index 8834816d5..000000000 --- a/spec/schemas/snapshot.get.yaml +++ /dev/null @@ -1,21 +0,0 @@ -openapi: 3.1.0 -info: - title: Schemas of snapshot.get category - description: Schemas of snapshot.get category - version: 1.0.0 -paths: {} -components: - schemas: - SnapshotResponseItem: - type: object - properties: - repository: - $ref: '_common.yaml#/components/schemas/Name' - snapshots: - type: array - items: - $ref: 'snapshot._common.yaml#/components/schemas/SnapshotInfo' - error: - $ref: '_common.yaml#/components/schemas/ErrorCause' - required: - - repository diff --git a/spec/schemas/snapshot.restore.yaml b/spec/schemas/snapshot.restore.yaml index 57f8c4fe1..368d50852 100644 --- a/spec/schemas/snapshot.restore.yaml +++ b/spec/schemas/snapshot.restore.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of snapshot.restore category - description: Schemas of snapshot.restore category + title: Schemas of `snapshot.restore` Category + description: Schemas of `snapshot.restore` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/snapshot.verify_repository.yaml b/spec/schemas/snapshot.verify_repository.yaml index 92eb0a2c1..1ff0443dc 100644 --- a/spec/schemas/snapshot.verify_repository.yaml +++ b/spec/schemas/snapshot.verify_repository.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of snapshot.verify_repository category - description: Schemas of snapshot.verify_repository category + title: Schemas of `snapshot.verify_repository` Category + description: Schemas of `snapshot.verify_repository` category. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/sql._common.yaml b/spec/schemas/sql._common.yaml index d9f50ade1..fbb153c44 100644 --- a/spec/schemas/sql._common.yaml +++ b/spec/schemas/sql._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of sql._common category. - description: Schemas of sql._common category. + title: Schemas of `sql._common` Category. + description: Schemas of `sql._common` category.. version: 1.0.0 paths: {} components: diff --git a/spec/schemas/tasks._common.yaml b/spec/schemas/tasks._common.yaml index c5afaccda..55502dfeb 100644 --- a/spec/schemas/tasks._common.yaml +++ b/spec/schemas/tasks._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of tasks._common category - description: Schemas of tasks._common category + title: Schemas of `tasks._common` Category + description: Schemas of `tasks._common` category. version: 1.0.0 paths: {} components: @@ -35,7 +35,7 @@ components: $ref: '#/components/schemas/TaskInfo' required: - tasks - TaskInfo: + TaskInfoBase: type: object properties: action: @@ -76,6 +76,11 @@ components: - running_time_in_nanos - start_time_in_millis - type + TaskInfo: + allOf: + - $ref: '#/components/schemas/TaskInfoBase' + - type: object + properties: {} TaskInfos: oneOf: - title: grouped_by_none @@ -88,7 +93,7 @@ components: $ref: '#/components/schemas/TaskGroup' TaskGroup: allOf: - - $ref: '#/components/schemas/TaskInfo' + - $ref: '#/components/schemas/TaskInfoBase' - type: object properties: children: diff --git a/spec/schemas/transforms._common.yaml b/spec/schemas/transforms._common.yaml index 5d44ef5d9..bee81dc00 100644 --- a/spec/schemas/transforms._common.yaml +++ b/spec/schemas/transforms._common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of transforms._common category - description: Schemas of transforms._common category + title: Schemas of `transforms._common` Category + description: Schemas of `transforms._common` category. version: 1.0.0 components: schemas: diff --git a/spec/schemas/wlm._common.yaml b/spec/schemas/wlm._common.yaml new file mode 100644 index 000000000..2272f590c --- /dev/null +++ b/spec/schemas/wlm._common.yaml @@ -0,0 +1,105 @@ +openapi: 3.1.0 +info: + title: Schemas of `wlm._common` Category + description: Schemas of `wlm._common` category. + version: 1.0.0 +paths: {} +components: + schemas: + QueryGroupResponse: + type: object + properties: + _id: + description: The ID of the query group, which can be used to associate query requests with the group and enforce the group's resource limits. + type: string + name: + description: The name of the query group. + type: string + resiliency_mode: + description: The resiliency mode of the query group. + type: string + enum: [enforced, monitor,soft] + updated_at: + description: The time at which the query group was last updated. + type: integer + format: int64 + resource_limits: + description: The resource limits for query requests in the query group. + anyOf: + - type: object + properties: + memory: + type: number + format: double + cpu: + type: number + format: double + required: + - memory + - type: object + properties: + memory: + type: number + format: double + cpu: + type: number + format: double + required: + - cpu + required: + - _id + - name + - resiliency_mode + - resource_limits + - updated_at + QueryGroupCreate: + type: object + properties: + name: + type: string + resiliency_mode: + type: string + enum: [enforced, monitor,soft] + resource_limits: + anyOf: + - type: object + properties: + memory: + type: number + format: double + cpu: + type: number + format: double + required: + - memory + - type: object + properties: + memory: + type: number + format: double + cpu: + type: number + format: double + required: + - cpu + required: + - name + - resiliency_mode + - resource_limits + QueryGroupUpdate: + type: object + properties: + resiliency_mode: + type: string + enum: [enforced, monitor,soft] + resource_limits: + $ref: '#/components/schemas/ResourceLimitsSchema' + ResourceLimitsSchema: + type: object + properties: + memory: + type: number + format: double + cpu: + type: number + format: double diff --git a/tests/dangling/.data/README.md b/tests/dangling/.data/README.md new file mode 100644 index 000000000..9c41b3394 --- /dev/null +++ b/tests/dangling/.data/README.md @@ -0,0 +1,89 @@ +This container contains data from a detached cluster with a `movies` index. It was created as follows. + +Data will be stored in [opensearch-data1](./opensearch-data1). + +From this `.data` directory. + +Create a single-node cluster (without security) and open a shell in it. + +``` +docker run --name opensearch-single-node-cluster\ + -it --entrypoint /bin/bash \ + -p 9200:9200 -p 9600:9600 \ + -e "discovery.type=single-node" \ + --ulimit memlock=-1:-1 \ + --ulimit nofile=65536:65536 \ + -e DISABLE_INSTALL_DEMO_CONFIG=true \ + -e DISABLE_SECURITY_PLUGIN=true \ + -v $(pwd)/opensearch-data1:/usr/share/opensearch/data \ + opensearchproject/opensearch:latest +``` + +Start the service. + +``` +./opensearch-docker-entrypoint.sh +``` + +From another shell, add data. + +``` +curl -X POST http://localhost:9200/movies/_doc --json '{"director":"Bennett Miller","title":"The Cruise","year":1998}' + +{"_index":"movies","_id":"XBDMTpMBjBlaZgUqAkGm","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1} +``` + +Remove replicas. + +``` +curl -X PUT http://localhost:9200/movies/_settings --json '{"index.number_of_replicas":0}' + +{"acknowledged":true} +``` + +Stop the service with Ctrl+C. + +Detach cluster. + +``` +./bin/opensearch-node detach-cluster + +Confirm [y/N] y +Node was successfully detached from the cluster +``` + +The cluster in [docker-compose](docker-compose.yml) uses this data. Start it. + +``` +docker compose up +``` + +After the service starts the `movies` index is dangling. + +To make it usable in tests we need to turn it to a single node cluster. + +Remove replicas. + +``` +curl -X PUT http://localhost:9200/_settings --json '{"index.number_of_replicas":0}' + +{"acknowledged":true} +``` + +Remove node2 from voting. + +``` +curl -X POST http://localhost:9200/_cluster/voting_config_exclusions?node_names=opensearch-node2 + +{"acknowledged":true} +``` + +Stop the cluster. + +Remove lock files, those will cause an "Underlying file changed by an external force" error when copied to the docker container. + +``` +find . -name *.lock | xargs rm +``` + +Now you can run the [single-node docker-compose](../docker-compose.yml) in the folder above. diff --git a/tests/dangling/.data/docker-compose.yml b/tests/dangling/.data/docker-compose.yml new file mode 100644 index 000000000..5a71a555f --- /dev/null +++ b/tests/dangling/.data/docker-compose.yml @@ -0,0 +1,42 @@ +version: '3' +services: + opensearch-node1: + image: ${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject}/opensearch:${OPENSEARCH_VERSION:-latest}${OPENSEARCH_DOCKER_REF} + environment: + - DISABLE_INSTALL_DEMO_CONFIG=true + - DISABLE_SECURITY_PLUGIN=true + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 + - cluster.name=opensearch-cluster + - discovery.seed_hosts=opensearch-node1,opensearch-node2 + - node.name=opensearch-node1 + volumes: + - ./opensearch-data1:/usr/share/opensearch/data + ports: + - 9200:9200 + - 9600:9600 + networks: + - opensearch-net + opensearch-node2: + image: ${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject}/opensearch:${OPENSEARCH_VERSION:-latest}${OPENSEARCH_DOCKER_REF} + environment: + - DISABLE_INSTALL_DEMO_CONFIG=true + - DISABLE_SECURITY_PLUGIN=true + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 + - cluster.name=opensearch-cluster + - discovery.seed_hosts=opensearch-node1,opensearch-node2 + - node.name=opensearch-node2 + volumes: + - opensearch-data2:/usr/share/opensearch/data + networks: + - opensearch-net + +volumes: + opensearch-data1: {} + opensearch-data2: {} + +networks: + opensearch-net: {} diff --git a/tests/dangling/.data/opensearch-data1/batch_metrics_enabled.conf b/tests/dangling/.data/opensearch-data1/batch_metrics_enabled.conf new file mode 100644 index 000000000..02e4a84d6 --- /dev/null +++ b/tests/dangling/.data/opensearch-data1/batch_metrics_enabled.conf @@ -0,0 +1 @@ +false \ No newline at end of file diff --git a/tests/dangling/.data/opensearch-data1/logging_enabled.conf b/tests/dangling/.data/opensearch-data1/logging_enabled.conf new file mode 100644 index 000000000..02e4a84d6 --- /dev/null +++ b/tests/dangling/.data/opensearch-data1/logging_enabled.conf @@ -0,0 +1 @@ +false \ No newline at end of file diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fdm b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fdm new file mode 100644 index 000000000..c20016589 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fdm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fdt b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fdt new file mode 100644 index 000000000..5026b3eeb Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fdt differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fdx b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fdx new file mode 100644 index 000000000..3d8366cee Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fdx differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fnm b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fnm new file mode 100644 index 000000000..c7a2b7608 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.fnm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.si b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.si new file mode 100644 index 000000000..26b34adc3 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_1.liv b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_1.liv new file mode 100644 index 000000000..c404ccae2 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_1.liv differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.doc b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.doc new file mode 100644 index 000000000..fc294ab9f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.doc differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.psm b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.psm new file mode 100644 index 000000000..fe51aa248 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.psm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.tim b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.tim new file mode 100644 index 000000000..d19cc2710 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.tim differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.tip b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.tip new file mode 100644 index 000000000..ae30cf17b Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.tip differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.tmd b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.tmd new file mode 100644 index 000000000..bc10e6fd6 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2p_Lucene912_0.tmd differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2q.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2q.cfe new file mode 100644 index 000000000..63d902207 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2q.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2q.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2q.cfs new file mode 100644 index 000000000..d47118b29 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2q.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2q.si b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2q.si new file mode 100644 index 000000000..36e1c503d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/_2q.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/manifest-6.st b/tests/dangling/.data/opensearch-data1/nodes/0/_state/manifest-6.st new file mode 100644 index 000000000..030f9cbe0 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/manifest-6.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/node-6.st b/tests/dangling/.data/opensearch-data1/nodes/0/_state/node-6.st new file mode 100644 index 000000000..37b99d5ee Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/node-6.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/_state/segments_2t b/tests/dangling/.data/opensearch-data1/nodes/0/_state/segments_2t new file mode 100644 index 000000000..6aa990008 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/_state/segments_2t differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/_state/retention-leases-6.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/_state/retention-leases-6.st new file mode 100644 index 000000000..f4d00f153 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/_state/retention-leases-6.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/_state/state-5.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/_state/state-5.st new file mode 100644 index 000000000..6c41e0a2a Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/_state/state-5.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/index/segments_4 b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/index/segments_4 new file mode 100644 index 000000000..1063081d6 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/index/segments_4 differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/translog/translog-7.tlog b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/translog/translog-7.tlog new file mode 100644 index 000000000..5e778b2cd Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/translog/translog-7.tlog differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/translog/translog.ckp b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/translog/translog.ckp new file mode 100644 index 000000000..9e4f76e8d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/0/translog/translog.ckp differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/_state/state-13.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/_state/state-13.st new file mode 100644 index 000000000..6603fd8b2 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/-QraBKjKRAyJE-LVG03EVg/_state/state-13.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/_state/retention-leases-1.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/_state/retention-leases-1.st new file mode 100644 index 000000000..92392a56f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/_state/retention-leases-1.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/_state/state-0.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/_state/state-0.st new file mode 100644 index 000000000..55048f936 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/_state/state-0.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_0.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_0.cfe new file mode 100644 index 000000000..8659f29db Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_0.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_0.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_0.cfs new file mode 100644 index 000000000..8bd747888 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_0.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_0.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_0.si new file mode 100644 index 000000000..d8783e28f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_0.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1.cfe new file mode 100644 index 000000000..3409ed44e Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1.cfs new file mode 100644 index 000000000..60aa04ef1 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1.si new file mode 100644 index 000000000..5634f5eaf Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1_1.fnm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1_1.fnm new file mode 100644 index 000000000..a383c909f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1_1.fnm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1_1_Lucene90_0.dvd b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1_1_Lucene90_0.dvd new file mode 100644 index 000000000..9156b39c9 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1_1_Lucene90_0.dvd differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1_1_Lucene90_0.dvm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1_1_Lucene90_0.dvm new file mode 100644 index 000000000..77883d3ca Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_1_1_Lucene90_0.dvm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2.cfe new file mode 100644 index 000000000..987868e5c Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2.cfs new file mode 100644 index 000000000..2e105565a Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2.si new file mode 100644 index 000000000..44be7cf2f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2_1.fnm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2_1.fnm new file mode 100644 index 000000000..cb2806756 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2_1.fnm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2_1_Lucene90_0.dvd b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2_1_Lucene90_0.dvd new file mode 100644 index 000000000..24885d975 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2_1_Lucene90_0.dvd differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2_1_Lucene90_0.dvm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2_1_Lucene90_0.dvm new file mode 100644 index 000000000..ef4316101 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_2_1_Lucene90_0.dvm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_3.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_3.cfe new file mode 100644 index 000000000..c145c10ae Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_3.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_3.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_3.cfs new file mode 100644 index 000000000..fac08a153 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_3.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_3.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_3.si new file mode 100644 index 000000000..c885135a4 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/_3.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/segments_3 b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/segments_3 new file mode 100644 index 000000000..976ead01a Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/index/segments_3 differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/translog/translog-3.tlog b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/translog/translog-3.tlog new file mode 100644 index 000000000..fdb7451ae Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/translog/translog-3.tlog differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/translog/translog.ckp b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/translog/translog.ckp new file mode 100644 index 000000000..0ecbdcce8 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/0/translog/translog.ckp differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/_state/state-3.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/_state/state-3.st new file mode 100644 index 000000000..2167fa7a8 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/7NIf6VBiSMCH7TWyPr6hgQ/_state/state-3.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/_state/retention-leases-0.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/_state/retention-leases-0.st new file mode 100644 index 000000000..138f76221 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/_state/retention-leases-0.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/_state/state-0.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/_state/state-0.st new file mode 100644 index 000000000..68f617863 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/_state/state-0.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/_0.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/_0.cfe new file mode 100644 index 000000000..c693240f9 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/_0.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/_0.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/_0.cfs new file mode 100644 index 000000000..835edc127 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/_0.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/_0.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/_0.si new file mode 100644 index 000000000..f42d77242 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/_0.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/segments_3 b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/segments_3 new file mode 100644 index 000000000..0b3afd386 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/index/segments_3 differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/translog/translog-3.tlog b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/translog/translog-3.tlog new file mode 100644 index 000000000..51a5159a9 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/translog/translog-3.tlog differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/translog/translog.ckp b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/translog/translog.ckp new file mode 100644 index 000000000..43c040560 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/0/translog/translog.ckp differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/_state/state-1.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/_state/state-1.st new file mode 100644 index 000000000..1bf4c5368 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/OknnOhCGTamE8WZRCobe4A/_state/state-1.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/_state/retention-leases-7.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/_state/retention-leases-7.st new file mode 100644 index 000000000..35bdaf051 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/_state/retention-leases-7.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/_state/state-4.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/_state/state-4.st new file mode 100644 index 000000000..958068091 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/_state/state-4.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_18.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_18.cfe new file mode 100644 index 000000000..e6920f00d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_18.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_18.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_18.cfs new file mode 100644 index 000000000..4828bdd0c Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_18.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_18.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_18.si new file mode 100644 index 000000000..96ca7fc02 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_18.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fdm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fdm new file mode 100644 index 000000000..9dd600ce5 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fdm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fdt b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fdt new file mode 100644 index 000000000..4b8c0fe4d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fdt differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fdx b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fdx new file mode 100644 index 000000000..191775e28 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fdx differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fnm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fnm new file mode 100644 index 000000000..789a81831 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.fnm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.kdd b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.kdd new file mode 100644 index 000000000..25d6a2cc6 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.kdd differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.kdi b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.kdi new file mode 100644 index 000000000..848c04aaf Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.kdi differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.kdm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.kdm new file mode 100644 index 000000000..8438b1b44 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.kdm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.nvd b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.nvd new file mode 100644 index 000000000..0422ed9ea Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.nvd differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.nvm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.nvm new file mode 100644 index 000000000..2d2b9f6a8 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.nvm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.si new file mode 100644 index 000000000..40f4f638d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_2.fnm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_2.fnm new file mode 100644 index 000000000..4bf4d8e5f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_2.fnm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_2_Lucene90_0.dvd b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_2_Lucene90_0.dvd new file mode 100644 index 000000000..ffd53a402 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_2_Lucene90_0.dvd differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_2_Lucene90_0.dvm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_2_Lucene90_0.dvm new file mode 100644 index 000000000..7a835e301 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_2_Lucene90_0.dvm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene90_0.dvd b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene90_0.dvd new file mode 100644 index 000000000..3790ea9da Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene90_0.dvd differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene90_0.dvm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene90_0.dvm new file mode 100644 index 000000000..49cc8ccab Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene90_0.dvm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.doc b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.doc new file mode 100644 index 000000000..bd40e6d1c Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.doc differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.pos b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.pos new file mode 100644 index 000000000..e99539fef Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.pos differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.psm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.psm new file mode 100644 index 000000000..87f65f6e5 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.psm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.tim b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.tim new file mode 100644 index 000000000..dffd62c2d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.tim differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.tip b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.tip new file mode 100644 index 000000000..086390316 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.tip differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.tmd b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.tmd new file mode 100644 index 000000000..a98ad1cfe Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_19_Lucene912_0.tmd differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a.cfe new file mode 100644 index 000000000..b8750c993 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a.cfs new file mode 100644 index 000000000..7af4fd3df Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a.si new file mode 100644 index 000000000..2581ed8d7 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a_1.fnm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a_1.fnm new file mode 100644 index 000000000..2aa9f37b2 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a_1.fnm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a_1_Lucene90_0.dvd b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a_1_Lucene90_0.dvd new file mode 100644 index 000000000..d443316c5 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a_1_Lucene90_0.dvd differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a_1_Lucene90_0.dvm b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a_1_Lucene90_0.dvm new file mode 100644 index 000000000..a13a220b0 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1a_1_Lucene90_0.dvm differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1b.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1b.cfe new file mode 100644 index 000000000..b4809a6a6 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1b.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1b.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1b.cfs new file mode 100644 index 000000000..daed1c35f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1b.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1b.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1b.si new file mode 100644 index 000000000..4cfba09ab Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/_1b.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/segments_c b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/segments_c new file mode 100644 index 000000000..9828f80de Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/index/segments_c differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/translog/translog-12.tlog b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/translog/translog-12.tlog new file mode 100644 index 000000000..f86b6b8f7 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/translog/translog-12.tlog differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/translog/translog.ckp b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/translog/translog.ckp new file mode 100644 index 000000000..5b2854423 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/0/translog/translog.ckp differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/_state/state-12.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/_state/state-12.st new file mode 100644 index 000000000..1144d0ce3 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/PhgNgHtKQwyUpgIvYNnuQw/_state/state-12.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/_state/retention-leases-0.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/_state/retention-leases-0.st new file mode 100644 index 000000000..138f76221 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/_state/retention-leases-0.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/_state/state-1.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/_state/state-1.st new file mode 100644 index 000000000..aa3e749c4 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/_state/state-1.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_0.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_0.cfe new file mode 100644 index 000000000..e8721e4bb Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_0.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_0.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_0.cfs new file mode 100644 index 000000000..64e2404ba Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_0.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_0.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_0.si new file mode 100644 index 000000000..85ec86610 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_0.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_1.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_1.cfe new file mode 100644 index 000000000..944a0032a Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_1.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_1.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_1.cfs new file mode 100644 index 000000000..2bd5186b3 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_1.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_1.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_1.si new file mode 100644 index 000000000..93eb749b5 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/_1.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/segments_3 b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/segments_3 new file mode 100644 index 000000000..bd905969a Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/index/segments_3 differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/translog/translog-4.tlog b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/translog/translog-4.tlog new file mode 100644 index 000000000..2caaaac0d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/translog/translog-4.tlog differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/translog/translog.ckp b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/translog/translog.ckp new file mode 100644 index 000000000..c76eb3a22 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/0/translog/translog.ckp differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/_state/state-4.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/_state/state-4.st new file mode 100644 index 000000000..f75f0f28b Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_Tniu97iTJmurS35V4rpsA/_state/state-4.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/_state/retention-leases-1.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/_state/retention-leases-1.st new file mode 100644 index 000000000..1904de4cc Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/_state/retention-leases-1.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/_state/state-0.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/_state/state-0.st new file mode 100644 index 000000000..ebaf9d8d5 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/_state/state-0.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/index/segments_2 b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/index/segments_2 new file mode 100644 index 000000000..33eb6353d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/index/segments_2 differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/translog/translog-2.tlog b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/translog/translog-2.tlog new file mode 100644 index 000000000..6b6d0486f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/translog/translog-2.tlog differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/translog/translog.ckp b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/translog/translog.ckp new file mode 100644 index 000000000..9e420afcc Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/0/translog/translog.ckp differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/_state/state-1.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/_state/state-1.st new file mode 100644 index 000000000..f24bd17af Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/_bJfm1BsRdG-N91LRxI1Vg/_state/state-1.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/_state/retention-leases-1.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/_state/retention-leases-1.st new file mode 100644 index 000000000..070a9b88f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/_state/retention-leases-1.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/_state/state-1.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/_state/state-1.st new file mode 100644 index 000000000..3a9fcf486 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/_state/state-1.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_0.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_0.cfe new file mode 100644 index 000000000..f442b7a0e Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_0.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_0.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_0.cfs new file mode 100644 index 000000000..084849d17 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_0.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_0.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_0.si new file mode 100644 index 000000000..b324856fc Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_0.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_1.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_1.cfe new file mode 100644 index 000000000..062b5a6ed Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_1.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_1.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_1.cfs new file mode 100644 index 000000000..44c13d38c Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_1.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_1.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_1.si new file mode 100644 index 000000000..c18501fc2 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_1.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_2.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_2.cfe new file mode 100644 index 000000000..4076d771f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_2.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_2.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_2.cfs new file mode 100644 index 000000000..6c474c7d6 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_2.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_2.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_2.si new file mode 100644 index 000000000..7cef80c4b Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_2.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_3.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_3.cfe new file mode 100644 index 000000000..64b0e71e5 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_3.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_3.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_3.cfs new file mode 100644 index 000000000..0e3699917 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_3.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_3.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_3.si new file mode 100644 index 000000000..068430173 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_3.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_4.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_4.cfe new file mode 100644 index 000000000..1134d425f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_4.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_4.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_4.cfs new file mode 100644 index 000000000..58f234815 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_4.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_4.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_4.si new file mode 100644 index 000000000..6236e4fe5 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_4.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_5.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_5.cfe new file mode 100644 index 000000000..94a5e4ca3 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_5.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_5.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_5.cfs new file mode 100644 index 000000000..7638afd25 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_5.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_5.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_5.si new file mode 100644 index 000000000..e652b2b4d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_5.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_6.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_6.cfe new file mode 100644 index 000000000..fadfbd3d6 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_6.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_6.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_6.cfs new file mode 100644 index 000000000..c26671ea2 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_6.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_6.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_6.si new file mode 100644 index 000000000..2c0227f65 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_6.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_7.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_7.cfe new file mode 100644 index 000000000..085eae7f0 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_7.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_7.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_7.cfs new file mode 100644 index 000000000..025d02ae4 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_7.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_7.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_7.si new file mode 100644 index 000000000..d1b51199b Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_7.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_8.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_8.cfe new file mode 100644 index 000000000..f3a0bac29 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_8.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_8.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_8.cfs new file mode 100644 index 000000000..8b34d903a Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_8.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_8.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_8.si new file mode 100644 index 000000000..6bda3c0c3 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_8.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_9.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_9.cfe new file mode 100644 index 000000000..28be4e58b Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_9.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_9.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_9.cfs new file mode 100644 index 000000000..ca9bf1366 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_9.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_9.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_9.si new file mode 100644 index 000000000..aee680850 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/_9.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/segments_3 b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/segments_3 new file mode 100644 index 000000000..d167c6742 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/index/segments_3 differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/translog/translog-4.tlog b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/translog/translog-4.tlog new file mode 100644 index 000000000..8f43ff170 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/translog/translog-4.tlog differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/translog/translog.ckp b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/translog/translog.ckp new file mode 100644 index 000000000..a3c5ef1dc Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/0/translog/translog.ckp differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/_state/state-13.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/_state/state-13.st new file mode 100644 index 000000000..76c2bf7d3 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/kzPC9f32Q3SshHQWnYNS8Q/_state/state-13.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/_state/retention-leases-0.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/_state/retention-leases-0.st new file mode 100644 index 000000000..138f76221 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/_state/retention-leases-0.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/_state/state-0.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/_state/state-0.st new file mode 100644 index 000000000..7344e8abf Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/_state/state-0.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/_0.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/_0.cfe new file mode 100644 index 000000000..8fe163ca8 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/_0.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/_0.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/_0.cfs new file mode 100644 index 000000000..c034d69b5 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/_0.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/_0.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/_0.si new file mode 100644 index 000000000..abaa78453 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/_0.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/segments_3 b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/segments_3 new file mode 100644 index 000000000..a429ca5e2 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/index/segments_3 differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/translog/translog-3.tlog b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/translog/translog-3.tlog new file mode 100644 index 000000000..ab5aa0465 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/translog/translog-3.tlog differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/translog/translog.ckp b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/translog/translog.ckp new file mode 100644 index 000000000..43c040560 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/0/translog/translog.ckp differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/_state/state-3.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/_state/state-3.st new file mode 100644 index 000000000..b1f2fb0d7 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/p6tliBznQO-FzTdslShrwA/_state/state-3.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/_state/retention-leases-7.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/_state/retention-leases-7.st new file mode 100644 index 000000000..fd2b3035f Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/_state/retention-leases-7.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/_state/state-5.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/_state/state-5.st new file mode 100644 index 000000000..83562d059 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/_state/state-5.st differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/_0.cfe b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/_0.cfe new file mode 100644 index 000000000..78bc0e617 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/_0.cfe differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/_0.cfs b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/_0.cfs new file mode 100644 index 000000000..3cf32f56d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/_0.cfs differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/_0.si b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/_0.si new file mode 100644 index 000000000..29c1ed411 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/_0.si differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/segments_4 b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/segments_4 new file mode 100644 index 000000000..cda975e45 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/index/segments_4 differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/translog/translog-7.tlog b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/translog/translog-7.tlog new file mode 100644 index 000000000..515975899 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/translog/translog-7.tlog differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/translog/translog.ckp b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/translog/translog.ckp new file mode 100644 index 000000000..936a77aa1 Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/0/translog/translog.ckp differ diff --git a/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/_state/state-13.st b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/_state/state-13.st new file mode 100644 index 000000000..a889c801d Binary files /dev/null and b/tests/dangling/.data/opensearch-data1/nodes/0/indices/zV2wGe-cQs28OclYDa2RRQ/_state/state-13.st differ diff --git a/tests/dangling/.data/opensearch-data1/performance_analyzer_enabled.conf b/tests/dangling/.data/opensearch-data1/performance_analyzer_enabled.conf new file mode 100644 index 000000000..02e4a84d6 --- /dev/null +++ b/tests/dangling/.data/opensearch-data1/performance_analyzer_enabled.conf @@ -0,0 +1 @@ +false \ No newline at end of file diff --git a/tests/dangling/.data/opensearch-data1/rca_enabled.conf b/tests/dangling/.data/opensearch-data1/rca_enabled.conf new file mode 100644 index 000000000..02e4a84d6 --- /dev/null +++ b/tests/dangling/.data/opensearch-data1/rca_enabled.conf @@ -0,0 +1 @@ +false \ No newline at end of file diff --git a/tests/dangling/.data/opensearch-data1/thread_contention_monitoring_enabled.conf b/tests/dangling/.data/opensearch-data1/thread_contention_monitoring_enabled.conf new file mode 100644 index 000000000..02e4a84d6 --- /dev/null +++ b/tests/dangling/.data/opensearch-data1/thread_contention_monitoring_enabled.conf @@ -0,0 +1 @@ +false \ No newline at end of file diff --git a/tests/dangling/Dockerfile b/tests/dangling/Dockerfile new file mode 100644 index 000000000..33606dadc --- /dev/null +++ b/tests/dangling/Dockerfile @@ -0,0 +1,7 @@ +ARG OPENSEARCH_DOCKER_HUB_PROJECT +ARG OPENSEARCH_VERSION +ARG OPENSEARCH_DOCKER_REF + +FROM ${OPENSEARCH_DOCKER_HUB_PROJECT}/opensearch:${OPENSEARCH_VERSION}${OPENSEARCH_DOCKER_REF} + +COPY --chown=1000:1000 .data/opensearch-data1 /usr/share/opensearch/data diff --git a/tests/dangling/core/dangling.yaml b/tests/dangling/core/dangling.yaml new file mode 100644 index 000000000..1fd31a548 --- /dev/null +++ b/tests/dangling/core/dangling.yaml @@ -0,0 +1,33 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test dangling indexes. +distributions: + excluded: + - amazon-managed + - amazon-serverless +chapters: + - synopsis: Get dangling indexes. + path: /_dangling + method: GET + response: + status: 200 + payload: + dangling_indices: + - index_name: .opensearch-observability + - index_name: movies + - synopsis: Import a dangling index. + path: /_dangling/{index_uuid} + method: POST + parameters: + index_uuid: p6tliBznQO-FzTdslShrwA # movies + accept_data_loss: true + response: + status: 202 + - synopsis: Delete a dangling index. + path: /_dangling/{index_uuid} + method: DELETE + parameters: + index_uuid: _bJfm1BsRdG-N91LRxI1Vg # .opensearch-observability + accept_data_loss: true + response: + status: 202 diff --git a/tests/dangling/docker-compose.yml b/tests/dangling/docker-compose.yml new file mode 100644 index 000000000..8db2695de --- /dev/null +++ b/tests/dangling/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3' + +services: + opensearch-cluster: + build: + context: . + args: + - OPENSEARCH_DOCKER_HUB_PROJECT=${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject} + - OPENSEARCH_DOCKER_REF=${OPENSEARCH_DOCKER_REF} + - OPENSEARCH_VERSION=${OPENSEARCH_VERSION:-latest} + ports: + - 9200:9200 + - 9600:9600 + environment: + - DISABLE_INSTALL_DEMO_CONFIG=true + - DISABLE_SECURITY_PLUGIN=true + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - discovery.type=single-node diff --git a/tests/default/_core/analyze.yaml b/tests/default/_core/analyze.yaml index 659ec9a96..a5969d930 100644 --- a/tests/default/_core/analyze.yaml +++ b/tests/default/_core/analyze.yaml @@ -30,63 +30,3 @@ chapters: - Moneyball, directed by Bennett Miller response: status: 200 - - synopsis: Apply a filter. - path: /_analyze - method: GET - request: - payload: - tokenizer: keyword - filter: - - uppercase - text: Moneyball - response: - status: 200 - payload: - tokens: - - token: MONEYBALL - type: word - start_offset: 0 - end_offset: 9 - position: 0 - - synopsis: Apply a character filter. - path: /_analyze - method: GET - request: - payload: - tokenizer: keyword - filter: - - lowercase - char_filter: - - html_strip - text: Moneyball - response: - status: 200 - payload: - tokens: - - token: moneyball - type: word - start_offset: 3 - end_offset: 16 - position: 0 - - synopsis: Combine a lowercase translation with a stop filter. - path: /_analyze - method: GET - request: - payload: - tokenizer: whitespace - filter: - - lowercase - - type: stop - stopwords: - - in - - to - text: Moneyball directed by Bennett Miller - response: - status: 200 - payload: - tokens: - - token: moneyball - type: word - start_offset: 0 - end_offset: 9 - position: 0 diff --git a/tests/default/_core/analyze/filter/asciifolding.yaml b/tests/default/_core/analyze/filter/asciifolding.yaml new file mode 100644 index 000000000..b2af17dcf --- /dev/null +++ b/tests/default/_core/analyze/filter/asciifolding.yaml @@ -0,0 +1,23 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test /_analyze with a filter. +version: '>= 2.17' +chapters: + - synopsis: Apply a asciifolding filter. + path: /_analyze + method: GET + request: + payload: + tokenizer: keyword + filter: + - asciifolding + text: Léon + response: + status: 200 + payload: + tokens: + - token: Leon + type: word + start_offset: 0 + end_offset: 4 + position: 0 \ No newline at end of file diff --git a/tests/default/_core/analyze/filter/lowercase.yaml b/tests/default/_core/analyze/filter/lowercase.yaml new file mode 100644 index 000000000..cf80ae09b --- /dev/null +++ b/tests/default/_core/analyze/filter/lowercase.yaml @@ -0,0 +1,24 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test /_analyze with a filter. +chapters: + - synopsis: Apply a lowercase character filter. + path: /_analyze + method: GET + request: + payload: + tokenizer: keyword + filter: + - lowercase + char_filter: + - html_strip + text: Moneyball + response: + status: 200 + payload: + tokens: + - token: moneyball + type: word + start_offset: 3 + end_offset: 16 + position: 0 \ No newline at end of file diff --git a/tests/default/_core/analyze/filter/persian_stem.yaml b/tests/default/_core/analyze/filter/persian_stem.yaml new file mode 100644 index 000000000..973ecbaae --- /dev/null +++ b/tests/default/_core/analyze/filter/persian_stem.yaml @@ -0,0 +1,23 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test /_analyze with a filter. +version: '>= 2.17' +chapters: + - synopsis: Apply a persian_stem filter. + path: /_analyze + method: GET + request: + payload: + tokenizer: keyword + filter: + - persian_stem + text: جامدات + response: + status: 200 + payload: + tokens: + - token: جامد + type: word + start_offset: 0 + end_offset: 6 + position: 0 \ No newline at end of file diff --git a/tests/default/_core/analyze/filter/porterstem.yaml b/tests/default/_core/analyze/filter/porterstem.yaml new file mode 100644 index 000000000..d7b9d4a06 --- /dev/null +++ b/tests/default/_core/analyze/filter/porterstem.yaml @@ -0,0 +1,23 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test /_analyze with a filter. +version: '>= 2.17' +chapters: + - synopsis: Apply a porter_stem filter. + path: /_analyze + method: GET + request: + payload: + tokenizer: keyword + filter: + - porter_stem + text: Directed by Bennett Miller + response: + status: 200 + payload: + tokens: + - token: Directed by Bennett Mil + type: word + start_offset: 0 + end_offset: 26 + position: 0 \ No newline at end of file diff --git a/tests/default/_core/analyze/filter/stop.yaml b/tests/default/_core/analyze/filter/stop.yaml new file mode 100644 index 000000000..bdcf78480 --- /dev/null +++ b/tests/default/_core/analyze/filter/stop.yaml @@ -0,0 +1,26 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test /_analyze with a filter. +chapters: + - synopsis: Combine a lowercase translation with a stop filter. + path: /_analyze + method: GET + request: + payload: + tokenizer: whitespace + filter: + - lowercase + - type: stop + stopwords: + - in + - to + text: Moneyball directed by Bennett Miller + response: + status: 200 + payload: + tokens: + - token: moneyball + type: word + start_offset: 0 + end_offset: 9 + position: 0 diff --git a/tests/default/_core/analyze/filter/uppercase.yaml b/tests/default/_core/analyze/filter/uppercase.yaml new file mode 100644 index 000000000..e689916ff --- /dev/null +++ b/tests/default/_core/analyze/filter/uppercase.yaml @@ -0,0 +1,23 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test /_analyze with a filter. +chapters: + - synopsis: Apply an uppercase character filter. + path: /_analyze + method: GET + request: + payload: + tokenizer: keyword + filter: + - uppercase + text: Moneyball + response: + status: 200 + payload: + tokens: + - token: MONEYBALL + type: word + start_offset: 0 + end_offset: 9 + position: 0 + diff --git a/tests/default/_core/mapping.yaml b/tests/default/_core/mapping.yaml index 29c2c335d..586e3a569 100644 --- a/tests/default/_core/mapping.yaml +++ b/tests/default/_core/mapping.yaml @@ -1,54 +1,9 @@ $schema: ../../../json_schemas/test_story.schema.yaml description: Test mappings endpoints. -prologues: - - path: /{index} - method: PUT - parameters: - index: movies - request: - payload: - mappings: - properties: - director: - type: text - year: - type: integer - location: - type: ip - ignore_malformed: true -epilogues: - - path: /movies - method: DELETE - status: [200, 404] chapters: - - synopsis: Get mappings for an index (index in query). + - synopsis: Get all mappings. path: /_mapping method: GET - parameters: - index: movies response: status: 200 - payload: - movies: - mappings: - properties: - director: - type: text - year: - type: integer - - synopsis: Get mappings for an index (index in path). - path: /{index}/_mapping - method: GET - parameters: - index: movies - response: - status: 200 - payload: - movies: - mappings: - properties: - director: - type: text - year: - type: integer \ No newline at end of file diff --git a/tests/default/_core/mget.yaml b/tests/default/_core/mget.yaml new file mode 100644 index 000000000..42f1afcf7 --- /dev/null +++ b/tests/default/_core/mget.yaml @@ -0,0 +1,47 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test document multi-get. +epilogues: + - path: /books + method: DELETE + status: [200, 404] + - path: /movies + method: DELETE + status: [200, 404] +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: books, _id: book1}} + - {author: Harper Lee, title: To Kill a Mockingbird, year: 60} + - {create: {_index: movies, _id: movie1}} + - {director: Bennett Miller, title: The Cruise, year: 1998} + - {create: {_index: movies, _id: movie2}} + - {director: Nicolas Winding Refn, title: Drive, year: 1960} +chapters: + - synopsis: Retrieve documents from multiple indexes. + path: /_mget + method: GET + request: + payload: + docs: + - _index: movies + _id: movie1 + _source: true + - _index: books + _id: book1 + _source: + includes: + - title + response: + status: 200 + payload: + docs: + - _index: movies + _id: movie1 + - _index: books + _id: book1 diff --git a/tests/default/_core/msearch.yaml b/tests/default/_core/msearch.yaml new file mode 100644 index 000000000..6cff72802 --- /dev/null +++ b/tests/default/_core/msearch.yaml @@ -0,0 +1,85 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test document multi-search. +epilogues: + - path: /books + method: DELETE + status: [200, 404] + - path: /movies + method: DELETE + status: [200, 404] +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: books, _id: book1}} + - {author: Harper Lee, title: To Kill a Mockingbird, year: 60} + - {create: {_index: movies, _id: movie1}} + - {director: Bennett Miller, title: The Cruise, year: 1998} + - {create: {_index: movies, _id: movie2}} + - {director: Nicolas Winding Refn, title: Drive, year: 1960} +chapters: + - synopsis: Run multiple search requests in single request (GET). + path: /_msearch + method: GET + request: + content_type: application/x-ndjson + payload: + - {index: books} + - {query: {match_all: {}}} + - {index: movies} + - {query: {match_all: {}}} + response: + status: 200 + payload: + responses: + - hits: + total: + value: 1 + relation: eq + hits: + - _index: books + _id: book1 + - hits: + total: + value: 2 + relation: eq + hits: + - _index: movies + _id: movie1 + - _index: movies + _id: movie2 + - synopsis: Run multiple search requests in single request (POST). + path: /_msearch + method: POST + request: + content_type: application/x-ndjson + payload: + - {index: movies} + - {query: {match_all: {}}} + - {index: books} + - {query: {match_all: {}}} + response: + status: 200 + payload: + responses: + - hits: + total: + value: 2 + relation: eq + hits: + - _index: movies + _id: movie1 + - _index: movies + _id: movie2 + - hits: + total: + value: 1 + relation: eq + hits: + - _index: books + _id: book1 diff --git a/tests/default/_core/refresh.yaml b/tests/default/_core/refresh.yaml new file mode 100644 index 000000000..986411755 --- /dev/null +++ b/tests/default/_core/refresh.yaml @@ -0,0 +1,10 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test _refresh. + +chapters: + - synopsis: Refresh all indexes in the cluster. + path: /_refresh + method: GET + response: + status: 200 diff --git a/tests/default/_core/remote/info.yaml b/tests/default/_core/remote/info.yaml new file mode 100644 index 000000000..708439460 --- /dev/null +++ b/tests/default/_core/remote/info.yaml @@ -0,0 +1,27 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test _remote/info. + +prologues: + - method: PUT + path: /_cluster/settings + request: + payload: + transient: + cluster.remote: + cluster2: + seeds: + - localhost:4242 +chapters: + - synopsis: Retrieve information about remote clusters. + path: /_remote/info + method: GET + response: + status: 200 +epilogues: + - method: PUT + path: /_cluster/settings + request: + payload: + transient: + cluster.remote.cluster2.seeds: [] diff --git a/tests/default/_core/script_context.yaml b/tests/default/_core/script_context.yaml new file mode 100644 index 000000000..bcb842edb --- /dev/null +++ b/tests/default/_core/script_context.yaml @@ -0,0 +1,10 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test the _script_context endpoint to retrieve available script contexts. + +chapters: + - synopsis: Retrieve available script contexts. + path: /_script_context + method: GET + response: + status: 200 \ No newline at end of file diff --git a/tests/default/_core/search/aggregations/avg.yaml b/tests/default/_core/search/aggregations/avg.yaml new file mode 100644 index 000000000..52daa7ecb --- /dev/null +++ b/tests/default/_core/search/aggregations/avg.yaml @@ -0,0 +1,38 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test avg aggregation. +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Moneyball, duration: 126} + - {create: {_index: movies}} + - {director: Nicolas Winding Refn, title: Drive, duration: 100} +chapters: + - synopsis: Aggregate with avg. + path: /{index}/_search + parameters: + index: movies + method: POST + request: + payload: + size: 0 + aggregations: + duration_avg: + avg: + field: duration + response: + status: 200 + payload: + aggregations: + duration_avg: + value: 113 +epilogues: + - path: /movies + method: DELETE + status: [200, 404] diff --git a/tests/default/_core/search/aggregations/historgram.yaml b/tests/default/_core/search/aggregations/historgram.yaml new file mode 100644 index 000000000..03adc94f4 --- /dev/null +++ b/tests/default/_core/search/aggregations/historgram.yaml @@ -0,0 +1,48 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test histogram aggregation. +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Moneyball, year: 2011} + - {create: {_index: movies}} + - {director: Bennett Miller, title: The Cruise, year: 1998} + - {create: {_index: movies}} + - {director: Nicolas Winding Refn, title: Drive, year: 1960} +chapters: + - synopsis: Aggregate with histogram. + path: /{index}/_search + parameters: + index: movies + method: POST + request: + payload: + size: 0 + aggregations: + movies: + histogram: + field: year + interval: 100 + format: '##0.0' + response: + status: 200 + payload: + aggregations: + movies: + buckets: + - key_as_string: '1900.0' + key: 1900 + doc_count: 2 + - key_as_string: '2000.0' + key: 2000 + doc_count: 1 +epilogues: + - path: /movies + method: DELETE + status: [200, 404] diff --git a/tests/default/_core/search/aggregations/max.yaml b/tests/default/_core/search/aggregations/max.yaml new file mode 100644 index 000000000..4d05066b2 --- /dev/null +++ b/tests/default/_core/search/aggregations/max.yaml @@ -0,0 +1,38 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test max aggregation. +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Moneyball, duration: 126} + - {create: {_index: movies}} + - {director: Nicolas Winding Refn, title: Drive, duration: 100} +chapters: + - synopsis: Aggregate with max. + path: /{index}/_search + parameters: + index: movies + method: POST + request: + payload: + size: 0 + aggregations: + duration_max: + max: + field: duration + response: + status: 200 + payload: + aggregations: + duration_max: + value: 126 +epilogues: + - path: /movies + method: DELETE + status: [200, 404] diff --git a/tests/default/_core/search/aggregations/min.yaml b/tests/default/_core/search/aggregations/min.yaml new file mode 100644 index 000000000..0d0f6197c --- /dev/null +++ b/tests/default/_core/search/aggregations/min.yaml @@ -0,0 +1,38 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test min aggregation. +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Moneyball, duration: 126} + - {create: {_index: movies}} + - {director: Nicolas Winding Refn, title: Drive, duration: 100} +chapters: + - synopsis: Aggregate with min. + path: /{index}/_search + parameters: + index: movies + method: POST + request: + payload: + size: 0 + aggregations: + duration_min: + min: + field: duration + response: + status: 200 + payload: + aggregations: + duration_min: + value: 100 +epilogues: + - path: /movies + method: DELETE + status: [200, 404] diff --git a/tests/default/_core/search/aggregations/nested.yaml b/tests/default/_core/search/aggregations/nested.yaml new file mode 100644 index 000000000..4b519dcc5 --- /dev/null +++ b/tests/default/_core/search/aggregations/nested.yaml @@ -0,0 +1,59 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test aggregation. +prologues: + - path: books + method: PUT + request: + payload: + mappings: + properties: + details: + type: nested + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {index: {_index: books, _id: '0'}} + - {details: {title: title1}} + - {index: {_index: books, _id: '1'}} + - {details: {title: title2}} +chapters: + - synopsis: Aggregation with nested. + path: /{index}/_search + parameters: + index: books + method: POST + request: + payload: + size: 0 + aggregations: + details_agg: + nested: + path: details + response: + status: 200 + payload: + timed_out: false + _shards: + total: 1 + successful: 1 + skipped: 0 + failed: 0 + hits: + total: + value: 2 + relation: eq + max_score: null + hits: [] + aggregations: + details_agg: + doc_count: 2 + +epilogues: + - path: /books + method: DELETE + status: [200, 404] diff --git a/tests/default/_core/search/aggregations/range.yaml b/tests/default/_core/search/aggregations/range.yaml new file mode 100644 index 000000000..0c34de8db --- /dev/null +++ b/tests/default/_core/search/aggregations/range.yaml @@ -0,0 +1,46 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test range aggregation. +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Moneyball, year: 2011} + - {create: {_index: movies}} + - {director: Bennett Miller, title: The Cruise, year: 1998} + - {create: {_index: movies}} + - {director: Nicolas Winding Refn, title: Drive, year: 1960} +chapters: + - synopsis: Aggregate with range. + path: /{index}/_search + parameters: + index: movies + method: POST + request: + payload: + size: 0 + aggregations: + 20th_century: + range: + field: year + ranges: + - from: 1900 + to: 2000 + response: + status: 200 + payload: + aggregations: + 20th_century: + buckets: + - from: 1900 + to: 2000 + doc_count: 2 +epilogues: + - path: /movies + method: DELETE + status: [200, 404] diff --git a/tests/default/_core/search/aggregations/sum.yaml b/tests/default/_core/search/aggregations/sum.yaml new file mode 100644 index 000000000..252785ca3 --- /dev/null +++ b/tests/default/_core/search/aggregations/sum.yaml @@ -0,0 +1,38 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test sum aggregation. +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Moneyball, duration: 126} + - {create: {_index: movies}} + - {director: Nicolas Winding Refn, title: Drive, duration: 100} +chapters: + - synopsis: Aggregate with sum. + path: /{index}/_search + parameters: + index: movies + method: POST + request: + payload: + size: 0 + aggregations: + duration_sum: + sum: + field: duration + response: + status: 200 + payload: + aggregations: + duration_sum: + value: 226 +epilogues: + - path: /movies + method: DELETE + status: [200, 404] diff --git a/tests/default/_core/search/aggregations/terms.yaml b/tests/default/_core/search/aggregations/terms.yaml new file mode 100644 index 000000000..19c4a9606 --- /dev/null +++ b/tests/default/_core/search/aggregations/terms.yaml @@ -0,0 +1,54 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test terms aggregation. +prologues: + - path: /movies + method: PUT + request: + payload: + mappings: + properties: + director: + type: text + fielddata: true + fields: + raw: + type: keyword + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Moneyball} + - {create: {_index: movies}} + - {director: Bennett Miller, title: The Cruise} + - {create: {_index: movies}} + - {director: Nicolas Winding Refn, title: Drive} +chapters: + - synopsis: Aggregate with terms. + path: /{index}/_search + parameters: + index: movies + method: POST + request: + payload: + size: 0 + aggregations: + directors: + terms: + field: director.raw + response: + status: 200 + payload: + aggregations: + directors: + buckets: + - key: Bennett Miller + doc_count: 2 +epilogues: + - path: /movies + method: DELETE + status: [200, 404] diff --git a/tests/default/_core/search/query/script.yaml b/tests/default/_core/search/query/script.yaml new file mode 100644 index 000000000..525cddc8c --- /dev/null +++ b/tests/default/_core/search/query/script.yaml @@ -0,0 +1,78 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test ScriptQuery functionality. + +prologues: + - path: /movies + method: PUT + request: + payload: + mappings: + properties: + title: + type: keyword + year: + type: integer + + - path: /movies/_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - index: + _id: 1 + - title: The Lion King + year: 1994 + - index: + _id: 2 + - title: Beauty and the Beast + year: 1991 + - index: + _id: 3 + - title: Aladdin + year: 1992 + - index: + _id: 4 + - title: The Little Mermaid + year: 1989 + status: [200] + +epilogues: + - path: /movies + method: DELETE + status: [200, 404] + +chapters: + - synopsis: Search using ScriptQuery with filtering to movies with odd years. + path: /{index}/_search + parameters: + index: movies + method: POST + request: + payload: + query: + bool: + filter: + script: + script: "doc['year'].value % 2 == 1" + sort: + - year: + order: desc + response: + status: 200 + payload: + timed_out: false + hits: + total: + value: 2 + hits: + - _id: '2' + _source: + title: Beauty and the Beast + year: 1991 + - _id: '4' + _source: + title: The Little Mermaid + year: 1989 diff --git a/tests/default/_core/search/search_after.yaml b/tests/default/_core/search/search_after.yaml new file mode 100644 index 000000000..0da17c906 --- /dev/null +++ b/tests/default/_core/search/search_after.yaml @@ -0,0 +1,39 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test search endpoint with search_after. +epilogues: + - path: /movies + method: DELETE + status: [200, 404] +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {title: The Cruise, year: 1998} + - {create: {_index: movies}} + - {title: Drive, year: 1960} +chapters: + - synopsis: Search with search_after. + path: /{index}/_search + parameters: + index: movies + request: + payload: + sort: + - year: asc + search_after: + - 1960 + method: POST + response: + status: 200 + payload: + hits: + hits: + - _source: + title: The Cruise + year: 1998 diff --git a/tests/default/_core/search/sort_by_field.yaml b/tests/default/_core/search/sort_by_field.yaml index 4256929ee..ff9329286 100644 --- a/tests/default/_core/search/sort_by_field.yaml +++ b/tests/default/_core/search/sort_by_field.yaml @@ -3,12 +3,12 @@ $schema: ../../../../json_schemas/test_story.schema.yaml description: Test different ways to sort by field. epilogues: - - path: /sorted_movies + - path: /movies method: DELETE status: [200] prologues: - - path: /sorted_movies + - path: /movies method: PUT request: payload: @@ -18,40 +18,25 @@ prologues: type: keyword year: type: integer - - - path: /sorted_movies/_doc - method: POST - parameters: - refresh: true - request: - payload: - title: The Lion King - year: 1994 - status: [201] - - path: /sorted_movies/_doc - method: POST - parameters: - refresh: true - request: - payload: - title: The Lion King - year: 2019 - status: [201] - - path: /sorted_movies/_doc + - path: /_bulk method: POST parameters: refresh: true request: + content_type: application/x-ndjson payload: - title: Frozen - year: 2013 - status: [201] + - {create: {_index: movies}} + - {title: The Lion King, year: 1994} + - {create: {_index: movies}} + - {title: The Lion King, year: 2019} + - {create: {_index: movies}} + - {title: Frozen, year: 2013} chapters: - - synopsis: QueryString Sort by year. + - synopsis: Sort by year. path: /{index}/_search parameters: - index: sorted_movies + index: movies sort: year method: GET response: @@ -69,10 +54,10 @@ chapters: title: The Lion King year: 2019 - - synopsis: QueryString Sort by title:desc. + - synopsis: Sort by title:desc. path: /{index}/_search parameters: - index: sorted_movies + index: movies sort: title:desc method: GET response: @@ -90,10 +75,10 @@ chapters: title: Frozen year: 2013 - - synopsis: QueryString Sort by title:desc,year:desc. + - synopsis: Sort by title:desc,year:desc. path: /{index}/_search parameters: - index: sorted_movies + index: movies sort: title:desc,year:desc method: GET response: @@ -111,10 +96,10 @@ chapters: title: Frozen year: 2013 - - synopsis: Body Sort by [title, year]. + - synopsis: Sort by [title, year]. path: /{index}/_search parameters: - index: sorted_movies + index: movies method: GET request: payload: @@ -136,10 +121,10 @@ chapters: title: The Lion King year: 2019 - - synopsis: Body Sort by year:asc,title:desc. + - synopsis: Sort by year:asc,title:desc. path: /{index}/_search parameters: - index: sorted_movies + index: movies method: GET request: payload: @@ -161,3 +146,27 @@ chapters: title: The Lion King year: 1994 + - synopsis: Sort with direction by year:asc,title:desc. + path: /{index}/_search + parameters: + index: movies + method: GET + request: + payload: + sort: + - title: asc + - year: desc + response: + status: 200 + payload: + hits: + hits: + - _source: + title: Frozen + year: 2013 + - _source: + title: The Lion King + year: 2019 + - _source: + title: The Lion King + year: 1994 diff --git a/tests/default/asynchronous_search/search.yaml b/tests/default/asynchronous_search/search.yaml index 23e22d57c..4397fe525 100644 --- a/tests/default/asynchronous_search/search.yaml +++ b/tests/default/asynchronous_search/search.yaml @@ -27,7 +27,6 @@ chapters: synopsis: Asynchronous Search. path: /_plugins/_asynchronous_search method: POST - version: < 3.0 parameters: index: books keep_on_completion: true @@ -44,7 +43,6 @@ chapters: - synopsis: Get partial response from asynchronous search. path: /_plugins/_asynchronous_search/{id} method: GET - version: < 3.0 parameters: id: ${async_search.id} response: @@ -52,8 +50,7 @@ chapters: - synopsis: Delete partial response from asynchronous search. path: /_plugins/_asynchronous_search/{id} method: DELETE - version: < 3.0 parameters: id: ${async_search.id} response: - status: 200 + status: 200 \ No newline at end of file diff --git a/tests/default/asynchronous_search/stats.yaml b/tests/default/asynchronous_search/stats.yaml index 7854b156e..b5f113006 100644 --- a/tests/default/asynchronous_search/stats.yaml +++ b/tests/default/asynchronous_search/stats.yaml @@ -6,6 +6,5 @@ chapters: - synopsis: Get stats. path: /_plugins/_asynchronous_search/stats method: GET - version: < 3.0 response: status: 200 diff --git a/tests/default/cat/cluster_manager.yaml b/tests/default/cat/cluster_manager.yaml index d35e9361e..2db2ad13e 100644 --- a/tests/default/cat/cluster_manager.yaml +++ b/tests/default/cat/cluster_manager.yaml @@ -2,7 +2,7 @@ $schema: ../../../json_schemas/test_story.schema.yaml description: Test cat/cluster_manager endpoints. chapters: - - synopsis: List information that helps identify the elected cluster manager node. + - synopsis: List information that helps identify the elected cluster-manager node. version: '>= 2.0' path: /_cat/cluster_manager method: GET diff --git a/tests/default/cat/fielddata.yaml b/tests/default/cat/fielddata.yaml index b5b27a84f..164b78950 100644 --- a/tests/default/cat/fielddata.yaml +++ b/tests/default/cat/fielddata.yaml @@ -10,7 +10,7 @@ chapters: response: status: 200 - synopsis: List the memory size used by each field per node with data from security-analytics. - version: '>= 2.4' + version: '>= 2.4 < 2.19' path: /_cat/fielddata method: GET parameters: @@ -21,7 +21,7 @@ chapters: payload: - field: log_types - synopsis: List the memory size used by each field per node with data from security-analytics. - version: '>= 2.4' + version: '>= 2.4 < 2.19' path: /_cat/fielddata/{fields} method: GET parameters: diff --git a/tests/default/cat/master.yaml b/tests/default/cat/master.yaml index ea193902d..d4324cb58 100644 --- a/tests/default/cat/master.yaml +++ b/tests/default/cat/master.yaml @@ -3,7 +3,7 @@ $schema: ../../../json_schemas/test_story.schema.yaml description: Test cat/master endpoints. version: < 2.0 chapters: - - synopsis: List information that helps identify the elected master node. + - synopsis: List information that helps identify the elected cluster-manager node. path: /_cat/master method: GET parameters: diff --git a/tests/default/cat/segments.yaml b/tests/default/cat/segments.yaml index c01bbdbbe..626eb82f0 100644 --- a/tests/default/cat/segments.yaml +++ b/tests/default/cat/segments.yaml @@ -11,7 +11,7 @@ epilogues: method: DELETE status: [200, 404] chapters: - - synopsis: List Lucene segment-level information for all indices. + - synopsis: List Lucene segment-level information for all indexes. path: /_cat/segments method: GET parameters: diff --git a/tests/default/cluster/stats/index_metric.yaml b/tests/default/cluster/stats/index_metric.yaml new file mode 100644 index 000000000..6b353913e --- /dev/null +++ b/tests/default/cluster/stats/index_metric.yaml @@ -0,0 +1,18 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test cluster manager stats. +# TODO: Re-enable in 3.0, see https://github.com/opensearch-project/opensearch-api-specification/pull/613 +version: '>= 2.18 < 3' +chapters: + - synopsis: Get mapping and analysis indices stats. + path: /_cluster/stats/{metric}/{index_metric}/nodes/{node_id} + method: GET + parameters: + node_id: _all + metric: + - indices + index_metric: + - analysis + - mappings + response: + status: 200 diff --git a/tests/default/cluster/stats/metric.yaml b/tests/default/cluster/stats/metric.yaml new file mode 100644 index 000000000..2af5022f7 --- /dev/null +++ b/tests/default/cluster/stats/metric.yaml @@ -0,0 +1,17 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test cluster manager stats. +# TODO: Re-enable in 3.0, see https://github.com/opensearch-project/opensearch-api-specification/pull/613 +version: '>= 2.18 < 3' +chapters: + - synopsis: Get nodes fs and jvm stats. + path: /_cluster/stats/{metric}/nodes/{node_id} + method: GET + parameters: + node_id: _all + metric: + - fs + - jvm + response: + status: 200 + diff --git a/tests/default/cluster/stats/nodes.yaml b/tests/default/cluster/stats/nodes.yaml index 42ea942f3..5fae79247 100644 --- a/tests/default/cluster/stats/nodes.yaml +++ b/tests/default/cluster/stats/nodes.yaml @@ -3,7 +3,7 @@ $schema: ../../../../json_schemas/test_story.schema.yaml description: Test cluster manager stats. version: '>= 2.0' chapters: - - synopsis: Returns information about the cluster manager node. + - synopsis: Returns information about the cluster-manager node. path: /_cluster/stats/nodes/{node_id} method: GET parameters: diff --git a/tests/default/flow_framework/template.yaml b/tests/default/flow_framework/template.yaml index c7ac780c9..84ecd8638 100644 --- a/tests/default/flow_framework/template.yaml +++ b/tests/default/flow_framework/template.yaml @@ -7,6 +7,8 @@ epilogues: status: [200, 404] parameters: workflow_id: ${create_flow_framework.test_workflow_id} +warnings: + multiple-paths-detected: false chapters: - synopsis: Create workflow with openAI model. id: create_flow_framework diff --git a/tests/default/indices/alias/alias.yaml b/tests/default/indices/alias/alias.yaml index 4000dbb13..4be447727 100644 --- a/tests/default/indices/alias/alias.yaml +++ b/tests/default/indices/alias/alias.yaml @@ -12,11 +12,28 @@ prologues: index: games chapters: - synopsis: Create an alias. + path: /{index}/_alias/{name} + method: POST + parameters: + index: games + name: jeux + - synopsis: Update an alias. path: /{index}/_alias/{name} method: PUT parameters: index: games name: jeux + - synopsis: Get all aliases from an index. + method: GET + path: /{index}/_alias + parameters: + index: games + response: + status: 200 + payload: + games: + aliases: + jeux: {} - synopsis: Get an alias from index. method: GET path: /{index}/_alias/{name} @@ -25,7 +42,6 @@ chapters: name: jeux response: status: 200 - content_type: application/json payload: games: aliases: @@ -42,6 +58,15 @@ chapters: parameters: index: games name: jeux + - synopsis: Update an alias. + path: /{index}/_alias + method: PUT + parameters: + index: games + request: + payload: + alias: jeux + is_write_index: false - synopsis: Check if alias exists. path: /{index}/_alias/{name} method: HEAD diff --git a/tests/default/indices/alias/rollover.yaml b/tests/default/indices/alias/rollover.yaml new file mode 100644 index 000000000..740a06357 --- /dev/null +++ b/tests/default/indices/alias/rollover.yaml @@ -0,0 +1,29 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test rolling over aliases. +epilogues: + - path: /games + method: DELETE + status: [200, 404] + - path: /rollover + method: DELETE + status: [200, 404] +prologues: + - path: games + method: PUT + - path: /games/_alias/jeux + method: POST +chapters: + - synopsis: Manually roll over an index. + path: /{alias}/_rollover/{new_index} + method: POST + parameters: + alias: jeux + new_index: rollover + response: + status: 200 + payload: + acknowledged: true + old_index: games + new_index: rollover + rolled_over: true diff --git a/tests/default/indices/aliases/aliases.yaml b/tests/default/indices/aliases/aliases.yaml index 75a1918c1..6f9850a84 100644 --- a/tests/default/indices/aliases/aliases.yaml +++ b/tests/default/indices/aliases/aliases.yaml @@ -9,12 +9,30 @@ prologues: - path: games method: PUT chapters: - - synopsis: Create an alias. + - synopsis: Create an alias by name. + path: /{index}/_aliases/{name} + method: POST + parameters: + index: games + name: jeux + - synopsis: Update an alias by name (query). path: /{index}/_aliases/{name} method: PUT parameters: index: games name: jeux + request: + payload: + is_write_index: true + - synopsis: Update an alias by name (payload). + path: /{index}/_aliases + method: PUT + parameters: + index: games + request: + payload: + alias: jeux + is_write_index: false - synopsis: Delete an alias. path: /{index}/_aliases/{name} method: DELETE diff --git a/tests/default/indices/block.yaml b/tests/default/indices/block.yaml new file mode 100644 index 000000000..577a4ae46 --- /dev/null +++ b/tests/default/indices/block.yaml @@ -0,0 +1,25 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test limiting certain operations on a specified index. +prologues: + - path: /movies + method: PUT +epilogues: + - path: /movies + method: DELETE + status: [200, 404] +chapters: + - synopsis: Disable any write operations made to the index. + path: /{index}/_block/{block} + method: PUT + parameters: + index: movies + block: write + response: + status: 200 + payload: + shards_acknowledged: true + acknowledged: true + indices: + - name: movies + blocked: true diff --git a/tests/default/indices/clone.yaml b/tests/default/indices/clone.yaml index e2285c536..5d651b33b 100644 --- a/tests/default/indices/clone.yaml +++ b/tests/default/indices/clone.yaml @@ -41,7 +41,7 @@ chapters: - synopsis: Clone an index (wait_for_completion). version: '>= 2.7' path: /{index}/_clone/{target} - method: POST + method: PUT parameters: index: movies target: games2 @@ -51,7 +51,7 @@ chapters: - synopsis: Clone an index (cluster_manager_timeout). version: '>= 2.0' path: /{index}/_clone/{target} - method: POST + method: PUT parameters: index: movies target: games3 diff --git a/tests/default/indices/create.yaml b/tests/default/indices/create.yaml new file mode 100644 index 000000000..b002fadfe --- /dev/null +++ b/tests/default/indices/create.yaml @@ -0,0 +1,32 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test inserting and retrieving a doc. +epilogues: + - path: /movies + method: DELETE + status: [200, 404] +chapters: + - synopsis: Create a document it doesn't already exist (POST). + path: /{index}/_create/{id} + method: POST + parameters: + index: movies + id: '1' + request: + payload: + title: Beauty and the Beast + year: 1991 + response: + status: 201 + - synopsis: Create a document it doesn't already exist (PUT). + path: /{index}/_create/{id} + method: PUT + parameters: + index: movies + id: '2' + request: + payload: + title: To Kill a Mockingbird + year: 1960 + response: + status: 201 diff --git a/tests/default/indices/data_stream/rollover.yaml b/tests/default/indices/data_stream/rollover.yaml index 5e0c637be..853a9ea14 100644 --- a/tests/default/indices/data_stream/rollover.yaml +++ b/tests/default/indices/data_stream/rollover.yaml @@ -30,8 +30,6 @@ epilogues: status: [200, 404] chapters: - synopsis: Manually roll over a data stream. - warnings: - multiple-paths-detected: false path: /{alias}/_rollover method: POST parameters: diff --git a/tests/default/indices/doc.yaml b/tests/default/indices/doc.yaml index 6eb5a8a5d..714c773d4 100644 --- a/tests/default/indices/doc.yaml +++ b/tests/default/indices/doc.yaml @@ -49,6 +49,14 @@ chapters: id: '1' response: status: 200 + - synopsis: Check whether a document exists. + path: /{index}/_doc/{id} + method: HEAD + parameters: + index: movies + id: '1' + response: + status: 200 - synopsis: Delete a document. path: /{index}/_doc/{id} method: DELETE @@ -57,3 +65,27 @@ chapters: id: '1' response: status: 200 + - synopsis: Retrieve a nonexistent document. + path: /{index}/_doc/{id} + method: GET + parameters: + index: movies + id: '1' + response: + status: 404 + - synopsis: Check whether a nonexistent document exists. + path: /{index}/_doc/{id} + method: HEAD + parameters: + index: movies + id: '1' + response: + status: 404 + - synopsis: Delete a nonexistent document. + path: /{index}/_doc/{id} + method: DELETE + parameters: + index: movies + id: '1' + response: + status: 404 diff --git a/tests/default/indices/explain.yaml b/tests/default/indices/explain.yaml new file mode 100644 index 000000000..a99cc3561 --- /dev/null +++ b/tests/default/indices/explain.yaml @@ -0,0 +1,51 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test getting an explanation of how the relevance score is calculated for every result. +epilogues: + - path: /movies + method: DELETE + status: [200, 404] +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies, _id: movie1}} + - {director: Bennett Miller, title: The Cruise, year: 1998} + - {create: {_index: movies, _id: movie2}} + - {director: Nicolas Winding Refn, title: Drive, year: 1960} +chapters: + - synopsis: Explain the score for a match query (GET). + path: /{index}/_explain/{id} + method: GET + parameters: + index: movies + id: movie1 + request: + payload: + query: + match: + year: 1998 + response: + status: 200 + - synopsis: Explain the score for a match query (POST). + path: /{index}/_explain/{id} + method: POST + parameters: + index: movies + id: movie2 + preference: _local + routing: primary + _source: true + _source_excludes: title + _source_includes: director + request: + payload: + query: + match: + title: Drive + response: + status: 200 diff --git a/tests/default/indices/index.yaml b/tests/default/indices/index.yaml index 4b34c8937..943aa9ca4 100644 --- a/tests/default/indices/index.yaml +++ b/tests/default/indices/index.yaml @@ -84,4 +84,12 @@ chapters: version: '>= 2.0' parameters: index: books,games - cluster_manager_timeout: 10s + cluster_manager_timeout: 10s + + - synopsis: Delete a nonexistent index `movies`. + path: /{index} + method: DELETE + parameters: + index: movies + response: + status: 404 diff --git a/tests/default/indices/mapping/field.yaml b/tests/default/indices/mapping/field.yaml new file mode 100644 index 000000000..5037e2ec3 --- /dev/null +++ b/tests/default/indices/mapping/field.yaml @@ -0,0 +1,61 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test specific field mappings endpoints. +prologues: + - path: /{index} + method: PUT + parameters: + index: movies + request: + payload: + mappings: + properties: + director: + type: text + year: + type: integer + location: + type: ip + ignore_malformed: true +epilogues: + - path: /movies + method: DELETE + status: [200, 404] +chapters: + - synopsis: Add new fields to index mapping. + path: /{index}/_mapping + method: POST + parameters: + index: movies + request: + payload: + properties: + genre: + type: text + rating: + type: float + response: + status: 200 + payload: + acknowledged: true + - synopsis: Get specific field mappings for an index. + path: /{index}/_mapping/field/{fields} + method: GET + parameters: + index: movies + fields: director,year + response: + status: 200 + payload: + movies: + mappings: + year: + full_name: year + mapping: + year: + type: integer + director: + full_name: director + mapping: + director: + type: text diff --git a/tests/default/indices/mapping.yaml b/tests/default/indices/mapping/index.yaml similarity index 96% rename from tests/default/indices/mapping.yaml rename to tests/default/indices/mapping/index.yaml index 635ffe5cc..35a74eeea 100644 --- a/tests/default/indices/mapping.yaml +++ b/tests/default/indices/mapping/index.yaml @@ -1,4 +1,4 @@ -$schema: ../../../json_schemas/test_story.schema.yaml +$schema: ../../../../json_schemas/test_story.schema.yaml description: Test mappings endpoints. prologues: @@ -41,7 +41,7 @@ chapters: type: text year: type: integer - - synopsis: Get mappings for multiple indices. + - synopsis: Get mappings for multiple indexes. path: /{index}/_mapping method: GET parameters: @@ -145,4 +145,4 @@ chapters: response: status: 200 payload: - acknowledged: true + acknowledged: true \ No newline at end of file diff --git a/tests/default/indices/mget.yaml b/tests/default/indices/mget.yaml new file mode 100644 index 000000000..07732a33c --- /dev/null +++ b/tests/default/indices/mget.yaml @@ -0,0 +1,66 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test document multi-get. +epilogues: + - path: /movies + method: DELETE + status: [200, 404] +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies, _id: movie1}} + - {director: Bennett Miller, title: The Cruise, year: 1998} + - {create: {_index: movies, _id: movie2}} + - {director: Nicolas Winding Refn, title: Drive, year: 1960} +chapters: + - synopsis: Retrieve documents from multiple indexes (GET). + path: /{index}/_mget + method: GET + parameters: + index: movies + request: + payload: + docs: + - _id: movie1 + _source: + excludes: + - title + - _id: movie1 + _source: false + - _id: movie2 + _source: + includes: + - title + response: + status: 200 + payload: + docs: + - _index: movies + _id: movie1 + - _index: movies + _id: movie1 + - _index: movies + _id: movie2 + - synopsis: Retrieve documents from multiple indexes (POST). + path: /{index}/_mget + method: POST + parameters: + index: movies + request: + payload: + docs: + - _id: movie1 + - _id: movie2 + response: + status: 200 + payload: + docs: + - _index: movies + _id: movie1 + - _index: movies + _id: movie2 diff --git a/tests/default/indices/msearch.yaml b/tests/default/indices/msearch.yaml new file mode 100644 index 000000000..ba5cd97eb --- /dev/null +++ b/tests/default/indices/msearch.yaml @@ -0,0 +1,36 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test endpoints relevant to the lifecycle of an index, including multi-get and multi-search operations. +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: books, _id: book1}} + - {author: Harper Lee, title: To Kill a Mockingbird, year: 60} + - {create: {_index: books, _id: book2}} + - {director: Bennett Miller, title: The Cruise, year: 1998} + - {create: {_index: books, _id: book3}} + - {director: Nicolas Winding Refn, title: Drive, year: 1960} +epilogues: + - path: /books + method: DELETE + status: [200, 404] +chapters: + - synopsis: Perform a `_msearch` request to execute multiple search queries in a single call. + path: /{index}/_msearch + method: POST + parameters: + index: books + request: + content_type: application/x-ndjson + payload: + - {index: books} + - {query: {match: {title: To Kill a Mockingbird}}} + - {index: books} + - {query: {match: {title: The Cruise}}} + response: + status: 200 \ No newline at end of file diff --git a/tests/default/indices/refresh.yaml b/tests/default/indices/refresh.yaml index 2303ed287..55b171e23 100644 --- a/tests/default/indices/refresh.yaml +++ b/tests/default/indices/refresh.yaml @@ -14,12 +14,17 @@ prologues: year: 1991 status: [201] chapters: - - synopsis: Refresh. - path: /_refresh - method: POST + - synopsis: Refresh an index (GET). + path: /{index}/_refresh + method: GET + parameters: + index: movies response: status: 200 - - synopsis: Refresh an index. + payload: + _shards: + failed: 0 + - synopsis: Refresh an index (POST). path: /{index}/_refresh method: POST parameters: @@ -31,4 +36,4 @@ chapters: status: 200 payload: _shards: - failed: 0 + failed: 0 \ No newline at end of file diff --git a/tests/default/indices/settings.yaml b/tests/default/indices/settings.yaml index c7349ede8..8513ffaa6 100644 --- a/tests/default/indices/settings.yaml +++ b/tests/default/indices/settings.yaml @@ -85,5 +85,17 @@ chapters: index: blocks: write: 'true' - - + - synopsis: Get settings for an index including all default values. + path: /{index}/_settings + method: GET + parameters: + index: movies + include_defaults: true + response: + status: 200 + payload: + movies: + defaults: + index: + store: + type: '' diff --git a/tests/default/indices/source.yaml b/tests/default/indices/source.yaml new file mode 100644 index 000000000..4d7c234c2 --- /dev/null +++ b/tests/default/indices/source.yaml @@ -0,0 +1,52 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test retrieving a document source. +epilogues: + - path: /movies + method: DELETE + status: [200, 404] +prologues: + - path: /movies/_doc/1 + method: POST + parameters: + refresh: true + request: + payload: + title: Beauty and the Beast + year: 1991 +chapters: + - synopsis: Retrieve the document source. + path: /{index}/_source/{id} + method: GET + parameters: + index: movies + id: '1' + response: + status: 200 + payload: + title: Beauty and the Beast + year: 1991 + - synopsis: Retrieve a non-existent document source. + path: /{index}/_source/{id} + method: GET + parameters: + index: movies + id: '2' + response: + status: 404 + - synopsis: Check whether the document exists. + path: /{index}/_source/{id} + method: HEAD + parameters: + index: movies + id: '1' + response: + status: 200 + - synopsis: Check whether the document exists. + path: /{index}/_source/{id} + method: HEAD + parameters: + index: movies + id: '2' + response: + status: 404 diff --git a/tests/default/indices/update.yaml b/tests/default/indices/update.yaml new file mode 100644 index 000000000..bbe553fd7 --- /dev/null +++ b/tests/default/indices/update.yaml @@ -0,0 +1,82 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test updating a document. +epilogues: + - path: /movies + method: DELETE + status: [200, 404] +prologues: + - path: /movies/_doc/1 + method: POST + parameters: + refresh: true + request: + payload: + title: Beauty and the Beast + year: 1990 +chapters: + - synopsis: Update a document in the index. + path: /{index}/_update/{id} + method: POST + parameters: + index: movies + id: '1' + refresh: true + request: + payload: + doc: + title: Beauty and the Beast + year: 1991 + response: + status: 200 + payload: + result: updated + - synopsis: Update a document in the index using a script. + path: /{index}/_update/{id} + method: POST + parameters: + index: movies + id: '1' + request: + payload: + script: + source: ctx._source.year += params.value + lang: painless + params: + value: 10 + response: + status: 200 + payload: + result: updated + - synopsis: Upsert a document. + path: /{index}/_update/{id} + method: POST + parameters: + index: movies + id: '1' + request: + payload: + doc: + title: Drive + upsert: + title: Drive + response: + status: 200 + payload: + result: updated + - synopsis: Upsert a document (doc_as_upsert). + path: /{index}/_update/{id} + method: POST + parameters: + index: movies + id: '1' + request: + payload: + doc: + title: Drive + year: 2011 + doc_as_upsert: true + response: + status: 200 + payload: + result: updated diff --git a/tests/default/indices/validate/query.yaml b/tests/default/indices/validate/query.yaml new file mode 100644 index 000000000..264579058 --- /dev/null +++ b/tests/default/indices/validate/query.yaml @@ -0,0 +1,49 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test validating queries for a specific index using both GET and POST methods. +epilogues: + - path: /movies + method: DELETE + status: [200, 404] +prologues: + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies, _id: movie1}} + - {director: Bennett Miller, title: The Cruise, year: 1998} + - {create: {_index: movies, _id: movie2}} + - {director: Nicolas Winding Refn, title: Drive, year: 1960} +chapters: + - synopsis: Validate a match query (GET). + path: /{index}/_validate/query + method: GET + parameters: + index: movies + request: + payload: + query: + match: + year: 1998 + response: + status: 200 + payload: + valid: true + + - synopsis: Validate a match query (POST). + path: /{index}/_validate/query + method: POST + parameters: + index: movies + request: + payload: + query: + match: + title: Drive + response: + status: 200 + payload: + valid: true \ No newline at end of file diff --git a/tests/default/ism/explain.yaml b/tests/default/ism/explain.yaml index f3cf7654d..143feb25d 100644 --- a/tests/default/ism/explain.yaml +++ b/tests/default/ism/explain.yaml @@ -26,10 +26,10 @@ prologues: payload: policy_id: ${policy.id} chapters: - - synopsis: Get the total managed indices count (GET). + - synopsis: Get the total managed indexes count (GET). path: /_plugins/_ism/explain method: GET - - synopsis: Get the total managed indices count (POST). + - synopsis: Get the total managed indexes count (POST). version: '>= 2.12' path: /_plugins/_ism/explain method: POST diff --git a/tests/default/knn/train_model.yaml b/tests/default/knn/train_model.yaml index b45ac5c6f..cb58ed97c 100644 --- a/tests/default/knn/train_model.yaml +++ b/tests/default/knn/train_model.yaml @@ -41,6 +41,9 @@ prologues: - {index: {_index: movies, _id: '9'}} - {recommendation_vector: [9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5], duration: 8.9} status: [200] + - method: POST + path: /_refresh + status: [200] epilogues: - path: /movies method: DELETE @@ -70,4 +73,18 @@ chapters: response: status: 200 output: - test_model_id: payload.model_id \ No newline at end of file + test_model_id: payload.model_id + - synopsis: Wait for the model to get trained. + warnings: + multiple-paths-detected: false + method: GET + path: /_plugins/_knn/models/{model_id} + parameters: + model_id: ${train_model.test_model_id} + retry: + count: 3 + response: + status: 200 + payload: + model_id: ${train_model.test_model_id} + state: created diff --git a/tests/default/list/indices.yaml b/tests/default/list/indices.yaml new file mode 100644 index 000000000..a1407f211 --- /dev/null +++ b/tests/default/list/indices.yaml @@ -0,0 +1,141 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test _list/indices endpoints. +# TODO: Re-enable in 3.0, see https://github.com/opensearch-project/opensearch-api-specification/pull/613 +version: '>= 2.18 < 3' +prologues: + - path: /{index} + method: PUT + parameters: + index: books + request: + payload: {} + - path: /{index} + method: PUT + parameters: + index: unassigned + wait_for_active_shards: 0 + request: + payload: + settings: + routing: + allocation: + require: + test: test +epilogues: + - path: /books + method: DELETE + status: [200, 404] + - path: /unassigned + method: DELETE + status: [200, 404] +chapters: + - synopsis: List information related to indexes (text/plain). + method: GET + path: /_list/indices + response: + status: 200 + content_type: text/plain + - synopsis: List information related to one index (text/plain). + method: GET + path: /_list/indices/{index} + parameters: + index: books + response: + status: 200 + content_type: text/plain + - synopsis: List information related to indexes with verbose output (v=true). + method: GET + path: /_list/indices + parameters: + v: true + response: + status: 200 + content_type: text/plain + - synopsis: List information related to indexes with headers (h=header1,header2). + method: GET + path: /_list/indices + parameters: + h: + - health + - status + response: + status: 200 + content_type: text/plain + - synopsis: List information related to indexes displaying all available headers (help=true). + method: GET + path: /_list/indices + parameters: + help: true + response: + status: 200 + content_type: text/plain + - synopsis: List information related to indexes with sorted results. + method: GET + path: /_list/indices + parameters: + s: + - status + response: + status: 200 + content_type: text/plain + - synopsis: List information related to indexes with bytes, time and all fields. + method: GET + path: /_list/indices + parameters: + format: json + bytes: b + time: s + h: + - '*' + response: + status: 200 + content_type: application/json + - synopsis: List information related to indexes with all fields. + method: GET + path: /_list/indices + parameters: + format: json + response: + status: 200 + content_type: application/json + - synopsis: List information related to indexes in different formats (format=json). + method: GET + path: /_list/indices + parameters: + format: json + response: + status: 200 + content_type: application/json + - synopsis: List information related to indexes in different formats (format=yaml). + method: GET + path: /_list/indices + parameters: + format: yaml + response: + status: 200 + content_type: application/yaml + - synopsis: List information related to indexes in different formats (format=cbor). + distributions: + excluded: + - amazon-managed + - amazon-serverless + method: GET + path: /_list/indices + parameters: + format: cbor + response: + status: 200 + content_type: application/cbor + - synopsis: List information related to indexes in different formats (format=smile). + distributions: + excluded: + - amazon-managed + - amazon-serverless + method: GET + path: /_list/indices + parameters: + format: smile + response: + status: 200 + content_type: application/smile diff --git a/tests/default/list/shards.yaml b/tests/default/list/shards.yaml new file mode 100644 index 000000000..768804c8a --- /dev/null +++ b/tests/default/list/shards.yaml @@ -0,0 +1,51 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test list/shards endpoints. +# TODO: Re-enable in 3.0, see https://github.com/opensearch-project/opensearch-api-specification/pull/613 +version: '>= 2.18 < 3' +prologues: + - path: /{index} + method: PUT + parameters: + index: games + - path: /{index} + method: PUT + parameters: + index: unassigned + wait_for_active_shards: 0 + request: + payload: + settings: + routing: + allocation: + require: + test: test +epilogues: + - path: /games + method: DELETE + status: [200, 404] + - path: /unassigned + method: DELETE + status: [200, 404] +chapters: + - synopsis: List the state of all primary and replica shards and how they are distributed. + path: /_list/shards + method: GET + parameters: + format: json + h: + - '*' + - synopsis: List the state of all primary and replica shards and how they are distributed for an index. + path: /_list/shards/{index} + method: GET + parameters: + format: json + index: + - games + bytes: kb + local: true + time: s + h: + - '*' + response: + status: 200 diff --git a/tests/default/nodes/hot_threads.yaml b/tests/default/nodes/hot_threads.yaml index a496228c7..f4c0a7b11 100644 --- a/tests/default/nodes/hot_threads.yaml +++ b/tests/default/nodes/hot_threads.yaml @@ -21,7 +21,7 @@ chapters: response: status: 200 content_type: text/plain - - synopsis: Get _all node busy JVM threads (node_id). + - synopsis: Get `_all` node busy JVM threads (node_id). path: /_nodes/{node_id}/hot_threads method: GET parameters: diff --git a/tests/default/nodes/stats.yaml b/tests/default/nodes/stats.yaml index aeddd5364..a54f284ae 100644 --- a/tests/default/nodes/stats.yaml +++ b/tests/default/nodes/stats.yaml @@ -21,7 +21,7 @@ chapters: include_segment_file_sizes: true response: status: 200 - - synopsis: Get _all node stats (node_id). + - synopsis: Get `_all` node stats (node_id). path: /_nodes/{node_id}/stats method: GET parameters: diff --git a/tests/default/notifications/channels.yaml b/tests/default/notifications/channels.yaml new file mode 100644 index 000000000..d45fea828 --- /dev/null +++ b/tests/default/notifications/channels.yaml @@ -0,0 +1,10 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test listing channels. +version: '>= 2.0' +chapters: + - synopsis: Retrieve a list of all notification channels. + path: /_plugins/_notifications/channels + method: GET + response: + status: 200 diff --git a/tests/default/notifications/configs.yaml b/tests/default/notifications/configs.yaml new file mode 100644 index 000000000..3a1523f1e --- /dev/null +++ b/tests/default/notifications/configs.yaml @@ -0,0 +1,97 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test listing notification configs. +version: '>= 2.0' +chapters: + - synopsis: Create a channel configuration. + path: /_plugins/_notifications/configs + method: POST + request: + payload: + config_id: webhook-configuration + config: + name: Notifications Channel + description: Default notifications channel. + config_type: webhook + is_enabled: true + webhook: + url: http://webhook:8080/ + response: + status: 200 + - synopsis: Update a channel configuration. + path: /_plugins/_notifications/configs/{config_id} + method: PUT + parameters: + config_id: webhook-configuration + request: + payload: + config: + name: Notifications Channel + config_type: webhook + is_enabled: true + webhook: + url: http://webhook:8080/ + response: + status: 200 + - synopsis: Retrieve a list of all notification configurations. + path: /_plugins/_notifications/configs + method: GET + retry: + count: 2 + response: + status: 200 + payload: + config_list: + - config_id: webhook-configuration + - synopsis: Retrieve a list of all notification configurations filtered by config ID. + path: /_plugins/_notifications/configs + method: GET + parameters: + config_type: webhook + response: + status: 200 + payload: + config_list: + - config_id: webhook-configuration + - synopsis: Retrieve a notification configuration by config ID (path). + path: /_plugins/_notifications/configs/{config_id} + method: GET + parameters: + config_id: webhook-configuration + response: + status: 200 + payload: + config_list: + - config_id: webhook-configuration + - synopsis: Retrieve a notification configuration by config ID (query). + path: /_plugins/_notifications/configs + method: GET + parameters: + config_id: webhook-configuration + response: + status: 200 + payload: + config_list: + - config_id: webhook-configuration + - synopsis: Retrieve a notification configuration by config ID list (query). + path: /_plugins/_notifications/configs + method: GET + parameters: + config_id_list: + - webhook-configuration + response: + status: 200 + payload: + config_list: + - config_id: webhook-configuration + - synopsis: Delete a channel configuration. + path: /_plugins/_notifications/configs/{config_id} + method: DELETE + parameters: + config_id: webhook-configuration + response: + status: 200 +epilogues: + - path: /_plugins/_notifications/configs/webhook-configuration + method: DELETE + status: [200,404] diff --git a/tests/default/notifications/features.yaml b/tests/default/notifications/features.yaml new file mode 100644 index 000000000..6c11b90b1 --- /dev/null +++ b/tests/default/notifications/features.yaml @@ -0,0 +1,10 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test listing supported channel configurations. +version: '>= 2.0' +chapters: + - synopsis: Retrieve a list of all supported notification configuration types. + path: /_plugins/_notifications/features + method: GET + response: + status: 200 diff --git a/tests/default/query/datasources.yaml b/tests/default/query/datasources.yaml index 80ad12800..7ea3fead4 100644 --- a/tests/default/query/datasources.yaml +++ b/tests/default/query/datasources.yaml @@ -1,6 +1,6 @@ $schema: ../../../json_schemas/test_story.schema.yaml -description: Test various operations of the OpenSearch Query Datasources API. +description: Test various operations of the OpenSearch Query Data Sources API. version: '>=2.7' distributions: excluded: diff --git a/tests/default/security/api/allowlist.yaml b/tests/default/security/api/allowlist.yaml index 5c0b29a8e..a11583866 100644 --- a/tests/default/security/api/allowlist.yaml +++ b/tests/default/security/api/allowlist.yaml @@ -7,7 +7,7 @@ distributions: - amazon-managed - amazon-serverless -# ADMIN-CERT only. These tests require explicit rest api admin privileges. +# ADMIN-CERT only. These tests require explicit REST API admin privileges. chapters: - synopsis: Create an allowlist. path: /_plugins/_security/api/allowlist diff --git a/tests/default/security/api/certificates.yaml b/tests/default/security/api/certificates.yaml index a1e868157..5fefc85f0 100644 --- a/tests/default/security/api/certificates.yaml +++ b/tests/default/security/api/certificates.yaml @@ -7,7 +7,7 @@ distributions: - amazon-managed - amazon-serverless -# ADMIN-CERT only. These tests require explicit rest api admin privileges. +# ADMIN-CERT only. These tests require explicit REST API admin privileges. prologues: - path: /_cat/nodes id: node diff --git a/tests/default/security/api/internalusers/authtoken.yaml b/tests/default/security/api/internalusers/authtoken.yaml index 08f7a40d8..b2150f8a9 100644 --- a/tests/default/security/api/internalusers/authtoken.yaml +++ b/tests/default/security/api/internalusers/authtoken.yaml @@ -1,7 +1,7 @@ $schema: ../../../../../json_schemas/test_story.schema.yaml description: Test internalusers/authtoken endpoint. -version: '> 2.16' # Fixed via https://github.com/opensearch-project/security/pull/4628 +version: '> 2.16' # Fixed in https://github.com/opensearch-project/security/pull/4628 distributions: excluded: - amazon-managed diff --git a/tests/default/security/api/nodesdn.yaml b/tests/default/security/api/nodesdn.yaml deleted file mode 100644 index 43b3991d4..000000000 --- a/tests/default/security/api/nodesdn.yaml +++ /dev/null @@ -1,65 +0,0 @@ -$schema: ../../../../json_schemas/test_story.schema.yaml - -description: Test nodesdn endpoints. -distributions: - excluded: - - amazon-managed - - amazon-serverless - -# ADMIN-CERT only. These tests require explicit rest api admin privileges. -# The setting `plugins. security. nodes_dn_dynamic_config_enabled` must be enabled. -chapters: - - synopsis: Get distinguished names. - path: /_plugins/_security/api/nodesdn - method: GET - parameters: - show_all: true - response: - status: 400 - - synopsis: Patch distinguished names. - path: /_plugins/_security/api/nodesdn - method: PATCH - request: - payload: - - op: replace - path: /cluster1/nodes_dn/0 - value: [''] - response: - status: 400 - - synopsis: Create distinguished name. - path: /_plugins/_security/api/nodesdn/{cluster_name} - method: PUT - parameters: - cluster_name: test - request: - payload: - nodes_dn: - - CN=cluster3.example.com - response: - status: 400 - - synopsis: Get distinguished name. - path: /_plugins/_security/api/nodesdn/{cluster_name} - method: GET - parameters: - cluster_name: test - response: - status: 400 - - synopsis: Patch distinguished name. - path: /_plugins/_security/api/nodesdn/{cluster_name} - method: PATCH - parameters: - cluster_name: test - request: - payload: - op: replace - path: /test/nodes_dn/0 - value: [CN=cluster2.example.com] - response: - status: 400 - - synopsis: Delete distinguished name. - path: /_plugins/_security/api/nodesdn/{cluster_name} - method: DELETE - parameters: - cluster_name: test - response: - status: 400 diff --git a/tests/default/security/api/securityconfig.yaml b/tests/default/security/api/securityconfig.yaml index 3c961343b..ad4ef61d9 100644 --- a/tests/default/security/api/securityconfig.yaml +++ b/tests/default/security/api/securityconfig.yaml @@ -7,7 +7,7 @@ distributions: - amazon-managed - amazon-serverless -# ADMIN-CERT only (except GET). These tests require explicit rest api admin privileges. +# ADMIN-CERT only (except GET). These tests require explicit REST API admin privileges. chapters: - synopsis: Get a security config. path: /_plugins/_security/api/securityconfig diff --git a/tests/default/security/api/securityconfig/config.yaml b/tests/default/security/api/securityconfig/config.yaml index 050fff9a9..6da49012d 100644 --- a/tests/default/security/api/securityconfig/config.yaml +++ b/tests/default/security/api/securityconfig/config.yaml @@ -7,7 +7,7 @@ distributions: - amazon-managed - amazon-serverless -# ADMIN-CERT only (except GET). These tests require explicit rest api admin privileges. +# ADMIN-CERT only (except GET). These tests require explicit REST API admin privileges. chapters: - synopsis: Update a security config. path: /_plugins/_security/api/securityconfig/config @@ -37,7 +37,7 @@ chapters: authentication_backend: type: intern config: {} - description: Authenticate via HTTP Basic against internal users database + description: Authenticate using HTTP Basic against internal users database. auth_failure_listeners: {} do_not_fail_on_forbidden: false multi_rolespan_enabled: true diff --git a/tests/default/security/api/ssl/certs.yaml b/tests/default/security/api/ssl/certs.yaml index c888789cb..6eec0e9e2 100644 --- a/tests/default/security/api/ssl/certs.yaml +++ b/tests/default/security/api/ssl/certs.yaml @@ -7,7 +7,7 @@ distributions: - amazon-managed - amazon-serverless -# ADMIN-CERT only. These tests require explicit rest api admin privileges. +# ADMIN-CERT only. These tests require explicit REST API admin privileges. chapters: - synopsis: Get ssl certificates. path: /_plugins/_security/api/ssl/certs diff --git a/tests/default/security/api/ssl/http/reloadcerts.yaml b/tests/default/security/api/ssl/http/reloadcerts.yaml index 6c16242b0..34800b6c0 100644 --- a/tests/default/security/api/ssl/http/reloadcerts.yaml +++ b/tests/default/security/api/ssl/http/reloadcerts.yaml @@ -7,7 +7,7 @@ distributions: - amazon-managed - amazon-serverless -# ADMIN-CERT only. These tests require explicit rest api admin privileges. +# ADMIN-CERT only. These tests require explicit REST API admin privileges. chapters: - synopsis: Reload http certs. path: /_plugins/_security/api/ssl/http/reloadcerts diff --git a/tests/default/security/api/ssl/transport/reloadcerts.yaml b/tests/default/security/api/ssl/transport/reloadcerts.yaml index 41431e00b..26f78fd63 100644 --- a/tests/default/security/api/ssl/transport/reloadcerts.yaml +++ b/tests/default/security/api/ssl/transport/reloadcerts.yaml @@ -7,7 +7,7 @@ distributions: - amazon-managed - amazon-serverless -# ADMIN-CERT only. These tests require explicit rest api admin privileges. +# ADMIN-CERT only. These tests require explicit REST API admin privileges. chapters: - synopsis: Reload transport certs. path: /_plugins/_security/api/ssl/transport/reloadcerts diff --git a/tests/default/security/api/upgrade_check.yaml b/tests/default/security/api/upgrade_check.yaml index 8cb9c7789..a7d5d8755 100644 --- a/tests/default/security/api/upgrade_check.yaml +++ b/tests/default/security/api/upgrade_check.yaml @@ -1,6 +1,6 @@ $schema: ../../../../json_schemas/test_story.schema.yaml -description: Test _upgrade_check endpoint. +description: Test `_upgrade_check` endpoint. version: '> 2.13' distributions: excluded: diff --git a/tests/default/security/api/upgrade_perform.yaml b/tests/default/security/api/upgrade_perform.yaml index 39e452f83..c320ca6cf 100644 --- a/tests/default/security/api/upgrade_perform.yaml +++ b/tests/default/security/api/upgrade_perform.yaml @@ -1,6 +1,6 @@ $schema: ../../../../json_schemas/test_story.schema.yaml -description: Test _upgrade_perform endpoint. +description: Test `_upgrade_perform` endpoint. version: '> 2.13' distributions: excluded: diff --git a/tests/default/security/api/user/authtoken.yaml b/tests/default/security/api/user/authtoken.yaml index 8df0c3574..8d6176d54 100644 --- a/tests/default/security/api/user/authtoken.yaml +++ b/tests/default/security/api/user/authtoken.yaml @@ -1,7 +1,7 @@ $schema: ../../../../../json_schemas/test_story.schema.yaml description: Test authtoken endpoints for user. -version: '> 2.16' # Fixed via https://github.com/opensearch-project/security/pull/4628 +version: '> 2.16' # Fixed in https://github.com/opensearch-project/security/pull/4628 distributions: excluded: - amazon-managed diff --git a/tests/default/security/authinfo.yaml b/tests/default/security/authinfo.yaml index 5243a3f6a..b2997ea13 100644 --- a/tests/default/security/authinfo.yaml +++ b/tests/default/security/authinfo.yaml @@ -12,7 +12,7 @@ chapters: version: < 2.13 response: status: 200 - - synopsis: Get auth info via POST. + - synopsis: Get auth info using POST. path: /_plugins/_security/authinfo method: POST version: < 2.13 diff --git a/tests/default/security/dashboardsinfo.yaml b/tests/default/security/dashboardsinfo.yaml index 6bcfd4b44..e611a8e46 100644 --- a/tests/default/security/dashboardsinfo.yaml +++ b/tests/default/security/dashboardsinfo.yaml @@ -11,7 +11,7 @@ chapters: method: GET response: status: 200 - - synopsis: Get dashboards info via POST. + - synopsis: Get dashboards info using POST. path: /_plugins/_security/dashboardsinfo method: POST response: diff --git a/tests/default/security/health.yaml b/tests/default/security/health.yaml index cbd8e9c5a..8c9481bf7 100644 --- a/tests/default/security/health.yaml +++ b/tests/default/security/health.yaml @@ -17,7 +17,7 @@ chapters: message: null mode: strict status: UP - - synopsis: Get security health info via POST. + - synopsis: Get security health info using POST. path: /_plugins/_security/health method: POST parameters: diff --git a/tests/default/security/tenantinfo.yaml b/tests/default/security/tenantinfo.yaml index c113a1de7..f1dd7b2a7 100644 --- a/tests/default/security/tenantinfo.yaml +++ b/tests/default/security/tenantinfo.yaml @@ -12,7 +12,7 @@ chapters: response: status: 403 # only allowed for super-admin or dashboards-server role mapping content_type: text/plain - - synopsis: Get tenant info via POST. + - synopsis: Get tenant info using POST. path: /_plugins/_security/tenantinfo method: POST response: diff --git a/tests/default/security/whoami.yaml b/tests/default/security/whoami.yaml index dc6c42c37..2ea1f643b 100644 --- a/tests/default/security/whoami.yaml +++ b/tests/default/security/whoami.yaml @@ -16,7 +16,7 @@ chapters: dn: null is_admin: false is_node_certificate_request: false - - synopsis: Get current user info via POST. + - synopsis: Get current user info using POST. path: /_plugins/_security/whoami method: POST response: diff --git a/tests/plugins/analysis/Dockerfile b/tests/plugins/analysis/Dockerfile new file mode 100644 index 000000000..b45c0aef9 --- /dev/null +++ b/tests/plugins/analysis/Dockerfile @@ -0,0 +1,7 @@ +ARG OPENSEARCH_DOCKER_HUB_PROJECT +ARG OPENSEARCH_VERSION +ARG OPENSEARCH_DOCKER_REF + +FROM ${OPENSEARCH_DOCKER_HUB_PROJECT}/opensearch:${OPENSEARCH_VERSION}${OPENSEARCH_DOCKER_REF} +RUN ./bin/opensearch-plugin install -b analysis-icu +RUN ./bin/opensearch-plugin install -b analysis-phonenumber diff --git a/tests/plugins/analysis/docker-compose.yml b/tests/plugins/analysis/docker-compose.yml new file mode 100644 index 000000000..0f4c7da5d --- /dev/null +++ b/tests/plugins/analysis/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3' + +services: + opensearch-cluster: + build: + context: . + args: + - OPENSEARCH_DOCKER_HUB_PROJECT=${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject} + - OPENSEARCH_DOCKER_REF=${OPENSEARCH_DOCKER_REF} + - OPENSEARCH_VERSION=${OPENSEARCH_VERSION:-latest} + ports: + - 9200:9200 + - 9600:9600 + environment: + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - discovery.type=single-node diff --git a/tests/plugins/analysis/indices/analyze/analyzer/phone.yaml b/tests/plugins/analysis/indices/analyze/analyzer/phone.yaml new file mode 100644 index 000000000..528fb6ea9 --- /dev/null +++ b/tests/plugins/analysis/indices/analyze/analyzer/phone.yaml @@ -0,0 +1,38 @@ +$schema: ../../../../../../json_schemas/test_story.schema.yaml + +description: Test /{index}/_analyze for the phone and phone-search analyzers. +prologues: + - path: /example-phone + method: PUT + request: + payload: + settings: + index: + analysis: + analyzer: + phone-ch: + type: phone + phone-region: CH + phone-search-ch: + type: phone-search + phone-region: CH +epilogues: + - path: /example-phone + method: DELETE + status: [200, 404] +chapters: + - synopsis: Analyze phone number. + path: /{index}/_analyze + method: POST + parameters: + index: example-phone + request: + payload: + analyzer: phone-ch + text: '+41 60 555 12 34' + response: + status: 200 + payload: + tokens: + - token: '+41 60 555 12 34' + - token: '6055512' diff --git a/tests/plugins/analysis/indices/mapping/icu_collation_keyword.yaml b/tests/plugins/analysis/indices/mapping/icu_collation_keyword.yaml new file mode 100644 index 000000000..3fa7dd601 --- /dev/null +++ b/tests/plugins/analysis/indices/mapping/icu_collation_keyword.yaml @@ -0,0 +1,81 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test mappings endpoints. +warnings: + multiple-paths-detected: false +prologues: [] +epilogues: + - path: /collated + method: DELETE + status: [200, 404] +chapters: + - synopsis: Create an index with a mapping that uses ICU collation. + path: /{index} + method: PUT + parameters: + index: collated + request: + payload: + mappings: + properties: + phrase: + type: icu_collation_keyword + language: tr + strength: primary + + - synopsis: Get mappings for index. + path: /{index}/_mapping + method: GET + parameters: + index: collated + response: + status: 200 + payload: + collated: + mappings: + properties: + phrase: + type: icu_collation_keyword + language: tr + strength: primary + + - synopsis: Index values with ICU collation. + path: /{index}/_bulk + method: POST + parameters: + index: collated + refresh: wait_for + request: + content_type: application/x-ndjson + payload: + - {create: {_id: '1'}} + - {phrase: I WİLL USE TURKİSH CASING} + - {create: {_id: '2'}} + - {phrase: ı will use turkish casıng} + + - synopsis: Search for values with ICU collation. + path: /{index}/_search + method: POST + parameters: + index: collated + request: + payload: + query: + term: + phrase: I WİLL USE TURKİSH CASING + sort: + - phrase + - {_id: desc} + response: + status: 200 + payload: + hits: + total: + value: 2 + hits: + - _id: '2' + _source: + phrase: ı will use turkish casıng + - _id: '1' + _source: + phrase: I WİLL USE TURKİSH CASING diff --git a/tests/plugins/ml/ingest/pipeline/neural_search.yaml b/tests/plugins/ml/ingest/pipeline/neural_search.yaml index ca2fdd60a..5e68f5995 100644 --- a/tests/plugins/ml/ingest/pipeline/neural_search.yaml +++ b/tests/plugins/ml/ingest/pipeline/neural_search.yaml @@ -183,23 +183,6 @@ chapters: title: Moneyball script: source: _score * 1.7 - - synopsis: Search by Image - Invalid Model. - path: /{index}/_search - method: POST - parameters: - index: movies - request: - payload: - _source: - excludes: [passage_embedding] - query: - neural: - passage_embedding: - query_image: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII= - model_id: invalid # This makes the test fail with a 404 but will still validate the query_image. - k: 100 - response: - status: 404 - synopsis: Undeploy a model. path: /_plugins/_ml/models/{model_id}/_undeploy method: POST diff --git a/tests/plugins/ml/ingest/pipeline/search_by_image.yaml b/tests/plugins/ml/ingest/pipeline/search_by_image.yaml new file mode 100644 index 000000000..e4fc46e61 --- /dev/null +++ b/tests/plugins/ml/ingest/pipeline/search_by_image.yaml @@ -0,0 +1,26 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test search by image. +distributions: + excluded: + - amazon-managed + - amazon-serverless +version: '>= 2.11' +chapters: + - synopsis: Search by Image - Invalid Model. + path: /{index}/_search + method: POST + parameters: + index: movies + request: + payload: + _source: + excludes: [passage_embedding] + query: + neural: + passage_embedding: + query_image: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII= + model_id: invalid # This makes the test fail with a 404 but will still validate the query_image. + k: 100 + response: + status: 404 diff --git a/tests/plugins/ml/ml/models.yaml b/tests/plugins/ml/ml/models.yaml index ce087654f..92cac3ca3 100644 --- a/tests/plugins/ml/ml/models.yaml +++ b/tests/plugins/ml/ml/models.yaml @@ -37,6 +37,20 @@ chapters: retry: count: 5 wait: 30000 + - synopsis: Search model. + path: /_plugins/_ml/models/_search + method: GET + request: + payload: + query: + match_all: {} + size: 1000 + response: + status: 200 + payload: + hits: + hits: + - _score: 1 - synopsis: Delete model. path: /_plugins/_ml/models/{model_id} parameters: diff --git a/tests/plugins/ml/ml/tasks.yaml b/tests/plugins/ml/ml/tasks.yaml new file mode 100644 index 000000000..542ea3468 --- /dev/null +++ b/tests/plugins/ml/ml/tasks.yaml @@ -0,0 +1,28 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test the creation of tasks. +version: '>= 2.11' +warnings: + multiple-paths-detected: false +chapters: + - synopsis: Register model. + id: register_model + path: /_plugins/_ml/models/_register + method: POST + request: + payload: + name: huggingface/sentence-transformers/msmarco-distilbert-base-tas-b + version: 1.0.1 + model_format: TORCH_SCRIPT + response: + status: 200 + output: + task_id: payload.task_id + - synopsis: Delete task. + id: delete_task + path: /_plugins/_ml/tasks/{task_id} + method: DELETE + parameters: + task_id: ${register_model.task_id} + response: + status: 200 \ No newline at end of file diff --git a/tests/plugins/notifications/docker-compose.yml b/tests/plugins/notifications/docker-compose.yml new file mode 100644 index 000000000..937846f3c --- /dev/null +++ b/tests/plugins/notifications/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3' + +services: + opensearch-cluster: + image: ${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject}/opensearch:${OPENSEARCH_VERSION:-latest}${OPENSEARCH_DOCKER_REF} + ports: + - 9200:9200 + - 9600:9600 + environment: + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - discovery.type=single-node + webhook: + image: python:latest + volumes: + - ./server.py:/server.py + ports: + - '8080:8080' + entrypoint: python server.py diff --git a/tests/plugins/notifications/notifications/feature/test.yaml b/tests/plugins/notifications/notifications/feature/test.yaml new file mode 100644 index 000000000..e889155e1 --- /dev/null +++ b/tests/plugins/notifications/notifications/feature/test.yaml @@ -0,0 +1,37 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test sending a notification. +version: '>= 2.0' +prologues: + - path: /_plugins/_notifications/configs + method: POST + request: + payload: + config_id: custom-webhook-configuration + config: + name: Notifications Channel + description: Default notifications channel. + config_type: webhook + is_enabled: true + webhook: + url: http://webhook:8080/ + status: [200] +chapters: + - synopsis: Test sending a notification. + path: /_plugins/_notifications/feature/test/{config_id} + method: GET + parameters: + config_id: custom-webhook-configuration + response: + status: 200 + payload: + status_list: + - config_id: custom-webhook-configuration + config_type: webhook + delivery_status: + status_code: '200' + status_text: '{"ok":"true"}' +epilogues: + - path: /_plugins/_notifications/configs/custom-webhook-configuration + method: DELETE + status: [200,404] diff --git a/tests/plugins/notifications/server.py b/tests/plugins/notifications/server.py new file mode 100644 index 000000000..20de61d94 --- /dev/null +++ b/tests/plugins/notifications/server.py @@ -0,0 +1,31 @@ +# +# Copyright OpenSearch Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# The OpenSearch Contributors require contributions made to +# this file be licensed under the Apache-2.0 license or a +# compatible open source license. +# + +from http.server import BaseHTTPRequestHandler, HTTPServer + + +class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): + def do_GET(self): + self.send_response(200) + self.send_header("Content-type", "application_json") + self.end_headers() + self.wfile.write(b'{"ok":"true"}') + + def do_POST(self): + self.send_response(200) + self.send_header("Content-type", "application_json") + self.end_headers() + self.wfile.write(b'{"ok":"true"}') + + +if __name__ == "__main__": + server_address = ("", 8080) + httpd = HTTPServer(server_address, SimpleHTTPRequestHandler) + print("Server started on http://localhost:8080") + httpd.serve_forever() diff --git a/tests/plugins/query_insights/docker-compose.yml b/tests/plugins/query_insights/docker-compose.yml new file mode 100644 index 000000000..69c7d01fe --- /dev/null +++ b/tests/plugins/query_insights/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3' + +services: + opensearch-cluster: + image: ${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject}/opensearch:${OPENSEARCH_VERSION:-latest}${OPENSEARCH_DOCKER_REF} + ports: + - 9200:9200 + - 9600:9600 + environment: + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - discovery.type=single-node + - search.insights.top_queries.cpu.enabled=true + - search.insights.top_queries.latency.enabled=true + - search.insights.top_queries.memory.enabled=true diff --git a/tests/plugins/query_insights/insights/top_queries.yaml b/tests/plugins/query_insights/insights/top_queries.yaml new file mode 100644 index 000000000..d9a4c156e --- /dev/null +++ b/tests/plugins/query_insights/insights/top_queries.yaml @@ -0,0 +1,112 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test top n queries API in the Query Insights plugin. +version: '>= 2.15' +prologues: + - path: /movies + method: PUT + request: + payload: + mappings: + properties: + director: + type: text + fielddata: true + fields: + raw: + type: keyword + - path: /_bulk + method: POST + parameters: + refresh: true + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Moneyball} + - {create: {_index: movies}} + - {director: Bennett Miller, title: The Cruise} + - {create: {_index: movies}} + - {director: Nicolas Winding Refn, title: Drive} + + - path: /{index}/_search + parameters: + index: movies + method: GET + request: + payload: + size: 0 + aggregations: + directors: + terms: + field: director.raw + + - path: /{index}/_search + parameters: + index: movies + method: GET + request: + payload: + query: + bool: + adjust_pure_negative: true + must: + match: + title: Drive + +chapters: + - synopsis: Retrieve default top queries. + path: /_insights/top_queries + retry: + count: 2 + wait: 5000 + method: GET + response: + status: 200 + content_type: application/json + payload: + top_queries: [] + - synopsis: Retrieve top queries by latency. + path: /_insights/top_queries + retry: + count: 2 + wait: 5000 + parameters: + type: latency + method: GET + response: + status: 200 + content_type: application/json + payload: + top_queries: [] + - synopsis: Retrieve top queries by cpu usage. + path: /_insights/top_queries + retry: + count: 2 + wait: 5000 + parameters: + type: cpu + method: GET + response: + status: 200 + content_type: application/json + payload: + top_queries: [] + - synopsis: Retrieve top queries by memory usage. + path: /_insights/top_queries + retry: + count: 2 + wait: 5000 + parameters: + type: memory + method: GET + response: + status: 200 + content_type: application/json + payload: + top_queries: [] + +epilogues: + - path: /movies + method: DELETE + status: [200, 404] diff --git a/tests/plugins/replication/autofollow.yaml b/tests/plugins/replication/autofollow.yaml new file mode 100644 index 000000000..89eabce30 --- /dev/null +++ b/tests/plugins/replication/autofollow.yaml @@ -0,0 +1,88 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test replication APIs specs. +prologues: + - path: /{index} + method: PUT + parameters: + index: books + request: + payload: {} + - path: /_bulk + method: POST + request: + content_type: application/x-ndjson + payload: + - {create: {_index: books, _id: book_1392214}} + - {author: Harper Lee, title: To Kill a Mockingbird, year: 1960} + - {create: {_index: books, _id: book_1392215}} + - {author: Elizabeth Rudnick, title: Beauty and the Beast, year: 1991} + - path: /{index}/_refresh + method: POST + parameters: + index: books + - path: /_cluster/settings + method: PUT + request: + payload: + persistent: + cluster: + remote: + leader-cluster: + seeds: ['172.22.0.3:9300'] + - path: /_plugins/_replication/{index}/_start + version: '>= 1.1' + method: PUT + parameters: + index: books-names + request: + payload: + leader_alias: leader-cluster + leader_index: books + use_roles: + leader_cluster_role: all_access + follower_cluster_role: all_access +epilogues: + - path: /_plugins/_replication/{index}/_stop + method: POST + parameters: + index: books-names + request: + payload: {} + - path: /books-names + method: DELETE + status: [200, 404] + - path: /books + method: DELETE + status: [200, 404] +chapters: + - synopsis: Create replication rule. + path: /_plugins/_replication/_autofollow + version: '>= 1.1' + method: POST + request: + payload: + leader_alias: leader-cluster + name: books + pattern: 'books-*' + use_roles: + leader_cluster_role: leader_role + follower_cluster_role: admin + response: + status: 200 + - synopsis: Get auto-follow stats. + path: /_plugins/_replication/autofollow_stats + version: '>= 1.1' + method: GET + response: + status: 200 + - synopsis: Delete replication rule. + path: /_plugins/_replication/_autofollow + version: '>= 1.1' + method: DELETE + request: + payload: + leader_alias: leader-cluster + name: books + response: + status: 200 \ No newline at end of file diff --git a/tests/plugins/replication/docker-compose.yml b/tests/plugins/replication/docker-compose.yml new file mode 100644 index 000000000..041be3f9d --- /dev/null +++ b/tests/plugins/replication/docker-compose.yml @@ -0,0 +1,62 @@ +version: '3' + +services: + opensearch-leader-node1: + image: ${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject}/opensearch:${OPENSEARCH_VERSION:-latest}${OPENSEARCH_DOCKER_REF} + environment: + - DISABLE_INSTALL_DEMO_CONFIG=true + - DISABLE_SECURITY_PLUGIN=true + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m + - bootstrap.memory_lock=true + - cluster.initial_master_nodes=opensearch-leader-node1 + - cluster.name=leader-cluster + - discovery.seed_hosts=opensearch-leader-node1 + - network.host=0.0.0.0 + - node.name=opensearch-leader-node1 + - path.repo=/tmp/opensearch/repo + - plugins.index_state_management.job_interval=1 + ulimits: + memlock: + soft: -1 + hard: -1 + ports: + - '9200:9200' + - '9600:9600' + networks: + opensearch-net: + ipv4_address: 172.22.0.3 + + opensearch-follower-node1: + image: ${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject}/opensearch:${OPENSEARCH_VERSION:-latest}${OPENSEARCH_DOCKER_REF} + environment: + - DISABLE_INSTALL_DEMO_CONFIG=true + - DISABLE_SECURITY_PLUGIN=true + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m + - bootstrap.memory_lock=true + - cluster.initial_master_nodes=opensearch-follower-node1 + - cluster.name=follower-cluster + - cluster.remote.leader-cluster.seeds=172.22.0.3:9300 + - discovery.seed_hosts=opensearch-follower-node1 + - network.host=0.0.0.0 + - node.name=opensearch-follower-node1 + - path.repo=/tmp/opensearch/repo + - plugins.index_state_management.job_interval=1 + ulimits: + memlock: + soft: -1 + hard: -1 + ports: + - '9201:9200' + - '9601:9600' + networks: + opensearch-net: + ipv4_address: 172.22.0.4 + +networks: + opensearch-net: + driver: bridge + ipam: + config: + - subnet: 172.22.0.0/24 diff --git a/tests/plugins/replication/index.yaml b/tests/plugins/replication/index.yaml new file mode 100644 index 000000000..a70a0b991 --- /dev/null +++ b/tests/plugins/replication/index.yaml @@ -0,0 +1,74 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test replication APIs specs. +prologues: + - path: /{index} + method: PUT + parameters: + index: books + request: + payload: {} + - path: /_bulk + method: POST + request: + content_type: application/x-ndjson + payload: + - {create: {_index: books, _id: book_1392214}} + - {author: Harper Lee, title: To Kill a Mockingbird, year: 1960} + - {create: {_index: books, _id: book_1392215}} + - {author: Elizabeth Rudnick, title: Beauty and the Beast, year: 1991} + - path: /{index}/_refresh + method: POST + parameters: + index: books + - path: /_cluster/settings + method: PUT + request: + payload: + persistent: + cluster: + remote: + leader-cluster: + seeds: ['172.22.0.3:9300'] +epilogues: + - path: /_plugins/_replication/{index}/_stop + method: POST + parameters: + index: books-names + request: + payload: {} + - path: /books-names + method: DELETE + status: [200, 404] + - path: /books + method: DELETE + status: [200, 404] +chapters: + - synopsis: Start replication. + path: /_plugins/_replication/{index}/_start + version: '>= 1.1' + method: PUT + parameters: + index: books-names + request: + payload: + leader_alias: leader-cluster + leader_index: books + use_roles: + leader_cluster_role: all_access + follower_cluster_role: all_access + response: + status: 200 + - synopsis: Update settings. + path: /_plugins/_replication/{index}/_update + version: '>= 1.1' + method: PUT + parameters: + index: books-names + request: + payload: + settings: + index.number_of_shards: 4 + index.number_of_replicas: 2 + response: + status: 200 \ No newline at end of file diff --git a/tests/plugins/replication/stats.yaml b/tests/plugins/replication/stats.yaml new file mode 100644 index 000000000..6584200ed --- /dev/null +++ b/tests/plugins/replication/stats.yaml @@ -0,0 +1,84 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test replication APIs specs. +prologues: + - path: /{index} + method: PUT + parameters: + index: books + request: + payload: {} + - path: /_bulk + method: POST + request: + content_type: application/x-ndjson + payload: + - {create: {_index: books, _id: book_1392214}} + - {author: Harper Lee, title: To Kill a Mockingbird, year: 1960} + - {create: {_index: books, _id: book_1392215}} + - {author: Elizabeth Rudnick, title: Beauty and the Beast, year: 1991} + - path: /{index}/_refresh + method: POST + parameters: + index: books + - path: /_cluster/settings + method: PUT + request: + payload: + persistent: + cluster: + remote: + leader-cluster: + seeds: ['172.22.0.3:9300'] + - path: /_plugins/_replication/{index}/_start + version: '>= 1.1' + method: PUT + parameters: + index: books-names + request: + payload: + leader_alias: leader-cluster + leader_index: books + use_roles: + leader_cluster_role: all_access + follower_cluster_role: all_access +epilogues: + - path: /_plugins/_replication/{index}/_stop + method: POST + parameters: + index: books-names + request: + payload: {} + - path: /books-names + method: DELETE + status: [200, 404] + - path: /books + method: DELETE + status: [200, 404] +chapters: + - synopsis: Get replication stats. + path: /_plugins/_replication/{index}/_status + version: '>= 1.1' + method: GET + parameters: + index: books-names + response: + status: 200 + - synopsis: Get leader stats. + path: /_plugins/_replication/leader_stats + version: '>= 1.1' + method: GET + response: + status: 200 + - synopsis: Get follower stats. + path: /_plugins/_replication/follower_stats + version: '>= 1.1' + method: GET + response: + status: 200 + - synopsis: Get auto-follow stats. + path: /_plugins/_replication/autofollow_stats + version: '>= 1.1' + method: GET + response: + status: 200 \ No newline at end of file diff --git a/tests/plugins/streaming/Dockerfile b/tests/plugins/streaming/Dockerfile new file mode 100644 index 000000000..ba94fcedd --- /dev/null +++ b/tests/plugins/streaming/Dockerfile @@ -0,0 +1,6 @@ +ARG OPENSEARCH_DOCKER_HUB_PROJECT +ARG OPENSEARCH_VERSION +ARG OPENSEARCH_DOCKER_REF + +FROM ${OPENSEARCH_DOCKER_HUB_PROJECT}/opensearch:${OPENSEARCH_VERSION}${OPENSEARCH_DOCKER_REF} +RUN ./bin/opensearch-plugin install -b transport-reactor-netty4 diff --git a/tests/plugins/streaming/_core/bulk/stream.yaml b/tests/plugins/streaming/_core/bulk/stream.yaml new file mode 100644 index 000000000..a35c98f05 --- /dev/null +++ b/tests/plugins/streaming/_core/bulk/stream.yaml @@ -0,0 +1,63 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test bulk streaming endpoint. +epilogues: + - path: /books,movies + method: DELETE + status: [200, 404] +chapters: + - synopsis: Create an index. + version: '>= 2.17' + path: /_bulk/stream + method: POST + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Moneyball, year: 2011} + - synopsis: Update an index. + version: '>= 2.17' + path: /_bulk/stream + method: PUT + request: + content_type: application/x-ndjson + payload: + - {create: {_index: movies}} + - {director: Bennett Miller, title: Drive, year: 2011} + - synopsis: Delete document in an index. + version: '2.17' + path: /_bulk/stream + method: PUT + request: + content_type: application/x-ndjson + payload: + - {delete: {_index: movies, _id: invalid}} + response: + status: 200 + payload: + errors: false + items: + - delete: + _index: movies + _id: invalid + result: not_found + status: 404 + - synopsis: Bulk document CRUD. + version: '>= 2.17' + path: /_bulk/stream + method: POST + request: + content_type: application/x-ndjson + payload: + - {create: {_index: books, _id: book_1392214}} + - {author: Harper Lee, title: To Kill a Mockingbird, year: 1960} + - {update: {_index: books, _id: book_1392214}} + - {doc: {pages: 376}} + - {update: {_index: books, _id: book_1392214}} + - {doc: {pages: 376}, _source: true} + - {update: {_index: books, _id: book_1392214}} + - {script: {source: ctx._source.pages = 376;}} + - {update: {_index: books, _id: does_not_exist}} + - {script: {source: 'ctx.op = "none";'}, scripted_upsert: true, upsert: {pages: 375}} + - {delete: {_index: books, _id: book_1392214}} + diff --git a/tests/plugins/streaming/docker-compose.yml b/tests/plugins/streaming/docker-compose.yml new file mode 100644 index 000000000..aaf1d9f5b --- /dev/null +++ b/tests/plugins/streaming/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3' + +services: + opensearch-cluster: + build: + context: . + args: + - OPENSEARCH_DOCKER_HUB_PROJECT=${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject} + - OPENSEARCH_DOCKER_REF=${OPENSEARCH_DOCKER_REF} + - OPENSEARCH_VERSION=${OPENSEARCH_VERSION:-latest} + ports: + - 9200:9200 + - 9600:9600 + environment: + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - discovery.type=single-node + - http.type=reactor-netty4-secure diff --git a/tests/plugins/streaming/indices/bulk/stream.yaml b/tests/plugins/streaming/indices/bulk/stream.yaml new file mode 100644 index 000000000..6ad5cc603 --- /dev/null +++ b/tests/plugins/streaming/indices/bulk/stream.yaml @@ -0,0 +1,58 @@ +$schema: ../../../../../json_schemas/test_story.schema.yaml + +description: Test bulk streaming index endpoint. +version: '>= 2.17' +epilogues: + - path: /books,movies + method: DELETE + status: [200, 404] +chapters: + - synopsis: Create an index. + path: /{index}/_bulk/stream + method: POST + parameters: + index: movies + request: + content_type: application/x-ndjson + payload: + - {create: {}} + - {director: Bennett Miller, title: Moneyball, year: 2011} + - synopsis: Delete document in an index. + path: /{index}/_bulk/stream + method: PUT + parameters: + index: movies + request: + content_type: application/x-ndjson + payload: + - {delete: {_id: invalid}} + response: + status: 200 + payload: + errors: false + items: + - delete: + _index: movies + _id: invalid + result: not_found + status: 404 + - synopsis: Bulk index document CRUD. + method: POST + path: /{index}/_bulk/stream + parameters: + index: books + request: + content_type: application/x-ndjson + payload: + - {create: {_id: book_1392214}} + - {author: Harper Lee, title: To Kill a Mockingbird, year: 1960} + - {update: {_id: book_1392214}} + - {doc: {pages: 376}} + - {update: {_id: book_1392214}} + - {doc: {pages: 376}, _source: true} + - {update: {_id: book_1392214}} + - {script: {source: ctx._source.pages = 376;}} + - {update: {_id: does_not_exist}} + - {script: {source: 'ctx.op = "none";'}, scripted_upsert: true, upsert: {pages: 375}} + - {delete: {_id: book_1392214}} + diff --git a/tests/plugins/workload-management/Dockerfile b/tests/plugins/workload-management/Dockerfile new file mode 100644 index 000000000..2d040ccb8 --- /dev/null +++ b/tests/plugins/workload-management/Dockerfile @@ -0,0 +1,6 @@ +ARG OPENSEARCH_DOCKER_HUB_PROJECT +ARG OPENSEARCH_VERSION +ARG OPENSEARCH_DOCKER_REF + +FROM ${OPENSEARCH_DOCKER_HUB_PROJECT}/opensearch:${OPENSEARCH_VERSION}${OPENSEARCH_DOCKER_REF} +RUN ./bin/opensearch-plugin install -b workload-management diff --git a/tests/plugins/workload-management/docker-compose.yml b/tests/plugins/workload-management/docker-compose.yml new file mode 100644 index 000000000..c334c477f --- /dev/null +++ b/tests/plugins/workload-management/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3' + +services: + opensearch-cluster: + build: + context: . + args: + - OPENSEARCH_DOCKER_HUB_PROJECT=${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject} + - OPENSEARCH_DOCKER_REF=${OPENSEARCH_DOCKER_REF} + - OPENSEARCH_VERSION=2.17.0 + ports: + - 9200:9200 + - 9600:9600 + environment: + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - discovery.type=single-node diff --git a/tests/plugins/workload-management/query_group.yaml b/tests/plugins/workload-management/query_group.yaml new file mode 100644 index 000000000..6f2b86367 --- /dev/null +++ b/tests/plugins/workload-management/query_group.yaml @@ -0,0 +1,67 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: This story tests all endpoints relevant to QueryGroups, from creation to deletion. + +prologues: + - path: /_wlm/query_group + version: '>= 2.17' + method: PUT + request: + payload: + name: analytics + resource_limits: + memory: 0.1 + resiliency_mode: monitor + status: [200] + - path: /_wlm/query_group + version: '>= 2.17' + method: PUT + request: + payload: + name: analytics2 + resource_limits: + memory: 0.15 + cpu: 0.05 + resiliency_mode: monitor + status: [200] + +chapters: + - synopsis: Update the QueryGroup named `analytics2`, with resiliency_mode to be enforced and memory to be 0.25 and cpu to be 0.25. + version: '>= 2.17' + path: /_wlm/query_group/{name} + method: PUT + parameters: + name: analytics2 + request: + payload: + resource_limits: + memory: 0.25 + cpu: 0.25 + resiliency_mode: enforced + response: + status: 200 + - synopsis: Get the QueryGroup named `analytics2`. + version: '>= 2.17' + path: /_wlm/query_group/{name} + method: GET + parameters: + name: analytics2 + response: + status: 200 + payload: + query_groups: + - name: analytics2 + resource_limits: + memory: 0.25 + cpu: 0.25 + resiliency_mode: enforced + +epilogues: + - path: /_wlm/query_group/analytics + version: '>= 2.17' + method: DELETE + status: [200] + - path: /_wlm/query_group/analytics2 + version: '>= 2.17' + method: DELETE + status: [200] diff --git a/tests/snapshot/snapshot/restore.yaml b/tests/snapshot/snapshot/restore.yaml new file mode 100644 index 000000000..d2eaad807 --- /dev/null +++ b/tests/snapshot/snapshot/restore.yaml @@ -0,0 +1,157 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test _snapshot/{repository}/{snapshot}/_restore endpoints. +epilogues: + - path: /_snapshot/{repository}/{snapshot} + method: DELETE + status: [200, 404] + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + - path: /_snapshot/{repository} + method: DELETE + status: [200, 404] + parameters: + repository: my-fs-repository + - path: /movies + method: DELETE + status: [200, 404] + - path: /books + method: DELETE + status: [200, 404] + - path: /stories + method: DELETE + status: [200, 404] + - path: /stories_restored + method: DELETE + status: [200, 404] +prologues: + - path: /_snapshot/{repository} + method: PUT + parameters: + repository: my-fs-repository + request: + payload: + type: fs + settings: + location: /tmp/opensearch/repo + - path: /movies + method: PUT + - path: /books + method: PUT + - path: /stories + method: PUT + - path: /_aliases + method: POST + request: + payload: + actions: + - add: + index: stories + alias: stories_alias + - path: /_snapshot/{repository}/{snapshot} + method: PUT + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + wait_for_completion: true + request: + payload: + indices: + - books + - movies + - stories + ignore_unavailable: true + include_global_state: false + partial: true + - path: /movies + method: DELETE + status: [200, 404] + - path: /books + method: DELETE + status: [200, 404] + - path: /stories + method: DELETE + status: [200, 404] +chapters: + - synopsis: Restore snapshot with `wait_for_completion` true. + path: /_snapshot/{repository}/{snapshot}/_restore + method: POST + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + wait_for_completion: true + request: + payload: + indices: movies + response: + status: 200 + payload: + snapshot: + snapshot: my-test-snapshot + - synopsis: Restore snapshot with `wait_for_completion` false. + path: /_snapshot/{repository}/{snapshot}/_restore + method: POST + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + wait_for_completion: false + request: + payload: + indices: books + response: + status: 200 + payload: + accepted: true + - synopsis: Wait finish async restore. + path: /{index}/_recovery + warnings: + multiple-paths-detected: false + method: GET + parameters: + index: books + response: + status: 200 + payload: + books: + shards: + - stage: DONE + type: SNAPSHOT + retry: + count: 3 + - synopsis: Restore snapshot with rename_pattern and rename_replacement. + path: /_snapshot/{repository}/{snapshot}/_restore + method: POST + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + wait_for_completion: true + request: + payload: + indices: stories + rename_pattern: '^(.*)$' + rename_replacement: $1_restored + response: + status: 200 + payload: + snapshot: + snapshot: my-test-snapshot + - synopsis: Restore snapshot with rename_alias_pattern and rename_alias_replacement. + version: '>= 2.18' + path: /_snapshot/{repository}/{snapshot}/_restore + method: POST + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + wait_for_completion: true + request: + payload: + indices: stories + include_aliases: true + rename_alias_pattern: '^(.*)$' + rename_alias_replacement: $1_restored + response: + status: 200 + payload: + snapshot: + snapshot: my-test-snapshot diff --git a/tests/snapshot/snapshot/snapshot.yaml b/tests/snapshot/snapshot/snapshot.yaml new file mode 100644 index 000000000..ca77a39bb --- /dev/null +++ b/tests/snapshot/snapshot/snapshot.yaml @@ -0,0 +1,79 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test _snapshot/{repository}/snapshot endpoints. +epilogues: + - path: /_snapshot/{repository}/{snapshot} + method: DELETE + status: [200, 404] + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + - path: /_snapshot/{repository} + method: DELETE + status: [200, 404] + parameters: + repository: my-fs-repository +prologues: + - path: /_snapshot/{repository} + method: PUT + parameters: + repository: my-fs-repository + request: + payload: + type: fs + settings: + location: /tmp/opensearch/repo +chapters: + - synopsis: Get information about a repository. + path: /_snapshot/{repository} + method: GET + parameters: + repository: my-fs-repository + response: + status: 200 + payload: + my-fs-repository: + type: fs + settings: + location: /tmp/opensearch/repo + - synopsis: Create a snapshot. + path: /_snapshot/{repository}/{snapshot} + method: PUT + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + wait_for_completion: true + request: + payload: + indices: '*' + ignore_unavailable: true + include_global_state: false + partial: true + response: + status: 200 + payload: + snapshot: + snapshot: my-test-snapshot + - synopsis: Get information about a snapshot. + path: /_snapshot/{repository}/{snapshot} + method: GET + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + response: + status: 200 + payload: + snapshots: + - snapshot: my-test-snapshot + - synopsis: Get information about a snapshot with human-readable parameter. + path: /_snapshot/{repository}/{snapshot} + method: GET + parameters: + repository: my-fs-repository + snapshot: my-test-snapshot + human: true + response: + status: 200 + payload: + snapshots: + - snapshot: my-test-snapshot diff --git a/tools/src/_utils/index.ts b/tools/src/_utils/index.ts index 5177fd86e..02d9a18aa 100644 --- a/tools/src/_utils/index.ts +++ b/tools/src/_utils/index.ts @@ -15,6 +15,9 @@ import { to_json } from "../helpers"; export const HTTP_METHODS: OpenAPIV3.HttpMethods[] = Object.values(OpenAPIV3.HttpMethods) export type SchemaObjectType = OpenAPIV3.ArraySchemaObjectType | OpenAPIV3.NonArraySchemaObjectType export const SCHEMA_OBJECT_TYPES: SchemaObjectType[] = ['array', 'boolean', 'object', 'number', 'string', 'integer'] +export const SCHEMA_NUMERIC_TYPES: SchemaObjectType[] = ['number', 'integer'] +export const SCHEMA_NUMBER_FORMATS: string[] = ['float', 'double'] +export const SCHEMA_INTEGER_FORMATS: string[] = ['int32', 'int64'] export function is_ref (o: MaybeRef): o is OpenAPIV3.ReferenceObject { return o != null && typeof o === 'object' && '$ref' in o diff --git a/tools/src/helpers.ts b/tools/src/helpers.ts index 4f1b346ef..4144afd31 100644 --- a/tools/src/helpers.ts +++ b/tools/src/helpers.ts @@ -124,13 +124,25 @@ export function read_yaml> (file_path: string, exclude_s } export function write_yaml (file_path: string, content: any): void { - write_text(file_path, YAML.stringify( - content, - { - lineWidth: 0, - singleQuote: true, - aliasDuplicateObjects: false - })) + const doc = new YAML.Document(content, null, { aliasDuplicateObjects: false }) + + YAML.visit(doc, { + // eslint-disable-next-line @typescript-eslint/naming-convention + Scalar(_, node) { + if (typeof node.value === 'string') { + const value = node.value.toLowerCase(); + // Ensure "human" boolean string values are quoted as old YAML parsers might coerce them to boolean true/false + if (value === 'no' || value === 'yes' || value === 'n' || value === 'y' || value === 'off' || value === 'on') { + node.type = 'QUOTE_SINGLE' + } + } + } + }) + + write_text(file_path, doc.toString({ + lineWidth: 0, + singleQuote: true + })) } export function to_json(content: any, replacer?: (this: any, key: string, value: any) => any): string { diff --git a/tools/src/linter/InlineObjectSchemaValidator.ts b/tools/src/linter/InlineObjectSchemaValidator.ts deleted file mode 100644 index 1f3e06134..000000000 --- a/tools/src/linter/InlineObjectSchemaValidator.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* -* Copyright OpenSearch Contributors -* SPDX-License-Identifier: Apache-2.0 -* -* The OpenSearch Contributors require contributions made to -* this file be licensed under the Apache-2.0 license or a -* compatible open source license. -*/ - -import type NamespacesFolder from './components/NamespacesFolder' -import type SchemasFolder from './components/SchemasFolder' -import { type ValidationError } from 'types' -import { SchemaVisitor } from '../_utils/SpecificationVisitor' -import { is_ref, type MaybeRef, SpecificationContext } from '../_utils' -import { type OpenAPIV3 } from 'openapi-types' - -export default class InlineObjectSchemaValidator { - private readonly _namespaces_folder: NamespacesFolder - private readonly _schemas_folder: SchemasFolder - - constructor (namespaces_folder: NamespacesFolder, schemas_folder: SchemasFolder) { - this._namespaces_folder = namespaces_folder - this._schemas_folder = schemas_folder - } - - validate (): ValidationError[] { - const errors: ValidationError[] = [] - - const visitor = new SchemaVisitor((ctx, schema) => { - this.#validate_schema(ctx, schema, errors) - }); - - [ - ...this._namespaces_folder.files, - ...this._schemas_folder.files - ].forEach(f => { visitor.visit_specification(new SpecificationContext(f.file), f.spec()) }) - - return errors - } - - #validate_schema (ctx: SpecificationContext, schema: MaybeRef, errors: ValidationError[]): void { - if (is_ref(schema) || schema.type !== 'object' || schema.properties === undefined) { - return - } - - const ancestry = ctx.keys.reverse() - - if (ancestry[1] === 'properties' || - ancestry[0] === 'additionalProperties' || - ancestry[0] === 'items' || - (ancestry[0] === 'schema' && ancestry[2] === 'parameters' && ancestry[3] !== 'components')) { - errors.push(ctx.error('object schemas should be defined out-of-line via a $ref')) - } - } -} diff --git a/tools/src/linter/SchemaVisitingValidator.ts b/tools/src/linter/SchemaVisitingValidator.ts new file mode 100644 index 000000000..bf3beff82 --- /dev/null +++ b/tools/src/linter/SchemaVisitingValidator.ts @@ -0,0 +1,99 @@ +/* +* Copyright OpenSearch Contributors +* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ + +import type NamespacesFolder from './components/NamespacesFolder' +import type SchemasFolder from './components/SchemasFolder' +import { type ValidationError } from 'types' +import { SchemaVisitor } from '../_utils/SpecificationVisitor' +import { + is_ref, + type MaybeRef, + SCHEMA_INTEGER_FORMATS, + SCHEMA_NUMBER_FORMATS, + SCHEMA_NUMERIC_TYPES, + SpecificationContext +} from '../_utils' +import { type OpenAPIV3 } from 'openapi-types' + +export default class SchemaVisitingValidator { + private readonly _namespaces_folder: NamespacesFolder + private readonly _schemas_folder: SchemasFolder + + constructor (namespaces_folder: NamespacesFolder, schemas_folder: SchemasFolder) { + this._namespaces_folder = namespaces_folder + this._schemas_folder = schemas_folder + } + + validate (): ValidationError[] { + const errors: ValidationError[] = [] + + const validating_functions = [ + this.#validate_inline_object_schema.bind(this), + this.#validate_numeric_schema.bind(this) + ] + + const visitor = new SchemaVisitor((ctx, schema) => { + for (const f of validating_functions) { + f(ctx, schema, errors) + } + }); + + [ + ...this._namespaces_folder.files, + ...this._schemas_folder.files + ].forEach(f => { visitor.visit_specification(new SpecificationContext(f.file), f.spec()) }) + + return errors + } + + #validate_inline_object_schema (ctx: SpecificationContext, schema: MaybeRef, errors: ValidationError[]): void { + if (is_ref(schema) || schema.type !== 'object' || schema.properties === undefined) { + return + } + + const ancestry = ctx.keys.reverse() + + if (ancestry[1] === 'properties' || + ancestry[0] === 'additionalProperties' || + ancestry[0] === 'items' || + (ancestry[0] === 'schema' && ancestry[2] === 'parameters' && ancestry[3] !== 'components')) { + errors.push(ctx.error('object schemas should be defined out-of-line via a $ref')) + } + } + + #validate_numeric_schema (ctx: SpecificationContext, schema: MaybeRef, errors: ValidationError[]): void { + if (is_ref(schema) || schema.type === undefined || !SCHEMA_NUMERIC_TYPES.includes(schema.type)) { + return + } + + if (schema.type === 'number') { + if (schema.format === undefined || SCHEMA_NUMBER_FORMATS.includes(schema.format)) { + return + } + + if (SCHEMA_INTEGER_FORMATS.includes(schema.format)) { + errors.push(ctx.error(`schema of type 'number' with format '${schema.format}' should instead be of type 'integer'`)) + } else { + errors.push(ctx.error(`schema of type 'number' with format '${schema.format}' is invalid, expected one of: ${SCHEMA_NUMBER_FORMATS.join(', ')}`)) + } + } + + if (schema.type === 'integer') { + if (schema.format === undefined || SCHEMA_INTEGER_FORMATS.includes(schema.format)) { + return + } + + if (SCHEMA_NUMBER_FORMATS.includes(schema.format)) { + errors.push(ctx.error(`schema of type 'integer' with format '${schema.format}' should instead be of type 'number'`)) + } else { + errors.push(ctx.error(`schema of type 'integer' with format '${schema.format}' is invalid, expected one of: ${SCHEMA_INTEGER_FORMATS.join(', ')}`)) + } + } + } +} diff --git a/tools/src/linter/SchemasValidator.ts b/tools/src/linter/SchemasValidator.ts index c463e49d9..9e8418688 100644 --- a/tools/src/linter/SchemasValidator.ts +++ b/tools/src/linter/SchemasValidator.ts @@ -50,8 +50,8 @@ export default class SchemasValidator { const message = this.json_validator.validate_schema(_schema) if (message == null) return - const file = `schemas/${key.split(':')[0]}.yaml` - const location = `#/components/schemas/${key.split(':')[1]}` + const file = `schemas/${key.split('___')[0]}.yaml` + const location = `#/components/schemas/${key.split('___')[1]}` return this.error(file, location, message) }).filter((error) => error != null) as ValidationError[] } @@ -61,9 +61,9 @@ export default class SchemasValidator { const message = this.json_validator.validate_schema(param.schema) if (message == null) return - const namespace = this.group_to_namespace(key.split('::')[0]) + const namespace = this.group_to_namespace(key.split('___')[0]) const file = namespace === '_global' ? '_global_parameters.yaml' : `namespaces/${namespace}.yaml` - const location = namespace === '_global' ? param.name as string : `#/components/parameters/${key}` + const location = namespace === '_global' ? param.name as string : `#/components/parameters/${key}`.replace('___', '::') return this.error(file, location, message) }).filter((error) => error != null) as ValidationError[] } @@ -78,9 +78,9 @@ export default class SchemasValidator { validate_response_schemas (): ValidationError[] { return Object.entries(this.spec.responses as Record).flatMap(([key, response]) => { - const namespace = this.group_to_namespace(key.split('@')[0]) + const namespace = this.group_to_namespace(key.split('___')[0]) const file = `namespaces/${namespace}.yaml` - const location = `#/components/responses/${key}` + const location = `#/components/responses/${key}`.replace('___', '@') const content = response.content as Record return this.validate_content_schemas(file, location, content) }) diff --git a/tools/src/linter/SpecValidator.ts b/tools/src/linter/SpecValidator.ts index b954d3acc..462fbe93b 100644 --- a/tools/src/linter/SpecValidator.ts +++ b/tools/src/linter/SpecValidator.ts @@ -13,7 +13,7 @@ import { type ValidationError } from 'types' import SchemaRefsValidator from './SchemaRefsValidator' import SupersededOperationsFile from './components/SupersededOperationsFile' import InfoFile from './components/InfoFile' -import InlineObjectSchemaValidator from './InlineObjectSchemaValidator' +import SchemaVisitingValidator from './SchemaVisitingValidator' import SchemasValidator from './SchemasValidator' import { type Logger } from '../Logger' @@ -25,7 +25,7 @@ export default class SpecValidator { schemas_folder: SchemasFolder schemas_validator: SchemasValidator schema_refs_validator: SchemaRefsValidator - inline_object_schema_validator: InlineObjectSchemaValidator + inline_object_schema_validator: SchemaVisitingValidator constructor (root_folder: string, logger: Logger) { this.logger = logger @@ -35,7 +35,7 @@ export default class SpecValidator { this.schemas_folder = new SchemasFolder(`${root_folder}/schemas`) this.schemas_validator = new SchemasValidator(root_folder, logger) this.schema_refs_validator = new SchemaRefsValidator(this.namespaces_folder, this.schemas_folder) - this.inline_object_schema_validator = new InlineObjectSchemaValidator(this.namespaces_folder, this.schemas_folder) + this.inline_object_schema_validator = new SchemaVisitingValidator(this.namespaces_folder, this.schemas_folder) } validate (): ValidationError[] { diff --git a/tools/src/merger/OpenApiMerger.ts b/tools/src/merger/OpenApiMerger.ts index ff8cd7d06..cb1916e61 100644 --- a/tools/src/merger/OpenApiMerger.ts +++ b/tools/src/merger/OpenApiMerger.ts @@ -53,8 +53,10 @@ export default class OpenApiMerger { this.#merge_schemas() this.#merge_namespaces() this.#sort_spec_keys() + this.#add_defaults() this.#generate_global_params() this.#generate_superseded_ops() + this.#normalize_fields() this._merged = true } @@ -134,6 +136,43 @@ export default class OpenApiMerger { }) } + #normalize_key(key: string): string { + return key + .replaceAll('::', '___') + .replaceAll('@', '___') + .replaceAll(':', '___') + } + + #normalize_fields(obj: any = this._spec): void { + for (const key in obj) { + var item = obj[key] + + if (item?.$ref !== undefined) { + var renamed_ref = this.#normalize_key(item.$ref as string) + if (renamed_ref != item.$ref) { + item.$ref = renamed_ref + } + } + + var renamed_key = this.#normalize_key(key) + if (renamed_key != key) { + obj[renamed_key] = obj[key] + delete obj[key] + } + + if (_.isObject(item) || _.isArray(item)) { + this.#normalize_fields(item) + } + } + } + + #add_defaults(): void { + // Add default descriptions + Object.entries(this._spec.components.responses as Document).forEach(([_path, response_item]) => { + if (response_item.description === undefined) response_item.description = '' + }) + } + // Generate global parameters from _global_params.yaml file. #generate_global_params (): void { const gen = new GlobalParamsGenerator(this.root_folder) diff --git a/tools/src/prepare-for-vale/KeepDescriptions.ts b/tools/src/prepare-for-vale/KeepDescriptions.ts new file mode 100644 index 000000000..e680da819 --- /dev/null +++ b/tools/src/prepare-for-vale/KeepDescriptions.ts @@ -0,0 +1,65 @@ +/* +* Copyright OpenSearch Contributors +* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ + +import fs from 'fs' +import fg from 'fast-glob' +import { Logger } from '../Logger' + +/** + * Keeps only description: field values. + */ +export default class KeepDescriptions { + root_folder: string + logger: Logger + + constructor (root_folder: string, logger: Logger = new Logger()) { + this.logger = logger + this.root_folder = fs.realpathSync(root_folder) + } + + process(): void { + this.root_folder + const files = fg.globSync([`${this.root_folder}/**/*.{yaml,yml}`], { dot: true }) + files.forEach((path) => { + this.logger.log(path) + this.process_file(path) + }) + } + + process_file(filename: string): void { + const contents = fs.readFileSync(filename, 'utf-8') + var writer = fs.openSync(filename, 'w+') + + var inside_text = false + contents.split(/\r?\n/).forEach((line) => { + if (line.match(/^[\s]+((description|x-deprecation-message): \|)/)) { + inside_text = true + } else if (line.match(/^[\s]+((description|x-deprecation-message):)[\s]+/)) { + fs.writeSync(writer, this.prune_vars(this.prune(line, /(description|x-deprecation-message):/, ' '))) + } else if (inside_text && line.match(/^[\s]*[\w\\$]*:/)) { + inside_text = false + } else if (inside_text) { + fs.writeSync(writer, this.prune_vars(line)) + } + if (line.length > 0) { + fs.writeSync(writer, "\n") + } + }) + } + + prune_vars(line: string): string { + return this.prune(line, /([`])(?:(?=(\\?))\2.)*?\1/g, '*') + } + + prune(line: string, regex: RegExp, char: string): string { + return line.replace(regex, (match) => { + return Array(match.length + 1).join(char) + }) + } +} diff --git a/tools/src/prepare-for-vale/prepare-for-vale.ts b/tools/src/prepare-for-vale/prepare-for-vale.ts new file mode 100644 index 000000000..9c6c3ceb0 --- /dev/null +++ b/tools/src/prepare-for-vale/prepare-for-vale.ts @@ -0,0 +1,27 @@ +/* +* Copyright OpenSearch Contributors +* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ + +import { Command, Option } from '@commander-js/extra-typings' +import { Logger, LogLevel } from '../Logger' +import { resolve } from 'path' +import KeepDescriptions from './KeepDescriptions' + +const command = new Command() + .description('Convert YAML files to text.') + .addOption(new Option('-s, --source ', 'path to the root folder of the multi-file spec').default(resolve(__dirname, '../../../spec'))) + .addOption(new Option('--verbose', 'show merge details').default(false)) + .allowExcessArguments(false) + .parse() + +const opts = command.opts() +const logger = new Logger(opts.verbose ? LogLevel.info : LogLevel.warn) +const keep_descriptions = new KeepDescriptions(opts.source, logger) +logger.log(`Preparing ${opts.source} ...`) +keep_descriptions.process() +logger.log('Done.') diff --git a/tools/src/tester/ChapterReader.ts b/tools/src/tester/ChapterReader.ts index 26dd02753..ad34d715b 100644 --- a/tools/src/tester/ChapterReader.ts +++ b/tools/src/tester/ChapterReader.ts @@ -61,9 +61,8 @@ export default class ChapterReader { } else { response.status = e.response.status response.content_type = e.response.headers['content-type']?.split(';')[0] - const payload = this.#deserialize_payload(e.response.data, response.content_type) - if (payload !== undefined) response.payload = payload.error - response.message = payload.error?.reason ?? e.response.statusText + response.payload = this.#deserialize_payload(e.response.data, response.content_type) + response.message = response.payload.error?.reason ?? e.response.statusText this.logger.info(`<= ${response.status} (${response.content_type}) | ${response.payload !== undefined ? to_json(response.payload) : response.message}`) } }) diff --git a/tools/src/tester/TestRunner.ts b/tools/src/tester/TestRunner.ts index dc880f946..77fe2df6d 100644 --- a/tools/src/tester/TestRunner.ts +++ b/tools/src/tester/TestRunner.ts @@ -19,6 +19,7 @@ import type StoryValidator from "./StoryValidator"; import { OpenSearchHttpClient } from 'OpenSearchHttpClient' import * as ansi from './Ansi' import _ from 'lodash' +import { Logger } from 'Logger' export default class TestRunner { private readonly _http_client: OpenSearchHttpClient @@ -26,12 +27,14 @@ export default class TestRunner { private readonly _story_evaluator: StoryEvaluator private readonly _result_logger: ResultLogger private readonly _story_files: Record = {} + private readonly _logger: Logger - constructor (http_client: OpenSearchHttpClient, story_validator: StoryValidator, story_evaluator: StoryEvaluator, result_logger: ResultLogger) { + constructor (http_client: OpenSearchHttpClient, story_validator: StoryValidator, story_evaluator: StoryEvaluator, result_logger: ResultLogger, logger: Logger) { this._http_client = http_client this._story_validator = story_validator this._story_evaluator = story_evaluator this._result_logger = result_logger + this._logger = logger } async run (story_path: string, version?: string, distribution?: string, dry_run: boolean = false): Promise<{ results: StoryEvaluations, failed: boolean }> { @@ -52,6 +55,7 @@ export default class TestRunner { } for (const story_file of story_files) { + this._logger.info(`Evaluating ${story_file.display_path} ...`) const evaluation = this._story_validator.validate(story_file) ?? await this._story_evaluator.evaluate(story_file, version, distribution, dry_run) results.evaluations.push(evaluation) this._result_logger.log(evaluation) @@ -70,7 +74,7 @@ export default class TestRunner { #collect_story_files (folder: string, file: string, prefix: string): StoryFile[] { const path = file === '' ? folder : `${folder}/${file}` const next_prefix = prefix === '' ? file : `${prefix}/${file}` - if (file.startsWith('.') || file == 'docker-compose.yml') { + if (file.startsWith('.') || file == 'docker-compose.yml' || file == 'Dockerfile' || file.endsWith('.py')) { return [] } else if (fs.statSync(path).isFile()) { const story: Story = read_yaml(path) diff --git a/tools/src/tester/test.ts b/tools/src/tester/test.ts index e781e343c..77351fe75 100644 --- a/tools/src/tester/test.ts +++ b/tools/src/tester/test.ts @@ -75,7 +75,7 @@ const supplemental_chapter_evaluator = new SupplementalChapterEvaluator(chapter_ const story_validator = new StoryValidator() const story_evaluator = new StoryEvaluator(chapter_evaluator, supplemental_chapter_evaluator) const result_logger = new ConsoleResultLogger(opts.tabWidth, opts.verbose) -const runner = new TestRunner(http_client, story_validator, story_evaluator, result_logger) +const runner = new TestRunner(http_client, story_validator, story_evaluator, result_logger, logger) runner.run(opts.testsPath, spec.api_version(), opts.opensearchDistribution, opts.dryRun) .then( diff --git a/tools/src/validate-spec-py/Pipfile b/tools/src/validate-spec-py/Pipfile new file mode 100644 index 000000000..fa5bb05f6 --- /dev/null +++ b/tools/src/validate-spec-py/Pipfile @@ -0,0 +1,12 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +openapi_spec_validator = "*" + +[dev-packages] + +[requires] +python_version = "3" \ No newline at end of file diff --git a/tools/src/validate-spec-py/Pipfile.lock b/tools/src/validate-spec-py/Pipfile.lock new file mode 100644 index 000000000..cbb761748 --- /dev/null +++ b/tools/src/validate-spec-py/Pipfile.lock @@ -0,0 +1,455 @@ +{ + "_meta": { + "hash": { + "sha256": "8b96bf24637f13e9b0dd9a291f35f43962b4918dd76e52d5e7459c5ac620cdc4" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "attrs": { + "hashes": [ + "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", + "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2" + ], + "markers": "python_version >= '3.7'", + "version": "==24.2.0" + }, + "certifi": { + "hashes": [ + "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", + "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9" + ], + "markers": "python_version >= '3.6'", + "version": "==2024.8.30" + }, + "charset-normalizer": { + "hashes": [ + "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621", + "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", + "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", + "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912", + "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", + "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b", + "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d", + "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d", + "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95", + "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e", + "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", + "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", + "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab", + "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be", + "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", + "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907", + "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0", + "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2", + "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62", + "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62", + "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", + "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", + "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", + "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca", + "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455", + "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858", + "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", + "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", + "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", + "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", + "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", + "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea", + "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6", + "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", + "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749", + "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", + "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd", + "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99", + "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242", + "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee", + "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", + "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", + "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51", + "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", + "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8", + "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", + "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613", + "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742", + "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe", + "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3", + "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", + "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", + "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7", + "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", + "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", + "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", + "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417", + "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", + "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", + "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca", + "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa", + "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", + "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149", + "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41", + "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574", + "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0", + "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f", + "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", + "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654", + "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3", + "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19", + "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", + "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578", + "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", + "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", + "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51", + "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", + "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", + "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a", + "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", + "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade", + "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", + "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc", + "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6", + "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", + "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", + "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6", + "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2", + "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12", + "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf", + "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", + "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7", + "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", + "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", + "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b", + "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", + "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", + "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4", + "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", + "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", + "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a", + "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748", + "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b", + "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", + "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.4.0" + }, + "idna": { + "hashes": [ + "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" + ], + "markers": "python_version >= '3.6'", + "version": "==3.10" + }, + "jsonschema": { + "hashes": [ + "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", + "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566" + ], + "markers": "python_version >= '3.8'", + "version": "==4.23.0" + }, + "jsonschema-path": { + "hashes": [ + "sha256:203aff257f8038cd3c67be614fe6b2001043408cb1b4e36576bc4921e09d83c4", + "sha256:f02e5481a4288ec062f8e68c808569e427d905bedfecb7f2e4c69ef77957c382" + ], + "markers": "python_full_version >= '3.8.0' and python_full_version < '4.0.0'", + "version": "==0.3.3" + }, + "jsonschema-specifications": { + "hashes": [ + "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc", + "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c" + ], + "markers": "python_version >= '3.8'", + "version": "==2023.12.1" + }, + "lazy-object-proxy": { + "hashes": [ + "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56", + "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4", + "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8", + "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282", + "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757", + "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424", + "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b", + "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255", + "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70", + "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94", + "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074", + "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c", + "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee", + "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9", + "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9", + "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69", + "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f", + "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3", + "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9", + "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d", + "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977", + "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b", + "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43", + "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658", + "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a", + "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd", + "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83", + "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4", + "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696", + "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05", + "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3", + "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6", + "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895", + "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4", + "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba", + "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03", + "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c" + ], + "markers": "python_version >= '3.8'", + "version": "==1.10.0" + }, + "openapi-schema-validator": { + "hashes": [ + "sha256:11a95c9c9017912964e3e5f2545a5b11c3814880681fcacfb73b1759bb4f2804", + "sha256:c4887c1347c669eb7cded9090f4438b710845cd0f90d1fb9e1b3303fb37339f8" + ], + "markers": "python_full_version >= '3.8.0' and python_full_version < '4.0.0'", + "version": "==0.6.2" + }, + "openapi-spec-validator": { + "hashes": [ + "sha256:3c81825043f24ccbcd2f4b149b11e8231abce5ba84f37065e14ec947d8f4e959", + "sha256:8577b85a8268685da6f8aa30990b83b7960d4d1117e901d451b5d572605e5ec7" + ], + "markers": "python_full_version >= '3.8.0' and python_full_version < '4.0.0'", + "version": "==0.7.1" + }, + "pathable": { + "hashes": [ + "sha256:5c869d315be50776cc8a993f3af43e0c60dc01506b399643f919034ebf4cdcab", + "sha256:cdd7b1f9d7d5c8b8d3315dbf5a86b2596053ae845f056f57d97c0eefff84da14" + ], + "markers": "python_full_version >= '3.7.0' and python_full_version < '4.0.0'", + "version": "==0.4.3" + }, + "pyyaml": { + "hashes": [ + "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff", + "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", + "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", + "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", + "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", + "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", + "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", + "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", + "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", + "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", + "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a", + "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", + "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", + "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", + "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", + "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", + "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", + "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a", + "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", + "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", + "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", + "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", + "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", + "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", + "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", + "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", + "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", + "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", + "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", + "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706", + "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", + "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", + "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", + "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083", + "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", + "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", + "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", + "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", + "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", + "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", + "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", + "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", + "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", + "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", + "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5", + "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d", + "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", + "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", + "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", + "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", + "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", + "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", + "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" + ], + "markers": "python_version >= '3.8'", + "version": "==6.0.2" + }, + "referencing": { + "hashes": [ + "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c", + "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de" + ], + "markers": "python_version >= '3.8'", + "version": "==0.35.1" + }, + "requests": { + "hashes": [ + "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" + ], + "markers": "python_version >= '3.8'", + "version": "==2.32.3" + }, + "rfc3339-validator": { + "hashes": [ + "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", + "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.1.4" + }, + "rpds-py": { + "hashes": [ + "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c", + "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585", + "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5", + "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6", + "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef", + "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2", + "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29", + "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318", + "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b", + "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399", + "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739", + "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee", + "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174", + "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a", + "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344", + "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2", + "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03", + "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5", + "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22", + "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e", + "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96", + "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91", + "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752", + "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075", + "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253", + "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee", + "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad", + "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5", + "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce", + "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7", + "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b", + "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8", + "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57", + "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3", + "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec", + "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209", + "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921", + "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045", + "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074", + "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580", + "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7", + "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5", + "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3", + "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0", + "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24", + "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139", + "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db", + "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc", + "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789", + "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f", + "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2", + "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c", + "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232", + "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6", + "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c", + "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29", + "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489", + "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94", + "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751", + "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2", + "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda", + "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9", + "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51", + "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c", + "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8", + "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989", + "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511", + "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1", + "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2", + "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150", + "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c", + "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965", + "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f", + "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58", + "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b", + "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f", + "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d", + "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821", + "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de", + "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121", + "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855", + "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272", + "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60", + "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02", + "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1", + "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140", + "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879", + "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940", + "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364", + "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4", + "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e", + "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420", + "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5", + "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24", + "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c", + "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf", + "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f", + "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e", + "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab", + "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08", + "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92", + "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a", + "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8" + ], + "markers": "python_version >= '3.8'", + "version": "==0.20.0" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "version": "==1.16.0" + }, + "urllib3": { + "hashes": [ + "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", + "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9" + ], + "markers": "python_version >= '3.8'", + "version": "==2.2.3" + } + }, + "develop": {} +} diff --git a/tools/src/validate-spec-py/validate.py b/tools/src/validate-spec-py/validate.py new file mode 100644 index 000000000..9739c51f6 --- /dev/null +++ b/tools/src/validate-spec-py/validate.py @@ -0,0 +1,20 @@ +import sys + +from openapi_spec_validator import validate +from openapi_spec_validator.readers import read_from_filename +from openapi_spec_validator.validation.exceptions import OpenAPIValidationError + +if len(sys.argv) < 2: + print("syntax: validate.py [spec]") + exit(1) + +spec = sys.argv[1] +print(f'Validating {spec} ...') + +spec_dict, base_uri = read_from_filename(spec) + +try: + validate(spec_dict) +except OpenAPIValidationError as err: + print(err) + exit(2) diff --git a/tools/src/validate-spec-ruby/Gemfile b/tools/src/validate-spec-ruby/Gemfile new file mode 100644 index 000000000..a7a8f3b53 --- /dev/null +++ b/tools/src/validate-spec-ruby/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' + +gem 'json_schemer' diff --git a/tools/src/validate-spec-ruby/Gemfile.lock b/tools/src/validate-spec-ruby/Gemfile.lock new file mode 100644 index 000000000..f6926e79f --- /dev/null +++ b/tools/src/validate-spec-ruby/Gemfile.lock @@ -0,0 +1,22 @@ +GEM + remote: https://rubygems.org/ + specs: + bigdecimal (3.1.8) + hana (1.3.7) + json_schemer (2.3.0) + bigdecimal + hana (~> 1.3) + regexp_parser (~> 2.0) + simpleidn (~> 0.2) + regexp_parser (2.9.2) + simpleidn (0.2.3) + +PLATFORMS + arm64-darwin-21 + ruby + +DEPENDENCIES + json_schemer + +BUNDLED WITH + 2.5.2 diff --git a/tools/src/validate-spec-ruby/validate.rb b/tools/src/validate-spec-ruby/validate.rb new file mode 100644 index 000000000..261cfd360 --- /dev/null +++ b/tools/src/validate-spec-ruby/validate.rb @@ -0,0 +1,20 @@ +require 'json_schemer' +require 'yaml' + +raise 'syntax: validate [spec]' unless ARGV.length >= 1 + +spec = ARGV[0] +puts "Validating #{spec} ..." + +schemer = JSONSchemer.openapi(YAML.load_file(spec)) +schemer.validate + +total_errors = 0 +schemer.validate.each do |error| + puts "#{error['data']}: #{error['error']}" if total_errors < 10 + total_errors += 1 +end + +puts total_errors > 0 ? " .... #{total_errors} total." : "Done." + +exit total_errors == 0 ? 0 : 1 diff --git a/tools/tests/linter/InlineObjectSchemaValidator.test.ts b/tools/tests/linter/InlineObjectSchemaValidator.test.ts index 8efeea258..7e3b2514c 100644 --- a/tools/tests/linter/InlineObjectSchemaValidator.test.ts +++ b/tools/tests/linter/InlineObjectSchemaValidator.test.ts @@ -9,13 +9,13 @@ import SchemasFolder from 'linter/components/SchemasFolder' import NamespacesFolder from 'linter/components/NamespacesFolder' -import InlineObjectSchemaValidator from 'linter/InlineObjectSchemaValidator' +import SchemaVisitingValidator from 'linter/SchemaVisitingValidator' test('validate()', () => { const root_folder = './tools/tests/linter/fixtures/inline_object_schema_validator' const namespaces_folder = new NamespacesFolder(`${root_folder}/namespaces`) const schemas_folder = new SchemasFolder(`${root_folder}/schemas`) - const validator = new InlineObjectSchemaValidator(namespaces_folder, schemas_folder) + const validator = new SchemaVisitingValidator(namespaces_folder, schemas_folder) expect(validator.validate()).toEqual([ { file: 'namespaces/ops.yaml', diff --git a/tools/tests/merger/fixtures/extractor/opensearch/expected_1.3.yaml b/tools/tests/merger/fixtures/extractor/opensearch/expected_1.3.yaml index 24d08aa4d..cd228a3c3 100644 --- a/tools/tests/merger/fixtures/extractor/opensearch/expected_1.3.yaml +++ b/tools/tests/merger/fixtures/extractor/opensearch/expected_1.3.yaml @@ -12,33 +12,33 @@ paths: x-version-added: '1.0' description: Returns information about nodes in the cluster. parameters: - - $ref: '#/components/parameters/nodes.info::path.id' + - $ref: '#/components/parameters/nodes.info___path.id' responses: '200': - $ref: '#/components/responses/nodes.info@200' + $ref: '#/components/responses/nodes.info___200' /index: get: operationId: get.0 responses: '200': - $ref: '#/components/responses/info@200' + $ref: '#/components/responses/info___200' '201': - $ref: '#/components/responses/info@201' + $ref: '#/components/responses/info___201' '404': - $ref: '#/components/responses/info@404' + $ref: '#/components/responses/info___404' '500': - $ref: '#/components/responses/info@500' + $ref: '#/components/responses/info___500' '503': - $ref: '#/components/responses/info@503' + $ref: '#/components/responses/info___503' removed-2.0: - $ref: '#/components/responses/info@removed-2.0' + $ref: '#/components/responses/info___removed-2.0' x-version-removed: '2.0' removed-2.0-refs: - $ref: '#/components/responses/info@removed-2.0-refs' + $ref: '#/components/responses/info___removed-2.0-refs' added-1.3-removed-2.0: - $ref: '#/components/responses/info@added-1.3-removed-2.0' + $ref: '#/components/responses/info___added-1.3-removed-2.0' distributed-excluded-amazon-serverless: - $ref: '#/components/responses/info@distributed-all' + $ref: '#/components/responses/info___distributed-all' x-distributions-excluded: - amazon-serverless parameters: [] @@ -47,11 +47,11 @@ paths: operationId: nodes.0 responses: '200': - $ref: '#/components/responses/nodes.info@200' + $ref: '#/components/responses/nodes.info___200' parameters: [] components: parameters: - nodes.info::path.id: + nodes.info___path.id: in: path name: id description: Node ID. @@ -60,19 +60,20 @@ components: type: string requestBodies: {} responses: - info@200: + info___200: content: application/json: schema: type: object properties: _type: - $ref: '#/components/schemas/_common:Type' + $ref: '#/components/schemas/_common___Type' tagline: type: string required: - tagline - info@201: + description: '' + info___201: content: application/json: schema: @@ -83,7 +84,8 @@ components: required: - tagline unevaluatedProperties: true - info@404: + description: '' + info___404: content: application/json: schema: @@ -95,7 +97,8 @@ components: - tagline unevaluatedProperties: type: object - info@500: + description: '' + info___500: content: application/json: schema: @@ -103,34 +106,36 @@ components: properties: tagline: type: string - info@503: + description: '' + info___503: content: application/json: schema: type: object - info@added-1.3-removed-2.0: - description: Added in 1.3, removed in 2.0 via attribute in response body. + description: '' + info___added-1.3-removed-2.0: + description: Added in 1.3, removed in 2.0 using an attribute in response body. x-version-added: '1.3' x-version-removed: '2.0' - info@distributed-all: + info___distributed-all: description: Distributed in opensearch.org, AOS and AOSS. - info@removed-2.0: - description: Removed in 2.0 via attribute next to ref. - info@removed-2.0-refs: + info___removed-2.0: + description: Removed in 2.0 using an attribute next to ref. + info___removed-2.0-refs: description: One of the ref values removed in 2.0. schema: oneOf: - - $ref: '#/components/schemas/_common:Type' - - $ref: '#/components/schemas/_common:OldId' - nodes.info@200: + - $ref: '#/components/schemas/_common___Type' + - $ref: '#/components/schemas/_common___OldId' + nodes.info___200: description: All nodes. content: application/json: schema: type: object schemas: - _common:OldId: + _common___OldId: type: string - _common:Type: + _common___Type: type: string x-version-removed: '2.0' diff --git a/tools/tests/merger/fixtures/extractor/opensearch/expected_2.0.yaml b/tools/tests/merger/fixtures/extractor/opensearch/expected_2.0.yaml index a824f4787..85878c3ae 100644 --- a/tools/tests/merger/fixtures/extractor/opensearch/expected_2.0.yaml +++ b/tools/tests/merger/fixtures/extractor/opensearch/expected_2.0.yaml @@ -12,25 +12,25 @@ paths: x-version-added: '1.0' description: Returns information about nodes in the cluster. parameters: - - $ref: '#/components/parameters/nodes.info::path.id' + - $ref: '#/components/parameters/nodes.info___path.id' responses: '200': - $ref: '#/components/responses/nodes.info@200' + $ref: '#/components/responses/nodes.info___200' post: operationId: nodes.info.1 x-operation-group: nodes.info x-version-added: '2.0' description: Returns information about nodes in the cluster. parameters: - - $ref: '#/components/parameters/nodes.info::path.id' - - $ref: '#/components/parameters/nodes.info::query.flag' + - $ref: '#/components/parameters/nodes.info___path.id' + - $ref: '#/components/parameters/nodes.info___query.flag' requestBody: $ref: '#/components/requestBodies/nodes.info' responses: '200': - $ref: '#/components/responses/nodes.info@200' + $ref: '#/components/responses/nodes.info___200' '201': - $ref: '#/components/responses/nodes.info@201' + $ref: '#/components/responses/nodes.info___201' /cluster_manager: get: operationId: cluster_manager.0 @@ -45,22 +45,22 @@ paths: operationId: get.0 responses: '200': - $ref: '#/components/responses/info@200' + $ref: '#/components/responses/info___200' '201': - $ref: '#/components/responses/info@201' + $ref: '#/components/responses/info___201' '404': - $ref: '#/components/responses/info@404' + $ref: '#/components/responses/info___404' '500': - $ref: '#/components/responses/info@500' + $ref: '#/components/responses/info___500' '503': - $ref: '#/components/responses/info@503' + $ref: '#/components/responses/info___503' added-2.0: - $ref: '#/components/responses/info@added-2.0' + $ref: '#/components/responses/info___added-2.0' x-version-added: '2.0' removed-2.0-refs: - $ref: '#/components/responses/info@removed-2.0-refs' + $ref: '#/components/responses/info___removed-2.0-refs' distributed-excluded-amazon-serverless: - $ref: '#/components/responses/info@distributed-all' + $ref: '#/components/responses/info___distributed-all' x-distributions-excluded: - amazon-serverless parameters: [] @@ -69,18 +69,18 @@ paths: operationId: nodes.0 responses: '200': - $ref: '#/components/responses/nodes.info@200' + $ref: '#/components/responses/nodes.info___200' parameters: [] components: parameters: - nodes.info::path.id: + nodes.info___path.id: in: path name: id description: Node ID. required: true schema: type: string - nodes.info::query.flag: + nodes.info___query.flag: in: query name: flag description: Flag. @@ -98,11 +98,11 @@ components: _all: type: boolean ids: - $ref: '#/components/schemas/_common:Ids' + $ref: '#/components/schemas/_common___Ids' x-version-added: '2.0' description: Nodes options. responses: - info@200: + info___200: content: application/json: schema: @@ -112,7 +112,8 @@ components: type: string required: - tagline - info@201: + description: '' + info___201: content: application/json: schema: @@ -123,7 +124,8 @@ components: required: - tagline unevaluatedProperties: true - info@404: + description: '' + info___404: content: application/json: schema: @@ -135,7 +137,8 @@ components: - tagline unevaluatedProperties: type: object - info@500: + description: '' + info___500: content: application/json: schema: @@ -143,38 +146,40 @@ components: properties: tagline: type: string - info@503: + description: '' + info___503: content: application/json: schema: type: object - info@added-2.0: - description: Added in 2.0 via attribute next to ref. - info@distributed-all: + description: '' + info___added-2.0: + description: Added in 2.0 using an attribute next to ref. + info___distributed-all: description: Distributed in opensearch.org, AOS and AOSS. - info@removed-2.0-refs: + info___removed-2.0-refs: description: One of the ref values removed in 2.0. schema: oneOf: - - $ref: '#/components/schemas/_common:OldId' - nodes.info@200: + - $ref: '#/components/schemas/_common___OldId' + nodes.info___200: description: All nodes. content: application/json: schema: type: object - nodes.info@201: + nodes.info___201: description: All nodes. content: application/json: schema: type: object schemas: - _common:Ids: + _common___Ids: oneOf: - - $ref: '#/components/schemas/_common:OldId' + - $ref: '#/components/schemas/_common___OldId' - type: array items: - $ref: '#/components/schemas/_common:Ids' - _common:OldId: + $ref: '#/components/schemas/_common___Ids' + _common___OldId: type: string diff --git a/tools/tests/merger/fixtures/merger/animals/expected.yaml b/tools/tests/merger/fixtures/merger/animals/expected.yaml index 789d1f203..a28b20af2 100644 --- a/tools/tests/merger/fixtures/merger/animals/expected.yaml +++ b/tools/tests/merger/fixtures/merger/animals/expected.yaml @@ -7,54 +7,54 @@ paths: /{index}: post: parameters: - - $ref: '#/components/parameters/indices.create::path.index' - - $ref: '#/components/parameters/indices.create::query.pretty' - - $ref: '#/components/parameters/indices.create::query.wait_for_active_shards' - - $ref: '#/components/parameters/_global::query.human' + - $ref: '#/components/parameters/indices.create___path.index' + - $ref: '#/components/parameters/indices.create___query.pretty' + - $ref: '#/components/parameters/indices.create___query.wait_for_active_shards' + - $ref: '#/components/parameters/_global___query.human' requestBody: $ref: '#/components/requestBodies/indices.create' responses: '200': - $ref: '#/components/responses/indices.create@200' + $ref: '#/components/responses/indices.create___200' '201': - $ref: '#/components/responses/indices.create@201' + $ref: '#/components/responses/indices.create___201' x-version-added: '2.0' /adopt/{animal}/dockets/{docket}: get: operationId: adopt.0 parameters: - - $ref: '#/components/parameters/adopt::path.animal' - - $ref: '#/components/parameters/adopt::path.docket' - - $ref: '#/components/parameters/_global::query.human' + - $ref: '#/components/parameters/adopt___path.animal' + - $ref: '#/components/parameters/adopt___path.docket' + - $ref: '#/components/parameters/_global___query.human' responses: '200': - $ref: '#/components/responses/adopt@200' + $ref: '#/components/responses/adopt___200' post: operationId: adopt.1 parameters: - - $ref: '#/components/parameters/adopt::path.animal' - - $ref: '#/components/parameters/adopt::path.docket' - - $ref: '#/components/parameters/_global::query.human' + - $ref: '#/components/parameters/adopt___path.animal' + - $ref: '#/components/parameters/adopt___path.docket' + - $ref: '#/components/parameters/_global___query.human' requestBody: $ref: '#/components/requestBodies/adopt' responses: '200': - $ref: '#/components/responses/adopt@200' + $ref: '#/components/responses/adopt___200' /replaced/adopting/{animal}/something/{docket}: get: operationId: adopt.0_superseded parameters: - - $ref: '#/components/parameters/adopt::path.animal' - - $ref: '#/components/parameters/adopt::path.docket' - - $ref: '#/components/parameters/_global::query.human' + - $ref: '#/components/parameters/adopt___path.animal' + - $ref: '#/components/parameters/adopt___path.docket' + - $ref: '#/components/parameters/_global___query.human' responses: '200': - $ref: '#/components/responses/adopt@200' + $ref: '#/components/responses/adopt___200' deprecated: true x-ignorable: true components: parameters: - _global::query.human: + _global___query.human: name: human in: query description: Whether to return human readable values for statistics. @@ -62,27 +62,27 @@ components: type: boolean default: true x-global: true - adopt::path.animal: + adopt___path.animal: name: animal in: path schema: - $ref: '#/components/schemas/animals:Animal' - adopt::path.docket: + $ref: '#/components/schemas/animals___Animal' + adopt___path.docket: name: docket in: path schema: type: number - indices.create::path.index: + indices.create___path.index: name: index in: path schema: type: string - indices.create::query.pretty: + indices.create___query.pretty: name: pretty in: query schema: type: boolean - indices.create::query.wait_for_active_shards: + indices.create___query.wait_for_active_shards: name: pretty in: query x-version-added: '2.0' @@ -94,35 +94,37 @@ components: name: type: string responses: - adopt@200: + adopt___200: application/json: schema: type: object - indices.create@200: + description: '' + indices.create___200: application/json: schema: type: object - indices.create@201: + description: '' + indices.create___201: description: Added in 2.0. application/json: schema: type: object schemas: - actions:Bark: + actions___Bark: type: string - actions:Meow: + actions___Meow: type: string - animals:Animal: + animals___Animal: oneOf: - - $ref: '#/components/schemas/animals:Dog' - - $ref: '#/components/schemas/animals:Cat' - animals:Cat: + - $ref: '#/components/schemas/animals___Dog' + - $ref: '#/components/schemas/animals___Cat' + animals___Cat: type: object properties: meow: - $ref: '#/components/schemas/actions:Meow' - animals:Dog: + $ref: '#/components/schemas/actions___Meow' + animals___Dog: type: object properties: bark: - $ref: '#/components/schemas/actions:Bark' + $ref: '#/components/schemas/actions___Bark' diff --git a/tools/tests/merger/fixtures/specs/opensearch/namespaces/index.yaml b/tools/tests/merger/fixtures/specs/opensearch/namespaces/index.yaml index f03058350..80a2e0c6d 100644 --- a/tools/tests/merger/fixtures/specs/opensearch/namespaces/index.yaml +++ b/tools/tests/merger/fixtures/specs/opensearch/namespaces/index.yaml @@ -82,9 +82,9 @@ components: unevaluatedProperties: type: object info@added-2.0: - description: Added in 2.0 via attribute next to ref. + description: Added in 2.0 using an attribute next to ref. info@removed-2.0: - description: Removed in 2.0 via attribute next to ref. + description: Removed in 2.0 using an attribute next to ref. info@removed-2.0-refs: description: One of the ref values removed in 2.0. schema: @@ -92,11 +92,11 @@ components: - $ref: '../schemas/_common.yaml#/components/schemas/Type' - $ref: '../schemas/_common.yaml#/components/schemas/OldId' info@added-1.3-removed-2.0: - description: Added in 1.3, removed in 2.0 via attribute in response body. + description: Added in 1.3, removed in 2.0 using an attribute in response body. x-version-added: '1.3' x-version-removed: '2.0' info@added-2.1: - description: Added in 2.1 via attribute in response body. + description: Added in 2.1 using an attribute in response body. x-version-added: '2.1' info@distributed-amazon-managed: description: Distributed only in AOS. diff --git a/tools/tests/merger/fixtures/specs/opensearch/schemas/_common.yaml b/tools/tests/merger/fixtures/specs/opensearch/schemas/_common.yaml index c3a4e41f3..55109176f 100644 --- a/tools/tests/merger/fixtures/specs/opensearch/schemas/_common.yaml +++ b/tools/tests/merger/fixtures/specs/opensearch/schemas/_common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _common category - description: Schemas of _common category + title: Schemas of `_common` Category + description: Schemas of `_common` category. version: 1.0.0 components: schemas: diff --git a/tools/tests/prepare-for-vale/KeepDescriptions.test.ts b/tools/tests/prepare-for-vale/KeepDescriptions.test.ts new file mode 100644 index 000000000..174de240e --- /dev/null +++ b/tools/tests/prepare-for-vale/KeepDescriptions.test.ts @@ -0,0 +1,45 @@ +/* +* Copyright OpenSearch Contributors +* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ + +import KeepDescriptions from 'prepare-for-vale/KeepDescriptions' +import fs from 'fs' +import fg from 'fast-glob' +import tmp from 'tmp' +import path from 'path' + +describe('KeepDescriptions', () => { + var temp: tmp.DirResult + var fixture_path: string = './tools/tests/prepare-for-vale/fixtures' + var fixtures = fg.globSync(`${fixture_path}/**/*.{yaml,yml}`, { dot: true }) + + describe('defaults', () => { + beforeAll(() => { + temp = tmp.dirSync() + fs.cpSync(fixture_path, temp.name, { recursive: true }) + new KeepDescriptions(temp.name).process() + }) + + afterAll(() => { + temp.removeCallback() + }) + + describe('converts files to text in-place', () => { + fixtures.forEach((filename) => { + test(filename, () => { + const processed_yaml = filename.replace(fixture_path, temp.name) + const basename = path.basename(processed_yaml, path.extname(processed_yaml)) + const filename_txt = path.join(path.dirname(processed_yaml), basename + '.txt') + expect(fs.readFileSync(processed_yaml, 'utf8')).toEqual(fs.readFileSync(filename_txt, 'utf8')) + fs.rmSync(processed_yaml) + fs.rmSync(filename_txt) + }) + }) + }) + }) +}) \ No newline at end of file diff --git a/tools/tests/prepare-for-vale/fixtures/.docker-compose.txt b/tools/tests/prepare-for-vale/fixtures/.docker-compose.txt new file mode 100644 index 000000000..1dac6def4 --- /dev/null +++ b/tools/tests/prepare-for-vale/fixtures/.docker-compose.txt @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/tools/tests/prepare-for-vale/fixtures/.docker-compose.yml b/tools/tests/prepare-for-vale/fixtures/.docker-compose.yml new file mode 100644 index 000000000..04c267ec5 --- /dev/null +++ b/tools/tests/prepare-for-vale/fixtures/.docker-compose.yml @@ -0,0 +1,12 @@ +version: '3' + +services: + opensearch-cluster: + image: ${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject}/opensearch:${OPENSEARCH_VERSION:-latest}${OPENSEARCH_DOCKER_REF} + ports: + - 9200:9200 + - 9600:9600 + environment: + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - discovery.type=single-node diff --git a/tools/tests/prepare-for-vale/fixtures/docker-compose.txt b/tools/tests/prepare-for-vale/fixtures/docker-compose.txt new file mode 100644 index 000000000..1dac6def4 --- /dev/null +++ b/tools/tests/prepare-for-vale/fixtures/docker-compose.txt @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/tools/tests/prepare-for-vale/fixtures/docker-compose.yaml b/tools/tests/prepare-for-vale/fixtures/docker-compose.yaml new file mode 100644 index 000000000..04c267ec5 --- /dev/null +++ b/tools/tests/prepare-for-vale/fixtures/docker-compose.yaml @@ -0,0 +1,12 @@ +version: '3' + +services: + opensearch-cluster: + image: ${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject}/opensearch:${OPENSEARCH_VERSION:-latest}${OPENSEARCH_DOCKER_REF} + ports: + - 9200:9200 + - 9600:9600 + environment: + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + - discovery.type=single-node diff --git a/tools/tests/prepare-for-vale/fixtures/spec.txt b/tools/tests/prepare-for-vale/fixtures/spec.txt new file mode 100644 index 000000000..f9ada2c25 --- /dev/null +++ b/tools/tests/prepare-for-vale/fixtures/spec.txt @@ -0,0 +1,47 @@ + + + + A description that is preserved. + + + + + + + + For a successful response, this value is always true. On failure, an exception is returned instead. + + + + The item level REST category class codes during indexing. + + + + Line one + Line two + + + + Line one + Line with a description: that describes itself. + + + + Line one + Line with backticks: that includes *******. + Line with two backticks: that includes ******* and *******. + + + + Line one. + + + + Deprecation message. + Line one. + + + + Line one. + Line two. + Line one. diff --git a/tools/tests/prepare-for-vale/fixtures/spec.yaml b/tools/tests/prepare-for-vale/fixtures/spec.yaml new file mode 100644 index 000000000..6ca62c5de --- /dev/null +++ b/tools/tests/prepare-for-vale/fixtures/spec.yaml @@ -0,0 +1,47 @@ +openapi: 3.1.0 +info: + title: A title that is preserved. + description: A description that is preserved. + version: 1.0.0 +components: + schemas: + ObjectWithDescription: + type: object + properties: + acknowledged: + description: For a successful response, this value is always true. On failure, an exception is returned instead. + type: boolean + ObjectWithMultilineDescriptionOneLine: + description: |- + The item level REST category class codes during indexing. + type: object + ObjectWithMultilineDescriptionTwoLines: + description: |- + Line one + Line two + ObjectWithAColonInDescription: + type: object + description: |- + Line one + Line with a description: that describes itself. + ObjectWithCode: + type: object + description: |- + Line one + Line with backticks: that includes `x.y.z`. + Line with two backticks: that includes `x.y.z` and `z.y.x`. + ObjectWithDescriptionAndRef: + type: object + description: |- + Line one. + $ref: '_common.yaml#/components/schemas/HumanReadableByteCount' + ObjectWithDeprecationMessageOneLine: + type: object + x-deprecation-message: Deprecation message. + description: Line one. + ObjectWithDeprecationMessageTwoLines: + type: object + x-deprecation-message: |- + Line one. + Line two. + description: Line one. diff --git a/tools/tests/prepare-for-vale/prepare-for-vale.test.ts b/tools/tests/prepare-for-vale/prepare-for-vale.test.ts new file mode 100644 index 000000000..c46fc7340 --- /dev/null +++ b/tools/tests/prepare-for-vale/prepare-for-vale.test.ts @@ -0,0 +1,22 @@ +/* +* Copyright OpenSearch Contributors +* SPDX-License-Identifier: Apache-2.0 +* +* The OpenSearch Contributors require contributions made to +* this file be licensed under the Apache-2.0 license or a +* compatible open source license. +*/ + +import { spawnSync } from 'child_process' + +const spec = (args: string[]): any => { + const start = spawnSync('ts-node', ['tools/src/prepare-for-vale/prepare-for-vale.ts'].concat(args)) + return { + stdout: start.stdout?.toString(), + stderr: start.stderr?.toString() + } +} + +test('--help', () => { + expect(spec(['--help']).stdout).toContain('Usage: prepare-for-vale [options]') +}) diff --git a/tools/tests/tester/ChapterReader.test.ts b/tools/tests/tester/ChapterReader.test.ts index 7e1776bb2..2b0c2eb42 100644 --- a/tools/tests/tester/ChapterReader.test.ts +++ b/tools/tests/tester/ChapterReader.test.ts @@ -219,6 +219,64 @@ describe('ChapterReader', () => { }] ]) }) + + it('sets payload to entire response when payload.error is missing', async () => { + const mock_payload = { '_data': '1', 'result': 'updated' }; + const mock_error = { + response: { + status: 404, + headers: { + 'content-type': 'application/json' + }, + data: JSON.stringify(mock_payload), + statusText: 'Not Found' + } + }; + + mocked_axios.request.mockRejectedValue(mock_error); + + const result = await reader.read({ + id: 'id', + path: 'path', + method: 'POST' + }, new StoryOutputs()); + + expect(result).toStrictEqual({ + status: 404, + content_type: 'application/json', + payload: mock_payload, + message: 'Not Found' + }); + }); + + it('sets payload to entire response when payload.error is present', async () => { + const mock_payload = { '_data': '1', 'result': 'updated', 'error': 'error' }; + const mock_error = { + response: { + status: 404, + headers: { + 'content-type': 'application/json' + }, + data: JSON.stringify(mock_payload), + statusText: 'Not Found' + } + }; + + mocked_axios.request.mockRejectedValue(mock_error); + + const result = await reader.read({ + id: 'id', + path: 'path', + method: 'POST' + }, new StoryOutputs()); + + expect(result).toStrictEqual({ + status: 404, + content_type: 'application/json', + payload: mock_payload, + message: 'Not Found' + }); + }); }) describe('deserialize_payload', () => { diff --git a/tools/tests/tester/MergedOpenApiSpec.test.ts b/tools/tests/tester/MergedOpenApiSpec.test.ts index 3857cae52..54d65b60e 100644 --- a/tools/tests/tester/MergedOpenApiSpec.test.ts +++ b/tools/tests/tester/MergedOpenApiSpec.test.ts @@ -40,27 +40,27 @@ describe('merged API spec', () => { const responses: any = spec.spec().components?.responses test('is added with required fields', () => { - const schema = responses['info@200'].content['application/json'].schema + const schema = responses.info___200.content['application/json'].schema expect(schema.unevaluatedProperties).toEqual({ not: true, errorMessage: 'property is not defined in the spec' }) }) test('is added when no required fields', () => { - const schema = responses['info@500'].content['application/json'].schema + const schema = responses.info___500.content['application/json'].schema expect(schema.unevaluatedProperties).toEqual({ not: true, errorMessage: 'property is not defined in the spec' }) }) test('is not added to empty object schema', () => { - const schema = responses['info@503'].content['application/json'].schema + const schema = responses.info___503.content['application/json'].schema expect(schema.unevaluatedProperties).toBeUndefined() }) test('is not added when true', () => { - const schema = responses['info@201'].content['application/json'].schema + const schema = responses.info___201.content['application/json'].schema expect(schema.unevaluatedProperties).toEqual(true) }) test('is not added when object', () => { - const schema = responses['info@404'].content['application/json'].schema + const schema = responses.info___404.content['application/json'].schema expect(schema.unevaluatedProperties).toEqual({ type: 'object' }) }) }) diff --git a/tools/tests/tester/fixtures/evals/passed/passed.yaml b/tools/tests/tester/fixtures/evals/passed/passed.yaml index da08a29fa..a87c944c9 100644 --- a/tools/tests/tester/fixtures/evals/passed/passed.yaml +++ b/tools/tests/tester/fixtures/evals/passed/passed.yaml @@ -202,7 +202,7 @@ chapters: - title: This GET /_cat/health should be skipped (> 2.999.0). overall: result: SKIPPED - message: Skipped because version 2.16.0 does not satisfy >= 2.999.0. + message: Skipped because version 2.17.0 does not satisfy >= 2.999.0. - title: This GET /_cat/health should run (>= 1.3, < 99.0). overall: result: PASSED diff --git a/tools/tests/tester/fixtures/evals/passed/value_type.yaml b/tools/tests/tester/fixtures/evals/passed/value_type.yaml index e2ad0269c..ec5a64be9 100644 --- a/tools/tests/tester/fixtures/evals/passed/value_type.yaml +++ b/tools/tests/tester/fixtures/evals/passed/value_type.yaml @@ -20,7 +20,7 @@ epilogues: result: PASSED title: DELETE /movies chapters: - - title: This chapter requires a boolean in the parameters. + - title: This chapter requires a Boolean in the parameters. overall: result: PASSED path: GET /_cat/health @@ -44,7 +44,7 @@ chapters: result: PASSED output_values: result: SKIPPED - - title: This chapter requires a boolean in the body. + - title: This chapter requires a Boolean in the body. overall: result: PASSED path: PUT /{index} diff --git a/tools/tests/tester/fixtures/evals/skipped/semver.yaml b/tools/tests/tester/fixtures/evals/skipped/semver.yaml index 30709742d..799717afe 100644 --- a/tools/tests/tester/fixtures/evals/skipped/semver.yaml +++ b/tools/tests/tester/fixtures/evals/skipped/semver.yaml @@ -3,5 +3,5 @@ full_path: tools/tests/tester/fixtures/stories/skipped/semver.yaml result: SKIPPED description: This story should be skipped because of version. -message: Skipped because version 2.16.0 does not satisfy >= 2.999.0. +message: Skipped because version 2.17.0 does not satisfy >= 2.999.0. diff --git a/tools/tests/tester/fixtures/specs/complete/namespaces/index.yaml b/tools/tests/tester/fixtures/specs/complete/namespaces/index.yaml index 0c0a09234..111c6d772 100644 --- a/tools/tests/tester/fixtures/specs/complete/namespaces/index.yaml +++ b/tools/tests/tester/fixtures/specs/complete/namespaces/index.yaml @@ -80,15 +80,15 @@ components: unevaluatedProperties: type: object info@added-2.0: - description: Added in 2.0 via attribute next to ref. + description: Added in 2.0 using an attribute next to ref. info@removed-2.0: - description: Removed in 2.0 via attribute next to ref. + description: Removed in 2.0 using an attribute next to ref. info@added-1.3-removed-2.0: - description: Added in 1.3, removed in 2.0 via attribute in response body. + description: Added in 1.3, removed in 2.0 using an attribute in response body. x-version-added: '1.3' x-version-removed: '2.0' info@added-2.1: - description: Added in 2.1 via attribute in response body. + description: Added in 2.1 using an attribute in response body. x-version-added: '2.1' info@distributed-amazon-managed: description: Distributed only in AOS. diff --git a/tools/tests/tester/fixtures/specs/complete/schemas/_common.yaml b/tools/tests/tester/fixtures/specs/complete/schemas/_common.yaml index c3a4e41f3..55109176f 100644 --- a/tools/tests/tester/fixtures/specs/complete/schemas/_common.yaml +++ b/tools/tests/tester/fixtures/specs/complete/schemas/_common.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: - title: Schemas of _common category - description: Schemas of _common category + title: Schemas of `_common` Category + description: Schemas of `_common` category. version: 1.0.0 components: schemas: diff --git a/tools/tests/tester/fixtures/specs/excerpt.yaml b/tools/tests/tester/fixtures/specs/excerpt.yaml index 5ff3c005e..6b28883ab 100644 --- a/tools/tests/tester/fixtures/specs/excerpt.yaml +++ b/tools/tests/tester/fixtures/specs/excerpt.yaml @@ -31,7 +31,7 @@ paths: operationId: cat.indices.1 x-operation-group: cat.indices x-version-added: '1.0' - description: 'Returns information about indices: number of primaries and replicas, document counts, disk size, ...' + description: 'Returns information about indexes: number of primaries and replicas, document counts, disk size, ...' externalDocs: url: https://opensearch.org/docs/latest/api-reference/cat/cat-indices/ parameters: @@ -201,8 +201,8 @@ components: in: path name: index description: |- - Comma-separated list of data streams, indices, and aliases used to limit the request. - Supports wildcards (`*`). To target all data streams and indices, omit this parameter or use `*` or `_all`. + Comma-separated list of data streams, indexes, and aliases used to limit the request. + Supports wildcards (`*`). To target all data streams and indexes, omit this parameter or use `*` or `_all`. required: true schema: $ref: '#/components/schemas/_common:Indices' @@ -216,7 +216,7 @@ components: in: path name: index description: |- - Comma-separated list of indices to delete. + Comma-separated list of indexes to delete. You cannot specify index aliases. By default, this parameter does not support wildcards (`*`) or `_all`. To use wildcards or `_all`, set the `action.destructive_requires_name` cluster setting to `false`. @@ -235,7 +235,7 @@ components: indices.exists::path.index: in: path name: index - description: Comma-separated list of data streams, indices, and aliases. Supports wildcards (`*`). + description: Comma-separated list of data streams, indexes, and aliases. Supports wildcards (`*`). required: true schema: $ref: '#/components/schemas/_common:Indices' diff --git a/tools/tests/tester/fixtures/stories/passed/value_type.yaml b/tools/tests/tester/fixtures/stories/passed/value_type.yaml index ffc7b6b85..e69cec486 100644 --- a/tools/tests/tester/fixtures/stories/passed/value_type.yaml +++ b/tools/tests/tester/fixtures/stories/passed/value_type.yaml @@ -13,13 +13,13 @@ epilogues: path: /movies status: [200, 404] chapters: - - synopsis: This chapter requires a boolean in the parameters. + - synopsis: This chapter requires a Boolean in the parameters. method: GET path: /_cat/health parameters: format: json v: ${root.boolean} - - synopsis: This chapter requires a boolean in the body. + - synopsis: This chapter requires a Boolean in the body. method: PUT path: /{index} parameters: diff --git a/tools/tests/tester/helpers.ts b/tools/tests/tester/helpers.ts index 1a38c4c6b..399c1359e 100644 --- a/tools/tests/tester/helpers.ts +++ b/tools/tests/tester/helpers.ts @@ -54,7 +54,7 @@ export function construct_tester_components (spec_path: string): { const story_validator = new StoryValidator() const story_evaluator = new StoryEvaluator(chapter_evaluator, supplemental_chapter_evaluator) const result_logger = new NoOpResultLogger() - const test_runner = new TestRunner(opensearch_http_client, story_validator, story_evaluator, result_logger) + const test_runner = new TestRunner(opensearch_http_client, story_validator, story_evaluator, result_logger, logger) return { specification, operation_locator, @@ -142,5 +142,5 @@ export async function load_actual_evaluation (evaluator: StoryEvaluator, name: s full_path, display_path: `${name}.yaml`, story: read_yaml(full_path) - }, process.env.OPENSEARCH_VERSION ?? '2.16.0', process.env.OPENSEARCH_DISTRIBUTION ?? 'opensearch.org')) + }, process.env.OPENSEARCH_VERSION ?? '2.17.0', process.env.OPENSEARCH_DISTRIBUTION ?? 'opensearch.org')) } diff --git a/tools/tests/tester/integ/TestRunner.test.ts b/tools/tests/tester/integ/TestRunner.test.ts index 75253cd7c..a747f1b64 100644 --- a/tools/tests/tester/integ/TestRunner.test.ts +++ b/tools/tests/tester/integ/TestRunner.test.ts @@ -53,4 +53,10 @@ describe('story_files', () => { story_file => story_file.display_path )).not.toContain('nodes/plugins/docker-compose.yml') }) + + test('does not contain a python script', () => { + expect(test_runner.story_files('tests/plugins/notifications').map( + story_file => story_file.display_path + )).not.toContain('nodes/plugins/server.py') + }) })