diff --git a/CHANGELOG.md b/CHANGELOG.md index a4d4d0a33..bb1e1d782 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Added `s` to `/_ingest/processor/grok` ([#689](https://github.com/opensearch-project/opensearch-api-specification/pull/689)) - Added schema for security API error responses ([#646](https://github.com/opensearch-project/opensearch-api-specification/pull/646)) - Added `aggregations` to `/nodes/_usage/{metric}` requests and responses ([#615](https://github.com/opensearch-project/opensearch-api-specification/pull/615)) +- Added missing `status` to `/_search/template` response([#702](https://github.com/opensearch-project/opensearch-api-specification/pull/702)) ### 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)) diff --git a/spec/namespaces/_core.yaml b/spec/namespaces/_core.yaml index 8149f7cf4..6b032fc2f 100644 --- a/spec/namespaces/_core.yaml +++ b/spec/namespaces/_core.yaml @@ -3266,6 +3266,8 @@ components: $ref: '../schemas/_core.search.yaml#/components/schemas/Suggest' terminated_early: type: boolean + status: + type: number required: - _shards - hits diff --git a/tests/default/indices/search/template.yaml b/tests/default/indices/search/template.yaml new file mode 100644 index 000000000..879b73386 --- /dev/null +++ b/tests/default/indices/search/template.yaml @@ -0,0 +1,67 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test search with templates using both index-specific and global endpoints via 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: Quentin Tarantino, title: Pulp Fiction, year: 1994} + - {create: {_index: movies, _id: movie2}} + - {director: Christopher Nolan, title: Inception, year: 2010} + - path: /_scripts/movie_template + method: POST + request: + content_type: application/json + payload: + script: + lang: mustache + source: > + { + "query": { + "match": { + "{{field}}": "{{value}}" + } + } + } + +chapters: + - synopsis: Perform a search using a template with GET (index-specific). + path: /{index}/_search/template + method: GET + parameters: + index: [movies] + request: + payload: + id: movie_template + params: + field: + value: director + value: + value: Quentin Tarantino + response: + status: 200 + + - synopsis: Perform a search using a template with POST (index-specific). + path: /{index}/_search/template + method: POST + parameters: + index: [movies] + request: + payload: + id: movie_template + params: + field: + value: title + value: + value: Inception + response: + status: 200 \ No newline at end of file diff --git a/tests/default/search/template.yaml b/tests/default/search/template.yaml new file mode 100644 index 000000000..956f6fbd9 --- /dev/null +++ b/tests/default/search/template.yaml @@ -0,0 +1,63 @@ +$schema: ../../../json_schemas/test_story.schema.yaml + +description: Test search with templates using both index-specific and global endpoints via 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: Quentin Tarantino, title: Pulp Fiction, year: 1994} + - {create: {_index: movies, _id: movie2}} + - {director: Christopher Nolan, title: Inception, year: 2010} + - path: /_scripts/movie_template + method: POST + request: + content_type: application/json + payload: + script: + lang: mustache + source: > + { + "query": { + "match": { + "{{field}}": "{{value}}" + } + } + } + +chapters: + - synopsis: Perform a global search using a template with GET. + path: /_search/template + method: GET + request: + payload: + id: movie_template + params: + field: + value: year + value: + value: 1994 + response: + status: 200 + + - synopsis: Perform a global search using a template with POST. + path: /_search/template + method: POST + request: + payload: + id: movie_template + params: + field: + value: year + value: + value: 2010 + response: + status: 200 \ No newline at end of file