Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
bf79fad
Fix search hit allOf overrides to compose with base types
sean- May 15, 2026
3bca27b
Fix score format from double to float and freq from int64 to int32
sean- May 15, 2026
d1604aa
Fix freq from int64 to int32
sean- May 15, 2026
7a63cad
Deprecate Hit.ignored_field_values as Elasticsearch-only field
sean- May 15, 2026
5588b0a
Consolidate duplicate inline schemas into $refs
sean- May 15, 2026
a46b61b
Add missing fields to security plugin schemas
sean- May 15, 2026
a3b8916
Fix security-analytics type mismatches for alerts, findings, and scores
sean- May 15, 2026
23fbac3
Fix notifications HeaderParamsMap type from integer to string
sean- May 15, 2026
b8f630f
Fix flow-framework type mismatches, add missing fields, remove phanto…
sean- May 15, 2026
d01c169
Add missing fields and types to cross-cluster-replication Status schema
sean- May 15, 2026
e061c7c
Fix rollups Schedule to support both cron and interval variants
sean- May 15, 2026
9fbd678
Fix asynchronous-search ResponseBody types and add missing error field
sean- May 15, 2026
99e38b1
Fix geospatial upload stats types, add missing fields and failures array
sean- May 16, 2026
154f484
Add missing neural-search stat names, agentic/memory schemas
sean- May 16, 2026
e0d9538
Fix query-insights type mismatches, add missing fields, correct enums
sean- May 16, 2026
5ef2581
Fix observability schema: add int64 formats, enum, missing fields
sean- May 16, 2026
6368bc8
Fix search-relevance & UBI schemas: missing fields, response type
sean- May 16, 2026
4580614
Fix k-NN schemas: memory usage units, stat enum, model response
sean- May 16, 2026
465f530
Rename WLM query_group to workload_group; add settings field
sean- May 16, 2026
dc73a70
Add missing PATCH experiment endpoint (x-version-added: 3.6)
sean- May 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,25 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Fixed `create_pit` `keep_alive` query parameter to be required ([#1102](https://github.com/opensearch-project/opensearch-api-specification/pull/1102))
- Fixed ISM index parameters to use `Indices` type instead of `IndexName` for multi-index support ([#1097](https://github.com/opensearch-project/opensearch-api-specification/issues/1097))
- Fixed `failures` field type in `PauseIngestionResponse` and `ResumeIngestionResponse` from array to map keyed by index name, matching server serialization ([#1107](https://github.com/opensearch-project/opensearch-api-specification/pull/1107))
- Fixed `SearchResult`, `HitsMetadataJsonValue`, and `SearchResultJsonValue` hit items to compose with `Hit` via `allOf`, restoring `_id`, `_index`, `_score`, `sort`, and other hit fields that were lost by bare `_source`-only inline overrides; also fixed `SearchResultJsonValue` completion suggest options to compose with `CompletionSuggestOption` ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed `Hit._score` and `matched_queries` score format from `double` to `float`; fixed `PhraseSuggestOption.score` and `TermSuggestOption.score` from `double` to `float` to match server's Java `float` types ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed `TermSuggestOption.freq` format from `int64` to `int32` to match server's Java `int` type ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Deprecated `Hit.ignored_field_values` as an Elasticsearch-only field not present in OpenSearch server responses ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Consolidated duplicate inline schemas in `ml._common.yaml` and `flow_framework.common.yaml` to use `$ref`s to canonical `SearchResult`, `TotalHits`, `Hit`, and `ShardStatistics` definitions ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Added missing fields to security plugin schemas: `format`, `alias`, `serial_number`, `has_private_key` to `CertificatesDetail`; `is_authenticated` to `WhoAmI`; `resource_sharing_enabled` to `DashboardsInfo` ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed `GetAlertsResponse.total_alerts` and `GetFindingsResponse.total_findings` format from `int64` to `int32` to match server's Java `Integer` type; fixed `FindingWithScore.score` format from `float` to `double` to match server's Java `Double` type ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed `HeaderParamsMap` additionalProperties type from `integer int32` to `string` to match server's `Map<String, String>` type ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed flow-framework type mismatches: `last_provisioned_time` from `number` to `integer int64`, added `format: int64` to `created_time` and `last_updated_time`, `resources_created` items from `string` to `ResourcesCreated`, `user_outputs` from `array of string` to `object`, `provision_start_time`/`provision_end_time` from `string date-time` to `integer int64`; added missing `ui_metadata`, `tenant_id`, `all_shared_principals` fields; removed phantom `status`/`code` fields from 15 error schemas ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Added missing `bootstrap_details` and `shard_replication_details` to cross-cluster-replication `Status` schema with full `RestoreDetails` and `ShardInfoResponse` types; added `format: int64` to `SyncingDetails` checkpoint fields ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Added `cron` variant to rollups `Schedule` (was interval-only); removed misplaced `cron` from inside `Interval`; fixed `start_time` and `schedule_delay` from `number` to `integer int64`, `period` from `number` to `integer int32`; added `schedule_delay` to `Cron` ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed asynchronous-search `ResponseBody`: `start_time_in_millis` and `expiration_time_in_millis` from `number` to `integer int64`, removed phantom `took` field, added `error` as `ErrorCause`; added `format: int64` to all `AsynchronousSearchStats` counters ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed geospatial upload stats counters and durations to `integer int64`; added `failures` array with `UploadFailure` schema to `GeoSpatialGeojsonUploadResponse`; added `format: int64` to `Database.valid_for_in_days` and `updated_at` field; added missing `last_failed_at*`, `last_skipped_at*`, `last_succeeded_at` fields to `UpdateStats` ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Added missing neural-search stat names: 7 event stats (`semantic_highlighting_batch_request_count`, `agentic_query_translator_executions`, `agentic_context_executions`, `agentic_query_requests`, `seismic_query_requests`, `sparse_encoding_seismic_executions`, `mmr_neural_query_transformer_executions`), 2 info stats (`agentic_query_translator_processors`, `agentic_context_processors`), and 4 memory metric stats (`sparse_memory_usage`, `sparse_memory_usage_percentage`, `forward_index_usage`, `clustered_posting_usage`) with flat/nested schema entries and `MemoryStat` type ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed query-insights `TopQuery`: renamed `query_hashcode` to `query_group_hashcode`, added `format: int64` to `timestamp`, added `additionalProperties` to `phase_latency_map`, reduced `GroupingType` enum to server-emitted uppercase values only, added 8 missing fields (`description`, `is_cancelled`, `wlm_group_id`, `username`, `user_roles`, `backend_roles`, `source_truncated`, `failed`); fixed `Measurement.number` from `integer` to `number`, added `aggregationType` enum; added `format: int64` to `TaskResourceUsages.taskId`/`parentTaskId` and `TaskResourceUsage.cpu_time_in_nanos`/`memory_in_bytes` ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed observability `ObservabilityObjectList`: added `format: int64` to `startIndex`/`totalHits`, added `enum: [eq, gte]` to `totalHitRelation`; added `format: int64` to `ObservabilityObject.lastUpdatedTimeMs`/`createdTimeMs`, added `access` array; added 6 missing fields to `SavedVisualization` (`application_id`, `user_configs`, `sub_type`, `metric_type`, `units_of_measure`, `selected_labels`) ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Added missing `description` to `PutSearchConfigurationRequest` and `ubiQueriesIndex` to `PostQuerySetsRequest` in search-relevance; fixed UBI `Initialize` response type from `string` to `object` with `message` field ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed k-NN `NodeStats.graph_memory_usage` and `training_memory_usage` from `ByteCount` to `integer int64` (values are kilobytes, not bytes); added `remote_vector_index_build_stats` to `KnnStatName` enum; added missing `data_type`, `space_type`, `engine` to `TrainedModel`; defined `ModelResponse` schema with `ModelState` enum for `knn.get_model` endpoint ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Renamed WLM `query_group` paths to `workload_group` (renamed in server 3.0.0); marked old `query_group` operations with `x-version-removed: 3.0.0`, added new `workload_group` operations with `x-version-added: 3.0.0`; renamed response key from `query_groups` to `workload_groups`; added `settings` field (`Map<String, String>`) to `WorkloadGroupResponse`, `WorkloadGroupCreate`, and `WorkloadGroupUpdate` ([#1113](https://github.com/opensearch-project/opensearch-api-specification/pull/1113))
- Fixed the default parameters for `data_stream/_stats` and `shard_stores/status` ([#931](https://github.com/opensearch-project/opensearch-api-specification/pull/931))
- Fixed the type of `SearchStats`'s `concurrent_avg_slice_count` to be a double ([#942](https://github.com/opensearch-project/opensearch-api-specification/pull/942))
- Fixed name and metadata missing from metric aggregations ([#969](https://github.com/opensearch-project/opensearch-api-specification/pull/969))
Expand Down
2 changes: 1 addition & 1 deletion spec/namespaces/knn.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ components:
content:
application/json:
schema:
type: object
$ref: '../schemas/knn._common.yaml#/components/schemas/ModelResponse'
knn.search_models@200:
content:
application/json:
Expand Down
29 changes: 29 additions & 0 deletions spec/namespaces/search_relevance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,18 @@ paths:
responses:
'200':
$ref: '#/components/responses/search_relevance.get_experiments@200'
patch:
operationId: search_relevance.patch_experiment.0
x-operation-group: search_relevance.patch_experiment
x-version-added: '3.6'
description: Partially updates an experiment's name or description.
parameters:
- $ref: '#/components/parameters/search_relevance.patch_experiment::path.experiment_id'
requestBody:
$ref: '#/components/requestBodies/search_relevance.patch_experiment'
responses:
'200':
$ref: '#/components/responses/search_relevance.patch_experiment@200'
delete:
operationId: search_relevance.delete_experiments.0
x-operation-group: search_relevance.delete_experiments
Expand Down Expand Up @@ -427,6 +439,13 @@ components:
schema:
type:
string
search_relevance.patch_experiment::path.experiment_id:
name: experiment_id
in: path
required: true
description: The experiment id.
schema:
type: string
search_relevance.get_scheduled_experiments::path.experiment_id:
name: experiment_id
in: path
Expand Down Expand Up @@ -599,6 +618,11 @@ components:
application/json:
schema:
$ref: '../schemas/search_relevance._common.yaml#/components/schemas/SearchRequest'
search_relevance.patch_experiment:
content:
application/json:
schema:
$ref: '../schemas/search_relevance._common.yaml#/components/schemas/PatchExperimentRequest'
search_relevance.post_scheduled_experiments:
content:
application/json:
Expand Down Expand Up @@ -690,6 +714,11 @@ components:
application/json:
schema:
$ref: '../schemas/_common.yaml#/components/schemas/WriteResponseBase'
search_relevance.patch_experiment@200:
content:
application/json:
schema:
$ref: '../schemas/search_relevance._common.yaml#/components/schemas/PatchExperimentResponse'
search_relevance.get_node_stats@200:
content:
application/json:
Expand Down
126 changes: 124 additions & 2 deletions spec/namespaces/wlm.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
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.
title: Workload Management API
description: The Workload Group Lifecycle APIs create, update, and delete workload management 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'
x-version-removed: 3.0.0
description: Retrieves the specified query group. If no query group is specified, all query groups in the cluster are retrieved.
responses:
'200':
Expand All @@ -17,6 +18,7 @@ paths:
operationId: wlm.create_query_group.0
x-operation-group: wlm.create_query_group
x-version-added: '2.17'
x-version-removed: 3.0.0
description: Creates a new query group and sets the resource limits for the new query group.
requestBody:
$ref: '#/components/requestBodies/wlm.create_query_group'
Expand All @@ -28,6 +30,7 @@ paths:
operationId: wlm.get_query_group.1
x-operation-group: wlm.get_query_group
x-version-added: '2.17'
x-version-removed: 3.0.0
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'
Expand All @@ -38,6 +41,7 @@ paths:
operationId: wlm.update_query_group.0
x-operation-group: wlm.update_query_group
x-version-added: '2.17'
x-version-removed: 3.0.0
description: Updates the specified query group.
parameters:
- $ref: '#/components/parameters/wlm.update_query_group::path.name'
Expand All @@ -50,12 +54,65 @@ paths:
operationId: wlm.delete_query_group.0
x-operation-group: wlm.delete_query_group
x-version-added: '2.17'
x-version-removed: 3.0.0
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'
/_wlm/workload_group:
get:
operationId: wlm.get_workload_group.0
x-operation-group: wlm.get_workload_group
x-version-added: 3.0.0
description: Retrieves the specified workload group. If no workload group is specified, all workload groups in the cluster are retrieved.
responses:
'200':
$ref: '#/components/responses/wlm.get_workload_group@200'
put:
operationId: wlm.create_workload_group.0
x-operation-group: wlm.create_workload_group
x-version-added: 3.0.0
description: Creates a new workload group and sets the resource limits for the new workload group.
requestBody:
$ref: '#/components/requestBodies/wlm.create_workload_group'
responses:
'200':
$ref: '#/components/responses/wlm.create_workload_group@200'
/_wlm/workload_group/{name}:
get:
operationId: wlm.get_workload_group.1
x-operation-group: wlm.get_workload_group
x-version-added: 3.0.0
description: Retrieves the specified workload group. If no workload group is specified, all workload groups in the cluster are retrieved.
parameters:
- $ref: '#/components/parameters/wlm.get_workload_group::path.name'
responses:
'200':
$ref: '#/components/responses/wlm.get_workload_group@200'
put:
operationId: wlm.update_workload_group.0
x-operation-group: wlm.update_workload_group
x-version-added: 3.0.0
description: Updates the specified workload group.
parameters:
- $ref: '#/components/parameters/wlm.update_workload_group::path.name'
requestBody:
$ref: '#/components/requestBodies/wlm.update_workload_group'
responses:
'200':
$ref: '#/components/responses/wlm.update_workload_group@200'
delete:
operationId: wlm.delete_workload_group.0
x-operation-group: wlm.delete_workload_group
x-version-added: 3.0.0
description: Deletes the specified workload group.
parameters:
- $ref: '#/components/parameters/wlm.delete_workload_group::path.name'
responses:
'200':
$ref: '#/components/responses/wlm.delete_workload_group@200'
components:
requestBodies:
wlm.create_query_group:
Expand All @@ -70,6 +127,18 @@ components:
schema:
$ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupUpdate'
required: true
wlm.create_workload_group:
content:
application/json:
schema:
$ref: '../schemas/wlm._common.yaml#/components/schemas/WorkloadGroupCreate'
required: true
wlm.update_workload_group:
content:
application/json:
schema:
$ref: '../schemas/wlm._common.yaml#/components/schemas/WorkloadGroupUpdate'
required: true
responses:
wlm.create_query_group@200:
description: ''
Expand Down Expand Up @@ -103,6 +172,38 @@ components:
type: array
items:
$ref: '../schemas/wlm._common.yaml#/components/schemas/QueryGroupResponse'
wlm.create_workload_group@200:
description: ''
content:
application/json:
schema:
$ref: '../schemas/wlm._common.yaml#/components/schemas/WorkloadGroupResponse'
wlm.update_workload_group@200:
description: ''
content:
application/json:
schema:
$ref: '../schemas/wlm._common.yaml#/components/schemas/WorkloadGroupResponse'
wlm.delete_workload_group@200:
description: ''
content:
application/json:
schema:
type: object
properties:
acknowledged:
type: boolean
wlm.get_workload_group@200:
description: ''
content:
application/json:
schema:
type: object
properties:
workload_groups:
type: array
items:
$ref: '../schemas/wlm._common.yaml#/components/schemas/WorkloadGroupResponse'
parameters:
wlm.update_query_group::path.name:
name: name
Expand All @@ -125,3 +226,24 @@ components:
schema:
type: string
required: true
wlm.update_workload_group::path.name:
name: name
in: path
description: The name of the workload group.
schema:
type: string
required: true
wlm.delete_workload_group::path.name:
name: name
in: path
description: The name of the workload group.
schema:
type: string
required: true
wlm.get_workload_group::path.name:
name: name
in: path
description: The name of the workload group.
schema:
type: string
required: true
Loading