Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Add missing API specs #168

Open
dblock opened this issue Dec 20, 2023 · 10 comments
Open

[FEATURE] Add missing API specs #168

dblock opened this issue Dec 20, 2023 · 10 comments
Labels
enhancement New feature or request missing api Missing API or api parameter that needs to be added.

Comments

@dblock
Copy link
Member

dblock commented Dec 20, 2023

Is your feature request related to a problem?

The spec repo should be 100% of specs that ship with OpenSearch and kept up-to-date.

What solution would you like?

  1. Specs up-to-date to the latest distribution of OpenSearch.
  2. A way to know which specs aren't up-to-date (a tool)?

How can you help?

  1. Open any recent pull request.
  2. Scroll to checks, pick the "Analyze PR Changes" job and look at its logs. It will bring you to, for example, https://github.com/opensearch-project/opensearch-api-specification/actions/runs/10871915073/job/30166319109?pr=578.
  3. Find "Calculate Coverage". All the APIs missing in the spec are there.
Screenshot 2024-09-15 at 10 50 05 AM 4. Add one!

What is the current state of API specs in this repo?

Do you have any additional context?

This is what's missing per https://github.com/dblock/opensearch-api-specification/actions/runs/7495103121/job/20404497220#step:10:1, generated via #179.

  • /_alias: ["PUT"]
  • /_alias/{name}: ["PUT","POST"]
  • /_aliases: ["GET"]
  • /_aliases/{name}: ["PUT","POST"]
  • /_close: ["POST"]
  • /_cluster/decommission/awareness: ["DELETE"]
  • /_cluster/routing/awareness/{attribute}/weights: ["DELETE"]
  • /_cluster/voting_config_exclusions/{node_name}: ["POST"]
  • /_flush/synced: ["GET","POST"]
  • /_mappings: ["GET"]
  • /_nodes/{nodeId}/info/{metrics}: ["GET"]
  • /_open: ["POST"]
  • /_opendistro/_alerting/destinations: ["GET"]
  • /_opendistro/_alerting/destinations/email_accounts/_search: ["GET","POST"]
  • /_opendistro/_alerting/destinations/email_accounts/{emailAccountID}: ["GET","HEAD"]
  • /_opendistro/_alerting/destinations/email_groups/_search: ["GET","POST"]
  • /_opendistro/_alerting/destinations/email_groups/{emailGroupID}: ["GET","HEAD"]
  • /_opendistro/_alerting/destinations/{destinationID}: ["GET"]
  • /_opendistro/_alerting/monitors: ["POST"]
  • /_opendistro/_alerting/monitors/_execute: ["POST"]
  • /_opendistro/_alerting/monitors/_search: ["GET","POST"]
  • /_opendistro/_alerting/monitors/alerts: ["GET"]
  • /_opendistro/_alerting/monitors/{monitorID}: ["GET","PUT","DELETE","HEAD"]
  • /_opendistro/_alerting/monitors/{monitorID}/_acknowledge/alerts: ["POST"]
  • /_opendistro/_alerting/monitors/{monitorID}/_execute: ["POST"]
  • /_opendistro/_alerting/stats/: ["GET"]
  • /_opendistro/_alerting/stats/{metric}: ["GET"]
  • /_opendistro/_alerting/{nodeId}/stats/: ["GET"]
  • /_opendistro/_alerting/{nodeId}/stats/{metric}: ["GET"]
  • /_opendistro/_anomaly_detection/detectors: ["POST"]
  • /_opendistro/_anomaly_detection/detectors/_search: ["GET","POST"]
  • /_opendistro/_anomaly_detection/detectors/count: ["GET"]
  • /_opendistro/_anomaly_detection/detectors/match: ["GET"]
  • /_opendistro/_anomaly_detection/detectors/results/_search: ["GET","POST"]
  • /_opendistro/_anomaly_detection/detectors/tasks/_search: ["GET","POST"]
  • /_opendistro/_anomaly_detection/detectors/{detectorID}: ["GET","PUT","DELETE","HEAD"]
  • /_opendistro/_anomaly_detection/detectors/{detectorID}/_preview: ["POST"]
  • /_opendistro/_anomaly_detection/detectors/{detectorID}/_profile: ["GET"]
  • /_opendistro/_anomaly_detection/detectors/{detectorID}/_profile/{type}: ["GET"]
  • /_opendistro/_anomaly_detection/detectors/{detectorID}/_run: ["POST"]
  • /_opendistro/_anomaly_detection/detectors/{detectorID}/_start: ["POST"]
  • /_opendistro/_anomaly_detection/detectors/{detectorID}/_stop: ["POST"]
  • /_opendistro/_anomaly_detection/stats/: ["GET"]
  • /_opendistro/_anomaly_detection/stats/{stat}: ["GET"]
  • /_opendistro/_anomaly_detection/{nodeId}/stats/: ["GET"]
  • /_opendistro/_anomaly_detection/{nodeId}/stats/{stat}: ["GET"]
  • /_opendistro/_asynchronous_search: ["POST"]
  • /_opendistro/_asynchronous_search/_nodes/{nodeId}/stats: ["GET"]
  • /_opendistro/_asynchronous_search/stats: ["GET"]
  • /_opendistro/_asynchronous_search/{id}: ["GET","DELETE"]
  • /_opendistro/_ism/add: ["POST"]
  • /_opendistro/_ism/add/{index}: ["POST"]
  • /_opendistro/_ism/change_policy: ["POST"]
  • /_opendistro/_ism/change_policy/{index}: ["POST"]
  • /_opendistro/_ism/explain: ["GET"]
  • /_opendistro/_ism/explain/{index}: ["GET"]
  • /_opendistro/_ism/policies: ["GET","PUT"]
  • /_opendistro/_ism/policies/{policyID}: ["GET","PUT","DELETE","HEAD"]
  • /_opendistro/_ism/remove: ["POST"]
  • /_opendistro/_ism/remove/{index}: ["POST"]
  • /_opendistro/_ism/retry: ["POST"]
  • /_opendistro/_ism/retry/{index}: ["POST"]
  • /_opendistro/_knn/stats/: ["GET"]
  • /_opendistro/_knn/stats/{stat}: ["GET"]
  • /_opendistro/_knn/warmup/{index}: ["GET"]
  • /_opendistro/_knn/{nodeId}/stats/: ["GET"]
  • /_opendistro/_knn/{nodeId}/stats/{stat}: ["GET"]
  • /_opendistro/_performanceanalyzer/_agent/{redirectEndpoint}: ["GET"]
  • /_opendistro/_performanceanalyzer/batch/cluster/config: ["GET","POST"]
  • /_opendistro/_performanceanalyzer/batch/config: ["GET","POST"]
  • /_opendistro/_performanceanalyzer/cluster/config: ["GET","POST"]
  • /_opendistro/_performanceanalyzer/config: ["GET","POST"]
  • /_opendistro/_performanceanalyzer/logging/cluster/config: ["GET","POST"]
  • /_opendistro/_performanceanalyzer/logging/config: ["GET","POST"]
  • /_opendistro/_performanceanalyzer/override/cluster/config: ["GET","POST"]
  • /_opendistro/_performanceanalyzer/rca/cluster/config: ["GET","POST"]
  • /_opendistro/_performanceanalyzer/rca/config: ["GET","POST"]
  • /_opendistro/_ppl: ["POST"]
  • /_opendistro/_ppl/_explain: ["POST"]
  • /_opendistro/_ppl/stats: ["GET","POST"]
  • /_opendistro/_refresh_search_analyzers: ["POST"]
  • /_opendistro/_refresh_search_analyzers/{index}: ["POST"]
  • /_opendistro/_reports/_local/stats: ["GET"]
  • /_opendistro/_reports/definition: ["POST"]
  • /_opendistro/_reports/definition/{reportDefinitionId}: ["GET","PUT","DELETE"]
  • /_opendistro/_reports/definitions: ["GET"]
  • /_opendistro/_reports/instance/{reportInstanceId}: ["GET","POST"]
  • /_opendistro/_reports/instances: ["GET"]
  • /_opendistro/_reports/on_demand: ["PUT"]
  • /_opendistro/_reports/on_demand/{reportDefinitionId}: ["POST"]
  • /_opendistro/_rollup/jobs: ["GET","PUT"]
  • /_opendistro/_rollup/jobs/{rollupID}: ["GET","PUT","DELETE","HEAD"]
  • /_opendistro/_rollup/jobs/{rollupID}/_explain: ["GET"]
  • /_opendistro/_rollup/jobs/{rollupID}/_start: ["POST"]
  • /_opendistro/_rollup/jobs/{rollupID}/_stop: ["POST"]
  • /_opendistro/_security/api/account: ["GET","PUT"]
  • /_opendistro/_security/api/actiongroup/: ["GET"]
  • /_opendistro/_security/api/actiongroup/{name}: ["GET","PUT","DELETE"]
  • /_opendistro/_security/api/actiongroups/: ["GET","PATCH"]
  • /_opendistro/_security/api/actiongroups/{name}: ["GET","PUT","DELETE","PATCH"]
  • /_opendistro/_security/api/audit/: ["GET","PATCH"]
  • /_opendistro/_security/api/audit/config: ["PUT"]
  • /_opendistro/_security/api/authtoken: ["POST"]
  • /_opendistro/_security/api/cache: ["GET","PUT","POST","DELETE"]
  • /_opendistro/_security/api/internalusers/: ["GET","PATCH"]
  • /_opendistro/_security/api/internalusers/{name}: ["GET","PUT","DELETE","PATCH"]
  • /_opendistro/_security/api/internalusers/{name}/authtoken: ["POST"]
  • /_opendistro/_security/api/migrate: ["POST"]
  • /_opendistro/_security/api/permissionsinfo: ["GET"]
  • /_opendistro/_security/api/roles/: ["GET","PATCH"]
  • /_opendistro/_security/api/roles/{name}: ["GET","PUT","DELETE","PATCH"]
  • /_opendistro/_security/api/rolesmapping/: ["GET","PATCH"]
  • /_opendistro/_security/api/rolesmapping/{name}: ["GET","PUT","DELETE","PATCH"]
  • /_opendistro/_security/api/securityconfig: ["GET","PATCH"]
  • /_opendistro/_security/api/securityconfig/config: ["PUT"]
  • /_opendistro/_security/api/ssl/certs: ["GET"]
  • /_opendistro/_security/api/ssl/{certType}/reloadcerts/: ["PUT"]
  • /_opendistro/_security/api/tenancy/config: ["GET","PUT"]
  • /_opendistro/_security/api/tenants/: ["GET","PATCH"]
  • /_opendistro/_security/api/tenants/{name}: ["GET","PUT","DELETE","PATCH"]
  • /_opendistro/_security/api/user/: ["GET"]
  • /_opendistro/_security/api/user/{name}: ["GET","PUT","DELETE"]
  • /_opendistro/_security/api/user/{name}/authtoken: ["POST"]
  • /_opendistro/_security/api/validate: ["GET"]
  • /_opendistro/_security/api/whitelist: ["GET","PUT","PATCH"]
  • /_opendistro/_security/authinfo: ["GET","POST"]
  • /_opendistro/_security/health: ["GET","POST"]
  • /_opendistro/_security/kibanainfo: ["GET","POST"]
  • /_opendistro/_security/sslinfo: ["GET"]
  • /_opendistro/_security/tenantinfo: ["GET","POST"]
  • /_opendistro/_sql: ["POST"]
  • /_opendistro/_sql/_explain: ["POST"]
  • /_opendistro/_sql/close: ["POST"]
  • /_opendistro/_sql/settings: ["PUT"]
  • /_opendistro/_sql/stats: ["GET","POST"]
  • /_opensearch_dashboards/_alias: ["GET","PUT"]
  • /_opensearch_dashboards/_alias/{name}: ["GET","PUT","POST","HEAD"]
  • /_opensearch_dashboards/_aliases: ["GET"]
  • /_opensearch_dashboards/_aliases/{name}: ["PUT","POST"]
  • /_opensearch_dashboards/_bulk: ["PUT","POST"]
  • /_opensearch_dashboards/_mget: ["GET","POST"]
  • /_opensearch_dashboards/_refresh: ["GET","POST"]
  • /_opensearch_dashboards/_search: ["GET","POST"]
  • /_opensearch_dashboards/_search/scroll: ["GET","POST","DELETE"]
  • /_opensearch_dashboards/_search/scroll/{scroll_id}: ["GET","POST","DELETE"]
  • /_opensearch_dashboards/_settings: ["PUT"]
  • /_opensearch_dashboards/{index}: ["GET","PUT","HEAD"]
  • /_opensearch_dashboards/{index}/_alias: ["GET","PUT","HEAD"]
  • /_opensearch_dashboards/{index}/_alias/{name}: ["GET","PUT","POST","HEAD"]
  • /_opensearch_dashboards/{index}/_aliases: ["PUT"]
  • /_opensearch_dashboards/{index}/_aliases/{name}: ["PUT","POST"]
  • /_opensearch_dashboards/{index}/_bulk: ["PUT","POST"]
  • /_opensearch_dashboards/{index}/_create/{id}: ["PUT","POST"]
  • /_opensearch_dashboards/{index}/_delete_by_query: ["POST"]
  • /_opensearch_dashboards/{index}/_doc: ["POST"]
  • /_opensearch_dashboards/{index}/_doc/{id}: ["GET","PUT","POST","DELETE","HEAD"]
  • /_opensearch_dashboards/{index}/_mget: ["GET","POST"]
  • /_opensearch_dashboards/{index}/_refresh: ["GET","POST"]
  • /_opensearch_dashboards/{index}/_search: ["GET","POST"]
  • /_opensearch_dashboards/{index}/_settings: ["PUT"]
  • /_opensearch_dashboards/{index}/_update/{id}: ["POST"]
  • /_plugins/_alerting/destinations: ["GET"]
  • /_plugins/_alerting/destinations/email_accounts/_search: ["GET","POST"]
  • /_plugins/_alerting/destinations/email_accounts/{emailAccountID}: ["GET","HEAD"]
  • /_plugins/_alerting/destinations/email_groups/_search: ["GET","POST"]
  • /_plugins/_alerting/destinations/email_groups/{emailGroupID}: ["GET","HEAD"]
  • /_plugins/_alerting/destinations/{destinationID}: ["GET"]
  • /_plugins/_alerting/findings/_search: ["GET"]
  • /_plugins/_alerting/monitors: ["POST"]
  • /_plugins/_alerting/monitors/_execute: ["POST"]
  • /_plugins/_alerting/monitors/_search: ["GET","POST"]
  • /_plugins/_alerting/monitors/alerts: ["GET"]
  • /_plugins/_alerting/monitors/{monitorID}: ["GET","PUT","DELETE","HEAD"]
  • /_plugins/_alerting/monitors/{monitorID}/_acknowledge/alerts: ["POST"]
  • /_plugins/_alerting/monitors/{monitorID}/_execute: ["POST"]
  • /_plugins/_alerting/stats/: ["GET"]
  • /_plugins/_alerting/stats/{metric}: ["GET"]
  • /_plugins/_alerting/workflows: ["POST"]
  • /_plugins/_alerting/workflows/alerts: ["GET"]
  • /_plugins/_alerting/workflows/{workflowID}: ["GET","PUT","DELETE"]
  • /_plugins/_alerting/workflows/{workflowID}/_acknowledge/alerts: ["POST"]
  • /_plugins/_alerting/workflows/{workflowID}/_execute: ["POST"]
  • /_plugins/_alerting/{nodeId}/stats/: ["GET"]
  • /_plugins/_alerting/{nodeId}/stats/{metric}: ["GET"]
  • /_plugins/_anomaly_detection/detectors: ["POST"]
  • /_plugins/_anomaly_detection/detectors/_preview: ["POST"]
  • /_plugins/_anomaly_detection/detectors/_search: ["GET","POST"]
  • /_plugins/_anomaly_detection/detectors/_validate: ["POST"]
  • /_plugins/_anomaly_detection/detectors/_validate/{type}: ["POST"]
  • /_plugins/_anomaly_detection/detectors/count: ["GET"]
  • /_plugins/_anomaly_detection/detectors/match: ["GET"]
  • /_plugins/_anomaly_detection/detectors/results: ["DELETE"]
  • /_plugins/_anomaly_detection/detectors/results/_search: ["GET","POST"]
  • /_plugins/_anomaly_detection/detectors/results/_search/{resultIndex}: ["GET","POST"]
  • /_plugins/_anomaly_detection/detectors/tasks/_search: ["GET","POST"]
  • /_plugins/_anomaly_detection/detectors/{detectorID}: ["GET","PUT","DELETE","HEAD"]
  • /_plugins/_anomaly_detection/detectors/{detectorID}/_preview: ["POST"]
  • /_plugins/_anomaly_detection/detectors/{detectorID}/_profile: ["GET","POST"]
  • /_plugins/_anomaly_detection/detectors/{detectorID}/_profile/{type}: ["GET","POST"]
  • /_plugins/_anomaly_detection/detectors/{detectorID}/_run: ["POST"]
  • /_plugins/_anomaly_detection/detectors/{detectorID}/_start: ["POST"]
  • /_plugins/_anomaly_detection/detectors/{detectorID}/_stop: ["POST"]
  • /_plugins/_anomaly_detection/detectors/{detectorID}/results/_topAnomalies: ["GET","POST"]
  • /_plugins/_anomaly_detection/stats/: ["GET"]
  • /_plugins/_anomaly_detection/stats/{stat}: ["GET"]
  • /_plugins/_anomaly_detection/{nodeId}/stats/: ["GET"]
  • /_plugins/_anomaly_detection/{nodeId}/stats/{stat}: ["GET"]
  • /_plugins/_async_query: ["POST"]
  • /_plugins/_async_query/{queryId}: ["GET","DELETE"]
  • /_plugins/_asynchronous_search: ["POST"]
  • /_plugins/_asynchronous_search/_nodes/{nodeId}/stats: ["GET"]
  • /_plugins/_asynchronous_search/stats: ["GET"]
  • /_plugins/_asynchronous_search/{id}: ["GET","DELETE"]
  • /_plugins/_im/lron: ["GET","POST"]
  • /_plugins/_im/lron/{id}: ["GET","PUT","DELETE"]
  • /_plugins/_ism/add: ["POST"]
  • /_plugins/_ism/add/{index}: ["POST"]
  • /_plugins/_ism/change_policy: ["POST"]
  • /_plugins/_ism/change_policy/{index}: ["POST"]
  • /_plugins/_ism/explain: ["GET"]
  • /_plugins/_ism/explain/{index}: ["GET"]
  • /_plugins/_ism/policies: ["GET","PUT"]
  • /_plugins/_ism/policies/{policyID}: ["GET","PUT","DELETE","HEAD"]
  • /_plugins/_ism/remove: ["POST"]
  • /_plugins/_ism/remove/{index}: ["POST"]
  • /_plugins/_ism/retry: ["POST"]
  • /_plugins/_ism/retry/{index}: ["POST"]
  • /_plugins/_job_scheduler/_job_details: ["PUT"]
  • /_plugins/_job_scheduler/_job_details/{document_id}: ["PUT"]
  • /_plugins/_job_scheduler/_lock: ["GET"]
  • /_plugins/_job_scheduler/_release_lock/{lock_id}: ["PUT"]
  • /_plugins/_knn/models/_search: ["GET","POST"]
  • /_plugins/_knn/models/_train: ["POST"]
  • /_plugins/_knn/models/{model_id}: ["GET","DELETE"]
  • /_plugins/_knn/models/{model_id}/_train: ["POST"]
  • /_plugins/_knn/stats/: ["GET"]
  • /_plugins/_knn/stats/{stat}: ["GET"]
  • /_plugins/_knn/warmup/{index}: ["GET"]
  • /_plugins/_knn/{nodeId}/stats/: ["GET"]
  • /_plugins/_knn/{nodeId}/stats/{stat}: ["GET"]
  • /_plugins/_ml/_execute/{algorithm}: ["POST"]
  • /_plugins/_ml/_predict/{algorithm}/{model_id}: ["POST"]
  • /_plugins/_ml/_train/{algorithm}: ["POST"]
  • /_plugins/_ml/_train_predict/{algorithm}: ["POST"]
  • /_plugins/_ml/connectors/_create: ["POST"]
  • /_plugins/_ml/connectors/_search: ["GET","POST"]
  • /_plugins/_ml/connectors/{connector_id}: ["GET","PUT","DELETE"]
  • /_plugins/_ml/memory/conversation: ["GET","POST"]
  • /_plugins/_ml/memory/conversation/{conversation_id}: ["GET","POST","DELETE"]
  • /_plugins/_ml/model_groups/_register: ["POST"]
  • /_plugins/_ml/model_groups/_search: ["GET","POST"]
  • /_plugins/_ml/model_groups/{model_group_id}: ["PUT","DELETE"]
  • /_plugins/_ml/models/_register: ["POST"]
  • /_plugins/_ml/models/_register_meta: ["POST"]
  • /_plugins/_ml/models/_search: ["GET","POST"]
  • /_plugins/_ml/models/_undeploy: ["POST"]
  • /_plugins/_ml/models/_unload: ["POST"]
  • /_plugins/_ml/models/_upload: ["POST"]
  • /_plugins/_ml/models/meta: ["POST"]
  • /_plugins/_ml/models/{model_id}: ["GET","DELETE"]
  • /_plugins/_ml/models/{model_id}/_deploy: ["POST"]
  • /_plugins/_ml/models/{model_id}/_load: ["POST"]
  • /_plugins/_ml/models/{model_id}/_predict: ["POST"]
  • /_plugins/_ml/models/{model_id}/_undeploy: ["POST"]
  • /_plugins/_ml/models/{model_id}/_unload: ["POST"]
  • /_plugins/_ml/models/{model_id}/chunk/{chunk_number}: ["POST"]
  • /_plugins/_ml/models/{model_id}/upload_chunk/{chunk_number}: ["POST"]
  • /_plugins/_ml/models/{model_id}/{version}/_register: ["POST"]
  • /_plugins/_ml/models/{model_id}/{version}/_upload: ["POST"]
  • /_plugins/_ml/profile: ["GET"]
  • /_plugins/_ml/profile/models: ["GET"]
  • /_plugins/_ml/profile/models/{model_id}: ["GET"]
  • /_plugins/_ml/profile/tasks: ["GET"]
  • /_plugins/_ml/profile/tasks/{task_id}: ["GET"]
  • /_plugins/_ml/stats/: ["GET"]
  • /_plugins/_ml/stats/{stat}: ["GET"]
  • /_plugins/_ml/tasks/_search: ["GET","POST"]
  • /_plugins/_ml/tasks/{task_id}: ["GET","DELETE"]
  • /_plugins/_ml/{nodeId}/stats/: ["GET"]
  • /_plugins/_ml/{nodeId}/stats/{stat}: ["GET"]
  • /_plugins/_notifications/channels: ["GET"]
  • /_plugins/_notifications/configs: ["GET","POST","DELETE"]
  • /_plugins/_notifications/configs/{config_id}: ["GET","PUT","DELETE"]
  • /_plugins/_notifications/feature/test/{config_id}: ["GET","POST"]
  • /_plugins/_notifications/features: ["GET"]
  • /_plugins/_observability/_local/stats: ["GET"]
  • /_plugins/_observability/object: ["GET","POST","DELETE"]
  • /_plugins/_observability/object/{objectId}: ["GET","PUT","DELETE"]
  • /_plugins/_performanceanalyzer/_agent/{redirectEndpoint}: ["GET"]
  • /_plugins/_performanceanalyzer/batch/cluster/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/batch/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/cluster/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/logging/cluster/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/logging/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/override/cluster/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/rca/cluster/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/rca/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/threadContentionMonitoring/cluster/config: ["GET","POST"]
  • /_plugins/_performanceanalyzer/threadContentionMonitoring/config: ["GET","POST"]
  • /_plugins/_ppl: ["POST"]
  • /_plugins/_ppl/_explain: ["POST"]
  • /_plugins/_ppl/stats: ["GET","POST"]
  • /_plugins/_query/_datasources: ["GET","PUT","POST"]
  • /_plugins/_query/_datasources/{dataSourceName}: ["GET","DELETE"]
  • /_plugins/_query/settings: ["PUT"]
  • /_plugins/_refresh_search_analyzers: ["POST"]
  • /_plugins/_refresh_search_analyzers/{index}: ["POST"]
  • /_plugins/_replication/_autofollow: ["POST","DELETE"]
  • /_plugins/_replication/autofollow_stats: ["GET"]
  • /_plugins/_replication/follower_stats: ["GET"]
  • /_plugins/_replication/leader_stats: ["GET"]
  • /_plugins/_replication/{index}/_pause: ["POST"]
  • /_plugins/_replication/{index}/_resume: ["POST"]
  • /_plugins/_replication/{index}/_start: ["PUT"]
  • /_plugins/_replication/{index}/_status: ["GET"]
  • /_plugins/_replication/{index}/_stop: ["POST"]
  • /_plugins/_replication/{index}/_update: ["PUT"]
  • /_plugins/_reports/_local/stats: ["GET"]
  • /_plugins/_reports/definition: ["POST"]
  • /_plugins/_reports/definition/{reportDefinitionId}: ["GET","PUT","DELETE"]
  • /_plugins/_reports/definitions: ["GET"]
  • /_plugins/_reports/instance/{reportInstanceId}: ["GET","POST"]
  • /_plugins/_reports/instances: ["GET"]
  • /_plugins/_reports/on_demand: ["PUT"]
  • /_plugins/_reports/on_demand/{reportDefinitionId}: ["POST"]
  • /_plugins/_rollup/jobs: ["GET","PUT"]
  • /_plugins/_rollup/jobs/{rollupID}: ["GET","PUT","DELETE","HEAD"]
  • /_plugins/_rollup/jobs/{rollupID}/_explain: ["GET"]
  • /_plugins/_rollup/jobs/{rollupID}/_start: ["POST"]
  • /_plugins/_rollup/jobs/{rollupID}/_stop: ["POST"]
  • /_plugins/_security/api/actiongroup/: ["GET"]
  • /_plugins/_security/api/actiongroup/{name}: ["GET","PUT","DELETE"]
  • /_plugins/_security/api/actiongroups/: ["PATCH"]
  • /_plugins/_security/api/allowlist: ["GET","PUT","PATCH"]
  • /_plugins/_security/api/audit/: ["GET","PATCH"]
  • /_plugins/_security/api/authtoken: ["POST"]
  • /_plugins/_security/api/cache: ["GET","PUT","POST"]
  • /_plugins/_security/api/internalusers/: ["GET","PATCH"]
  • /_plugins/_security/api/internalusers/{name}/authtoken: ["POST"]
  • /_plugins/_security/api/migrate: ["POST"]
  • /_plugins/_security/api/permissionsinfo: ["GET"]
  • /_plugins/_security/api/roles/: ["PATCH"]
  • /_plugins/_security/api/rolesmapping/: ["GET","PATCH"]
  • /_plugins/_security/api/ssl/{certType}/reloadcerts/: ["PUT"]
  • /_plugins/_security/api/tenancy/config: ["GET","PUT"]
  • /_plugins/_security/api/user/: ["GET"]
  • /_plugins/_security/api/user/{name}: ["GET","PUT","DELETE"]
  • /_plugins/_security/api/user/{name}/authtoken: ["POST"]
  • /_plugins/_security/api/validate: ["GET"]
  • /_plugins/_security/api/whitelist: ["GET","PUT","PATCH"]
  • /_plugins/_security/authinfo: ["GET","POST"]
  • /_plugins/_security/configupdate: ["PUT"]
  • /_plugins/_security/dashboardsinfo: ["GET","POST"]
  • /_plugins/_security/health: ["POST"]
  • /_plugins/_security/tenantinfo: ["GET","POST"]
  • /_plugins/_security/whoami: ["GET","POST"]
  • /_plugins/_security/whoamiprotected: ["GET"]
  • /_plugins/_security_analytics/alerts: ["GET"]
  • /_plugins/_security_analytics/correlation/rules: ["POST"]
  • /_plugins/_security_analytics/correlation/rules/_search: ["POST"]
  • /_plugins/_security_analytics/correlation/rules/{correlation_rule_id}: ["PUT","DELETE"]
  • /_plugins/_security_analytics/correlations: ["GET"]
  • /_plugins/_security_analytics/detectors: ["POST"]
  • /_plugins/_security_analytics/detectors/_search: ["POST"]
  • /_plugins/_security_analytics/detectors/{detector_id}: ["GET","PUT","DELETE"]
  • /_plugins/_security_analytics/detectors/{detector_id}/_acknowledge/alerts: ["POST"]
  • /_plugins/_security_analytics/findings/_search: ["GET"]
  • /_plugins/_security_analytics/findings/correlate: ["GET"]
  • /_plugins/_security_analytics/logtype: ["POST"]
  • /_plugins/_security_analytics/logtype/_search: ["GET","POST"]
  • /_plugins/_security_analytics/logtype/{custom_logtype_id}: ["PUT","DELETE"]
  • /_plugins/_security_analytics/mappings: ["GET","PUT","POST"]
  • /_plugins/_security_analytics/mappings/view: ["GET"]
  • /_plugins/_security_analytics/rules: ["POST"]
  • /_plugins/_security_analytics/rules/_search: ["POST"]
  • /_plugins/_security_analytics/rules/categories: ["GET"]
  • /_plugins/_security_analytics/rules/validate: ["POST"]
  • /_plugins/_security_analytics/rules/{ruleID}: ["PUT","DELETE"]
  • /_plugins/_sm/policies/: ["GET"]
  • /_plugins/_sm/policies/{policyName}: ["GET","PUT","POST","DELETE"]
  • /_plugins/_sm/policies/{policyName}/_explain: ["GET"]
  • /_plugins/_sm/policies/{policyName}/_start: ["POST"]
  • /_plugins/_sm/policies/{policyName}/_stop: ["POST"]
  • /_plugins/_sql: ["POST"]
  • /_plugins/_sql/_explain: ["POST"]
  • /_plugins/_sql/close: ["POST"]
  • /_plugins/_sql/stats: ["GET","POST"]
  • /_plugins/_transform: ["GET","PUT","POST"]
  • /_plugins/_transform/_preview: ["POST"]
  • /_plugins/_transform/{transformID}: ["GET","PUT","DELETE","HEAD"]
  • /_plugins/_transform/{transformID}/_explain: ["GET"]
  • /_plugins/_transform/{transformID}/_start: ["POST"]
  • /_plugins/_transform/{transformID}/_stop: ["POST"]
  • /_plugins/api: ["GET"]
  • /_remotestore/stats/{index}: ["GET"]
  • /_remotestore/stats/{index}/{shard_id}: ["GET"]
  • /_scripts/painless/_context: ["GET"]
  • /_search/pipeline: ["GET"]
  • /_search/pipeline/{id}: ["GET","PUT","DELETE"]
  • /favicon.ico: ["GET"]
  • /{index}/_alias: ["PUT","HEAD"]
  • /{index}/_aliases: ["PUT"]
  • /{index}/_flush/synced: ["GET","POST"]
  • /{index}/_mapping/: ["GET","PUT","POST"]
  • /{index}/_mappings/: ["GET","PUT","POST"]
  • /{index}/_opendistro/_asynchronous_search: ["POST"]
  • /{index}/_plugins/_asynchronous_search: ["POST"]
  • /{index}/_setting/{name}: ["GET"]
  • _plugins/geospatial/_upload/stats: ["GET"]
  • _plugins/geospatial/geojson/_upload: ["PUT","POST"]
  • _plugins/geospatial/ip2geo/datasource: ["GET"]
  • _plugins/geospatial/ip2geo/datasource/{name}: ["GET","PUT","DELETE"]
  • _plugins/geospatial/ip2geo/datasource/{name}/_settings: ["PUT"]
  • _remote/info: ["GET"]
