

# Supported operations and plugins in Amazon OpenSearch Serverless
<a name="serverless-genref"></a>

Amazon OpenSearch Serverless supports a variety of OpenSearch plugins, as well as a subset of the indexing, search, and metadata [API operations](https://opensearch.org/docs/latest/opensearch/rest-api/index/) available in OpenSearch. You can include the permissions in the left column of the table within [data access policies](serverless-data-access.md) in order to limit access to certain operations.

**Topics**
+ [Supported OpenSearch API operations and permissions](#serverless-operations)
+ [Supported OpenSearch plugins](#serverless-plugins)

## Supported OpenSearch API operations and permissions
<a name="serverless-operations"></a>

The following table lists the API operations that OpenSearch Serverless supports, along with their corresponding data access policy permissions:


| Data access policy permission | OpenSearch API operations | Description and caveats | 
| --- | --- | --- | 
| `aoss:CreateIndex` | PUT <index> | Create indexes. For more information, see [Create index](https://opensearch.org/docs/latest/api-reference/index-apis/create-index/). This permission also applies to creating indexes with the sample data on OpenSearch Dashboards.  | 
| `aoss:DescribeIndex` |  +  GET <index> <br />+  GET <index>/\_mapping <br />+  GET <index>/\_mappings <br />+  GET <index>/\_setting <br />+  GET <index>/\_setting/<setting> <br />+  GET <index>/\_settings <br />+  GET <index>/\_settings/<setting> <br />+  GET \_cat/indices <br />+  GET \_mapping <br />+  GET \_mappings <br />+  GET \_resolve/index/<index> <br />+  HEAD <index>   | Describe indexes. For more information, see the following resources:+  [Get index](https://opensearch.org/docs/latest/api-reference/index-apis/get-index/) <br />+  [Get a mapping](https://opensearch.org/docs/latest/field-types/index/#get-a-mapping) <br />+  [Get settings](https://opensearch.org/docs/latest/api-reference/index-apis/get-settings/) <br />+  [Index exists](https://opensearch.org/docs/latest/api-reference/index-apis/exists/) <br />+  [CAT indices](https://opensearch.org/docs/latest/api-reference/cat/cat-indices/) (Response does not include `health` or `status` fields.)  | 
| `aoss:WriteDocument` |  +  DELETE <index>/\_doc/<id> <br />+  POST <index>/\_bulk <br />+  POST <index>/\_create/<id> (for search collection types only) <br />+  POST <index>/\_doc <br />+  POST <index>/\_update/<id> (for search collection types only) <br />+  POST \_bulk <br />+  PUT <index>/\_create/<id> (for search collection types only) <br />+  PUT <index>/\_doc/<id> (for search collection types only)   | Write and update documents. For more information, see the following resources:+  [Bulk](https://opensearch.org/docs/latest/api-reference/document-apis/bulk/) <br />+  [Index data](https://opensearch.org/docs/latest/opensearch/index-data/)  Some operations are only allowed for collections of type `SEARCH`. For more information, see [Choosing a collection type](serverless-overview.md#serverless-usecase).  | 
| `aoss:ReadDocument` |  +  GET <index>/\_analyz <br />+  GET <index>/\_doc/<id> <br />+  GET <index>/\_explain/<id> <br />+  GET <index>/\_mget <br />+  GET <index>/\_source/<id> <br />+  GET <index>/\_count <br />+  GET <index>/\_field\_caps <br />+  GET <index>/\_msearch <br />+  GET <index>/\_rank\_eval <br />+  GET <index>/\_search <br />+  GET <index>/\_validate/<query> <br />+  GET \_analyze <br />+  GET \_field\_caps <br />+  GET \_mget <br />+  GET \_search <br />+  GET /\_search/point\_in\_time/\_all <br />+  HEAD <index>/\_doc/<id> <br />+  HEAD <index>/\_source/<id> <br />+  POST /\_plugins/\_sql <br />+  POST /\_plugins/\_ppl <br />+  POST /\_plugins/\_sql/\_explain <br />+  POST /\_plugins/\_ppl/\_explain <br />+  POST /\_plugins/\_ppl/\_close <br />+  POST <index>/\_analyze <br />+  POST /\_search/point\_in\_time <br />+  POST <index>/\_explain/<id> <br />+  POST <index>/\_count <br />+  POST <index>/\_field\_caps <br />+  POST <index>/\_rank\_eval <br />+  POST <index>/\_search <br />+  POST \_analyze <br />+  POST \_field\_caps <br />+  POST \_search <br />+  DELETE /\_search/point\_in\_time/\_all <br />+  DELETE /\_search/point\_in\_time   | Read documents. For more information, see the following resources:+  [Perform text analysis](https://opensearch.org/docs/latest/api-reference/analyze-apis/perform-text-analysis/) <br />+  [Get document](https://opensearch.org/docs/latest/api-reference/document-apis/get-documents/) <br />+  [Count](https://opensearch.org/docs/latest/api-reference/count/) <br />+  [Query DSL](https://opensearch.org/docs/latest/opensearch/query-dsl/index/) <br />+  [Ranking evaluation](https://opensearch.org/docs/latest/api-reference/rank-eval/) <br />+  [Analyze API](https://opensearch.org/docs/latest/api-reference/analyze-apis/index/) <br />+  [Explain](https://opensearch.org/docs/latest/api-reference/explain/) <br />+  [Point in Time](https://opensearch.org/docs/latest/search-plugins/searching-data/point-in-time) <br />+  [SQL and PPL](https://opensearch.org/docs/latest/search-plugins/sql/index/)  | 
| `aoss:DeleteIndex` | DELETE <target> | Delete indexes. For more information, see [Delete index](https://opensearch.org/docs/latest/api-reference/index-apis/delete-index/). | 
| `aoss:UpdateIndex` |  +  POST \_mapping <br />+  POST <index>/\_mapping/ <br />+  POST <index>/\_mappings/ <br />+  POST <index>/\_setting <br />+  POST <index>/\_settings <br />+  POST \_setting <br />+  POST \_settings <br />+  PUT \_mapping <br />+  PUT <index>/\_mapping <br />+  PUT <index>/\_mappings/ <br />+  PUT <index>/\_setting <br />+  PUT <index>/\_settings <br />+  PUT \_setting <br />+  PUT \_settings   | Update index settings. For more information, see the following resources:+  [Mapping](https://opensearch.org/docs/latest/opensearch/mappings/) <br />+  [Update settings](https://opensearch.org/docs/latest/api-reference/index-apis/update-settings/)  | 
| `aoss:CreateCollectionItems` |  +  POST \_aliases <br />+  POST /\_plugins/\_flow\_framework/workflow <br />+  \* POST /\_plugins/\_flow\_framework/workflow/<workflow\_id>/\_provision <br />+  PUT \_ingest/pipeline/<pipeline-id> <br />+  PUT \_search/pipeline/<pipeline-id>   |  +  Create index aliases, pipelines, and templates. For more information, see [Create aliases](https://opensearch.org/docs/latest/opensearch/index-alias/#create-aliases). <br />+  \* Provision or re-provision templates. The ML Commons Client and OpenSearch Serverless services manage dependent policies.  | 
| `aoss:DescribeCollectionItems` |  +  GET <index>/\_alias/<alias> <br />+  GET \_alias <br />+  GET \_alias/<alias> <br />+  GET \_cat/aliases <br />+  GET \_cat/templates <br />+  GET \_cat/templates/<template\_name> <br />+  GET \_component\_template <br />+  GET \_component\_template/<component-template> <br />+  GET \_index\_template <br />+  GET \_index\_template/<index-template> <br />+  GET \_ingest/pipeline/<pipeline-id> <br />+  GET \_ingest/pipeline/\_simulate <br />+  GET /\_plugins/\_flow\_framework/workflow/<workflow-id> <br />+  GET /\_plugins/\_flow\_framework/workflow/\_search <br />+  GET /\_plugins/\_flow\_framework/workflow/<workflow-id>/\_status <br />+  GET /\_plugins/\_flow\_framework/workflow/state/\_search <br />+  GET /\_plugins/\_flow\_framework/workflow/\_steps <br />+  GET /\_plugins/\_flow\_framework/workflow/\_step?workflow\_step=<step\_name> <br />+  GET \_search/pipeline/<pipeline-id> <br />+  HEAD \_alias/<alias> <br />+  HEAD \_component\_template/<component-template> <br />+  HEAD \_index\_template/<name> <br />+  HEAD <index>/\_alias/<alias> <br />+  POST \_ingest/pipeline/\_simulate <br />+  POST /\_plugins/\_flow\_framework/workflow/\_search <br />+  POST /\_plugins/\_flow\_framework/workflow/state/\_search   | Describes how to work with aliases, index and framework templates, and pipelines. For more information, see the following resources:+  [Manage aliases](https://opensearch.org/docs/latest/opensearch/index-alias/#manage-aliases) <br />+  [Index templates](https://opensearch.org/docs/latest/opensearch/index-templates/)  | 
| `aoss:UpdateCollectionItems` |  +  POST <index>/\_alias/<alias> <br />+  POST <index>/\_aliases/<alias> <br />+  POST \_component\_template/<component-template> <br />+  POST \_index\_template/<index-template> <br />+  \* POST /\_plugins/\_flow\_framework/workflow/<workflow\_id>/\_deprovision <br />+  PUT <index>/\_alias/<alias> <br />+  PUT <index>/\_aliases/<alias> <br />+  PUT \_component\_template/<component-template> <br />+  PUT \_index\_template/<index-template> <br />+  PUT /\_plugins/\_flow\_framework/workflow/<workflow\_id>   | Update aliases, index templates, and framework templates. For more information, see the following resources: +  [Index aliases](https://opensearch.org/docs/latest/opensearch/index-alias/) <br />+  [Index templates](https://opensearch.org/docs/latest/opensearch/index-templates/) \* The API to de-provision templates. The ML Commons Client and OpenSearch Serverless services manage dependent policies. | 
| `aoss:DeleteCollectionItems` |  +  DELETE <index>/\_alias/<alias> <br />+  DELETE \_component\_template/<component-template> <br />+  DELETE \_index\_template/<index-template> <br />+  DELETE <index>/\_aliases/<alias> <br />+  DELETE \_search/pipeline/<pipeline-id> <br />+  DELETE \_ingest/pipeline/<pipeline-id> <br />+  DELETE /\_plugins/\_flow\_framework/workflow/<workflow\_id>   | Delete aliases, index and framework templates, and pipelines. For more information, see the following resources:+  [Delete aliases](https://opensearch.org/docs/latest/opensearch/index-alias/#delete-aliases) <br />+  [Delete a template](https://opensearch.org/docs/latest/opensearch/index-templates/#delete-a-template)  | 
| `aoss:DescribeMLResource` |  +  GET /\_plugins/\_ml/models/<model\_id> <br />+  GET /\_plugins\_ml/models/\_search <br />+  GET /\_plugins/\_ml/model\_groups/<model\_group\_id> <br />+  GET /\_plugins/\_ml/model\_groups/\_search <br />+  GET /\_plugins/\_ml/connectors/<connector\_id> <br />+  GET /\_plugins/\_ml/connectors/\_search <br />+  GET /\_plugins/\_ml/profile/tasks/<task\_id> <br />+  POST /\_plugins/\_ml/models/\_search <br />+  POST /\_plugins/\_ml/model\_groups/\_search <br />+  POST /\_plugins/\_ml/connectors/\_search    | Describes GET and search APIs to retrieve information about models, and connectors.  | 
| `aoss:CreateMLResource` |  +  POST /\_plugins/\_ml/models/\_register <br />+  POST /\_plugins/\_ml/model\_groups/\_register <br />+  POST /\_plugins/\_ml/connectors/\_create   | Provides permission to create ML resources. | 
| `aoss:UpdateMLResource` |  +  PUT /\_plugins/\_ml/models/<model\_id> <br />+  POST /\_plugins/\_ml/models/<model\_id>/\_deploy <br />+  POST /\_plugins/\_ml/models/<model\_id>/\_undeploy <br />+  PUT /\_plugins/\_ml/model\_groups/<model\_group\_id> <br />+  PUT /\_plugins/\_ml/connectors/<connector\_id>   | Provides permission to update existing ML resources. | 
| `aoss:DeleteMLResource` |  +  DELETE /\_plugins/\_ml/models/<model\_id> <br />+  DELETE \_plugins/\_ml/model\_groups/<model\_group\_id> <br />+  DELETE /\_plugins/\_ml/connectors/<connector\_id> <br />+  DELETE /\_plugins/\_ml/tasks/<task\_id>   | Provides permission to delete ML resources. | 
| `aoss:ExecuteMLResource` |  +  POST /\_plugins/\_ml/models/<model\_id>/\_predict   | Provides permission to run models. | 
| `aoss:CreateAgent` |  +  POST /\_plugins/\_ml/agents/\_register   | Provides permission to create agents. | 
| `aoss:DescribeAgent` |  +  GET /\_plugins/\_ml/agents/<agent\_id>   | Provides permission to retrieve agent information. | 
| `aoss:UpdateAgent` |  +  PUT /\_plugins/\_ml/agents/<agent\_id>   | Provides permission to update existing agents. | 
| `aoss:DeleteAgent` |  +  DELETE /\_plugins/\_ml/agents/<agent\_id>   | Provides permission to delete agents. | 
| `aoss:InvokeAgent` |  +  POST /\_plugins/\_ml/agents/<agent\_id>/\_execute   | Provides permission to invoke (execute) agents. | 
| `aoss:SearchAgents` |  +  POST /\_plugins/\_ml/agents/\_search   | Provides permission to search for agents. | 

## Supported OpenSearch plugins
<a name="serverless-plugins"></a>

OpenSearch Serverless collections come prepackaged with the following plugins from the OpenSearch community. Serverless automatically deploys and manages plugins for you.

**Analysis plugins**
+  [ICU Analysis](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/analysis-icu) 
+  [Japanese (kuromoji) Analysis](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/analysis-kuromoji)
+  [Korean (Nori) Analysis](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/analysis-nori) 
+  [Phonetic Analysis](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/analysis-phonetic) 
+  [Smart Chinese Analysis](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/analysis-smartcn) 
+  [Stempel Polish Analysis](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/analysis-stempel)
+  [Ukrainian Analysis](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/analysis-ukrainian)

**Mapper plugins**
+  [Mapper Size](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/mapper-size) 
+  [Mapper Murmur3](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/mapper-murmur3) 
+  [Mapper Annotated Text](https://github.com/opensearch-project/OpenSearch/tree/main/plugins/mapper-annotated-text)

**Scripting plugins**
+  [Painless](https://opensearch.org/docs/latest/search-plugins/search-pipelines/index/) (inline scripts in search queries and aggregations only; stored scripts and the `/_scripts` endpoint are not supported in OpenSearch Serverless)
+  [Expression](https://opensearch.org/docs/latest/data-prepper/pipelines/expression-syntax/) 
+  [Mustache](https://mustache.github.io/mustache.5.html)

In addition, OpenSearch Serverless includes all plugins that ship as modules. 