@dblock dblock added enhancement New feature or request untriaged missing api Missing API or api parameter that needs to be added. and removed untriaged labels Dec 20, 2023
@dblock dblock removed the untriaged label Dec 20, 2023
@dblock dblock pinned this issue Dec 20, 2023
@nhtruong
Copy link
Collaborator

@dblock are they all plugins/extensions or do some of them going to be a core feature of OS?

@dblock
Copy link
Member Author

dblock commented Jan 11, 2024

@dblock are they all plugins/extensions or do some of them going to be a core feature of OS?

Lots in core. I updated the list above.

@nhtruong
Copy link
Collaborator

nhtruong commented Apr 11, 2024

@dblock are we doing both _plugins and _opendistro? We can totally DRY this. I'll need to update the validator to account for this. I'm also going to do this for knn namespace as an example.

@dblock
Copy link
Member Author

dblock commented Apr 12, 2024

@dblock are we doing both _plugins and _opendistro? We can totally DRY this. I'll need to update the validator to account for this. I'm also going to do this for knn namespace as an example.

I think _opendistro is there for backwards compat, we should not include it.

@dblock
Copy link
Member Author

dblock commented Apr 16, 2024

I should probably take that back, if we want to claim coverage we need some way to know about these and skip them. Maybe the right way would be to mark them deprecated? What's the correct way to do that @nhtruong?

@nhtruong
Copy link
Collaborator

I'm thinking of having a file named _opendistro.yaml that looks like this:

_reports/on_demand/{reportDefinitionId}: POST
_rollup/jobs: GET,PUT

It will be loaded up with all _plugins/... endpoints that have the _opendistro/... equivalents. The merger tool will take this file into account and generate the opendistro endpoints that are identical to the plugins counterparts but with deprecated and x-ignored set to true. This has a few benefits:

  • Save the contributors from having to fill-out these endpoints either manually or through any DRY mechanism we come up with (Since the opendistro version has additional flags, DRY'ing wont be simple)
  • Keep the spec folder tidy and free of hundreds of deprecated endpoints
  • Once these endpoints are removed from OS, we simply just remove said file and the logic in the merger.

@dblock
Copy link
Member Author

dblock commented Apr 17, 2024

@nhtruong This is a good plan. I would make sure this is expressed with data in the files in _opendistro, e.g. via some kind of ref: another API.

@nhtruong
Copy link
Collaborator

#257 will generate the _opendistro endpoint if the _plugins equivalents exist.

@dbwiddis
Copy link
Member

Can you add flow framework to the list in the original comment?

We're feeling a bit left out. ;)

(Yeah, we hadn't released yet when the list was drafted, which points out that you need a way to identify any new plugins and add them.)

@dblock
Copy link
Member Author

dblock commented Jul 19, 2024

(Yeah, we hadn't released yet when the list was drafted, which points out that you need a way to identify any new plugins and add them.)

We actually do. This little box in every PR compares all the available APIs in OpenSearch with the spec and tells you how many unspecified paths we have.

Screenshot 2024-07-19 at 5 36 48 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request missing api Missing API or api parameter that needs to be added.
Projects
None yet
Development

No branches or pull requests

3 participants