REST API Reference

Meshery’s APIs

Each of Meshery’s APIs are subject to the following authentication and authorization system. Meshery requires a valid token in order to allow clients to invoke its APIs.

Authentication Requests to any of the API endpoints must be authenticated and include a valid JWT access token in the HTTP headers. Type of authentication is determined by the selected Providers. Use of the Local Provider, "None", puts Meshery into single-user mode and does not require authentication.

What are authentication tokens?

Meshery authentication tokens allow users or systems to authenticate with Meshery Server via either its two clients, Meshery CLI and Meshery UI, or its two APIs: REST or GraphQL.

Meshery's authentication token system provide secure access to Meshery's powerful management features.

How to get your token

There are two ways to get your authentication token:

Meshery UI Using Meshery UI, you can get a copy of your authentication token by following these steps:
1. Log into Meshery by selecting your identity provider of choice (typically found at http:\\{meshery-server}:9081/provider)
2. Navigate to your user's avatar in the upper righthand corner and select "Get Token" from the dropdown of profile section: Meshery Dashboard
Meshery CLI
Using Meshery CLI, you can get a copy of your authentication token by executing this command:

  
mesheryctl system login


In order to use this command, you must have a web browser available on your system (this command cannot be executed on a headless system).

How to access Meshery’s REST API

Example using curl
Using curl, you can access Meshery's REST API by executing this command:

  
curl --location 'localhost:9081/api/<endpoint>' \ --header 'meshery-token: <yourToken>\ --header 'Cookie: meshery-provider=Meshery; meshery.layer5.io_ref=/;token=<yourToken>


Self-generated documentation based on Meshery’s OpenAPI specification for it’s REST API.

Meshery’s REST API can be explored interactively using the Swagger UI Playground.

Endpoints

/api/application

GET Handle GET request for Application Files

Description
Fetches the list of all applications saved by the current user ```?updated_after=``` timestamp should be of the format "YYYY-MM-DD HH:MM:SS" ```?order={field}``` orders on the passed field ```?search=``` A string matching is done on the specified application name ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10
Responses

200 - Returns all meshery applications

/api/application/deploy

POST Handle POST request for Application File Deploy

Description
Deploy an attached application file with the request
Parameters
Name Located in Description Type
Upload Yaml/Yml File formData File
Responses

200 - Returns the response of the application files

DELETE Handle DELETE request for Application File Deploy

Description
Delete a deployed application file with the request
Responses

200

/api/application/download/{id}/{sourcetype}

GET Handle GET request for Meshery Application with of source content

Description
Get the application source-content
Parameters
Name Located in Description Type
Upload Yaml/Yml File formData File
Responses

/api/application/types

GET Handle GET request for Meshery Application types

Description
Get application file types
Responses

200 - Returns Meshery application types

/api/application/{id}

DELETE Handle Delete for a Meshery Application File

Description
Deletes a meshery application file with ID: id
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200

/api/application/{sourcetype}

POST Handle POST request for Application Files

Description
Updates the design for the provided application
Responses

200 - Fetches a single Meshery Application

/api/content/design/share

POST Handle POST request for Sharing content

Description
Used to share designs with others
Responses

200

403

500

/api/content/filter/share

POST Handle POST request for Sharing content

Description
Used to share filters with others
Responses

403

500

200

/api/environments

GET Handles GET for all Environments

Description
# Environments can be further filtered through query parameters ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 20 ```?search={environments_name}``` If search is non empty then a greedy search is performed ```?orgID={orgid}``` orgID is used to retrieve environments belonging to a particular org *required* ```?filter={condition}```
Responses

200 - Returns all environements

POST Handle POST request for creating a new environment

Description
Creates a new environment
Responses

201

/api/environments/{environmentID}/connections

GET Handle GET for all Connections of Environment

Description
```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 20 ```?search={environments_name}``` If search is non empty then a greedy search is performed ```?filter={{"assigned": true/false, "deleted_at": true/false}}``` defaults to assigned: false, deleted_at: false Returns all connections of environment
Responses

200 - Returns all connections

/api/environments/{environmentID}/connections/{connectionID}

POST Handle POST to add Connection in Environment by ID

Description
Returns Environment connection mapping info
Responses

200 - Returns environment

DELETE Handle DELETE to remove Connection from Environment by ID

Description
Removes connection from environment
Responses

201

/api/environments/{id}

GET Handle GET for Environment info by ID

Description
```?orgID={orgid}``` orgID is used to retrieve environments belonging to a particular org Returns Environment info
Responses

200 - Returns environment

PUT Handle PUT request for updating a environment

Description
Updates a environment
Responses

200 - Returns environment

DELETE

Description
Handle DELETE for Environment based on ID
Responses

201

/api/events

GET Handle GET request for events.

Description
Listens for events across all of Meshery's components like adapters and server, streaming them to the UI via Server Side Events This API call never terminates and establishes a persistent keep-alive connection over which `EventsResponse`s are pushed.
Responses

200

/api/events/bulk

DELETE Handle DELETE request to delete events in bulk.

Description
Bulk delete events associated with the ids.
Responses

200

/api/events/status

PUT Handle PUT request to update event status in bulk.

Description
Bulk update status for the events associated with the ids.
Responses

200 - Returns event

/api/events/status/{id}

PUT Handle PUT request to update event status.

Description
Updates event status for the event associated with the id.
Responses

200 - Returns event

/api/events/{id}

DELETE Handle DELETE request for events.

Description
Deletes event associated with the id.
Responses

200

/api/filter

GET Handle GET request for filters

Description
# Returns the list of all the filters saved by the current user ```?order={field}``` orders on the passed field ```?search=``` A string matching is done on the specified filter name ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10 ```?visibility={[visibility]}``` Default visibility is public + private; Mulitple visibility filters can be passed as an array Eg: ```?visibility=["public", "published"]``` will return public and published filters
Responses

200 - Returns all meshery filters

POST Handle POST requests for Meshery Filters

Description
Used to save/update a Meshery Filter
Responses

200 - Returns a single meshery filter

/api/filter/catalog

GET Handle GET request for catalog filters

Description
# Filters can be further filtered through query parameter ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10. ```?search={filtername}``` If search is non empty then a greedy search is performed
Responses

200 - Returns all meshery filters

/api/filter/catalog/publish

POST Handle Publish for a Meshery Filter

Description
Publishes filter to Meshery Catalog by setting visibility to published and setting catalog data
Responses

202

/api/filter/catalog/unpublish

DELETE Handle UnPublish for a Meshery Filter

Description
Unpublishes filter from Meshery Catalog by setting visibility to private and removing catalog data from website
Responses

200

/api/filter/clone/{id}

POST Handle Clone for a Meshery Filter

Description
Creates a local copy of a published filter with id: id
Responses

200

/api/filter/deploy

POST Handle POST request for Filter File Deploy

Description
Deploy an attached filter file with the request
Responses

200 - Returns the response of the Filter files

DELETE Handle DELETE request for Filter File Deploy

Description
Delete a deployed filter file with the request
Responses

200

/api/filter/file/{id}

GET Handle GET request for filter file with given id

Description
Returns the Meshery Filter file saved by the current user with the given id
Responses

200 - Returns a single meshery filter

/api/filter/{id}

GET Handle GET request for a Meshery Filter

Description
Fetches the Meshery Filter with the given id
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200 - Returns a single meshery filter

DELETE Handle Delete for a Meshery Filter

Description
Deletes a meshery filter with ID: id
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200

/api/identity/orgs

GET Handles GET for all Organizations

Description
```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 20 ```?search={environments_name}``` If search is non empty then a greedy search is performed ```?filter={condition}```
Responses

200 - Returns all orgs

/api/identity/users

GET Handles GET for all Users

Description
# Users can be further filtered through query parameters ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 20 ```?search={username|email|first_name|last_name}``` If search is non empty then a greedy search is performed ```?filter={condition}```
Parameters
Name Located in Description Type
page query Integer
pageSize query Integer
search query String
order query in: order String
filter query in: filter String
Responses

200 - Returns all users info

/api/integrations/connections

GET Handle GET request for getting all connections

Description
```?order={field}``` orders on the passed field ```?search={}``` If search is non empty then a greedy search is performed ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10 ```?filter={filter}``` Filter connections with type or sub_type, eg /api/integrations/connections?filter=type%20platform or /api/integrations/connections?filter=sub_type%20management ```?status={status}``` Status takes array as param to filter connections based on status, eg /api/integrations/connections?status=["connected", "deleted"] ```?kind={kind}``` Kind takes array as param to filter connections based on kind, eg /api/integrations/connections?kind=["meshery", "kubernetes"]
Responses

200 - Returns all connections

POST Handle POST request for creating a new connection

Description
Creates a new connection
Responses

201

/api/integrations/connections/status

GET Handle GET request for getting all connections status

Description
Get all connections status
Responses

200 - Returns all connections Status

/api/integrations/connections/{connectionId}

PUT Handle PUT request for updating an existing connection by connection ID

Description
Updates existing connection using ID
Responses

200 - Returns a single connection

/api/integrations/connections/{connectionKind}

GET Handle GET request for getting all connections for a given kind.

Description
```?order={field}``` orders on the passed field ```?search={}``` If search is non empty then a greedy search is performed ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10
Responses

200

PUT Handle PUT request for updating an existing connection

Description
Updates existing connection
Responses

200

/api/meshmodel/components/register

POST Handle POST request for registering meshmodel components.

Description
Validate the given value with the given schema
Responses

200

/api/meshmodel/generate

POST Handle POST request for component generation

Description
Generates Meshery Components for the given payload
Responses

200

/api/meshmodel/validate

POST Handle POST request for validate

Description
Validate the given value with the given schema
Responses

200

/api/meshmodels/categories

GET Handle GET request for getting all meshmodel categories

Description
```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?search={categoryName}``` If search is non empty then a greedy search is performed ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Returns meshmodel categories

/api/meshmodels/categories/{category}

GET Handle GET request for getting all meshmodel categories of a given name

Description
```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?search={[true/false]}``` If search is true then a greedy search is performed
Responses

200 - Returns meshmodel categories

/api/meshmodels/categories/{category}/components

GET Handle GET request for getting meshmodel components of a specific model and category.

Description
# Components can be further filtered through query parameter ```?version={version}``` ```?trim={[true]}``` When trim is set to true, the underlying schemas are not returned for entities ```?apiVersion={apiVersion}``` If apiVersion is unspecified then all models are returned ```?order={field}``` orders on the passed field ```?search={componentname}``` If search is non empty then a greedy search is performed ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned.
Responses

200 - Return meshmoddel components with the count of duplicates

/api/meshmodels/categories/{category}/components/{name}

GET Handle GET request for getting meshmodel components of a specific type category.

Description
Example: ```/api/meshmodels/categories/Orchestration``` and Management/components/Namespace Components can be further filtered through query parameter ```?model={model}``` If model is unspecified then all models are returned ```?version={version}``` If version is unspecified then all model versions are returned ```?apiVersion={apiVersion}``` If apiVersion is unspecified then all components are returned ```?order={field}``` orders on the passed field ```?search={[true/false]}``` If search is true then a greedy search is performed ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned.
Responses

200 - Return meshmoddel components with the count of duplicates

/api/meshmodels/categories/{category}/models

GET Handle GET request for getting all meshmodel models for a given category. The component type/model name should be lowercase like "kubernetes", "istio"

Description
```?version={version}``` If version is unspecified then all models are returned ```?order={field}``` orders on the passed field ```?search={modelname}``` If search is non empty then a greedy search is performed ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` When this query parameter is "true", only models with the "isAnnotation" property set to true are returned. When this query parameter is "false", all models except those considered to be annotation models are returned. Any other value of the query parameter results in both annoations as well as non-annotation models being returned.
Responses

200 - Return meshmodel models with the count of duplicates

/api/meshmodels/categories/{category}/models/{model}

GET Handle GET request for getting all meshmodel models for a given category. The component type/model name should be lowercase like "kubernetes", "istio"

Description
```?version={version}``` If version is unspecified then all models are returned ```?order={field}``` orders on the passed field ```?search={[true/false]}``` If search is true then a greedy search is performed ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Return meshmodel models with the count of duplicates

/api/meshmodels/categories/{category}/models/{model}/components

GET Handle GET request for getting meshmodel components of a specific model and category. The component type/model name should be lowercase like "kubernetes", "istio"

Description
Example: ```/api/meshmodels/categories/Orchestration``` and Management/models/kubernetes/components Components can be further filtered through query parameter ```?version={version}``` ```?trim={[true]}``` When trim is set to true, the underlying schemas are not returned for entities ```?apiVersion={apiVersion}``` If apiVersion is unspecified then all models are returned ```?order={field}``` orders on the passed field ```?search={componentname}``` If search is non empty then a greedy search is performed ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned.
Responses

200 - Return meshmoddel components with the count of duplicates

/api/meshmodels/categories/{category}/models/{model}/components/{name}

GET Handle GET request for getting meshmodel components of a specific type by model and category.

Description
Example: ```/api/meshmodels/categories/Orchestration``` and Management/models/kubernetes/components/Namespace Components can be further filtered through query parameter ```?version={version}``` If version is unspecified then all model versions are returned ```?apiVersion={apiVersion}``` If apiVersion is unspecified then all components are returned ```?order={field}``` orders on the passed field ```?search={[true/false]}``` If search is true then a greedy search is performed ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned.
Responses

200 - Return meshmoddel components with the count of duplicates

/api/meshmodels/components

GET Handle GET request for getting meshmodel components across all models and categories

Description
# Components can be further filtered through query parameter ```?version={version}``` ```?apiVersion={apiVersion}``` If apiVersion is unspecified then all models are returned ```?order={field}``` orders on the passed field ```?search={componentname}``` If search is non empty then a greedy search is performed ```?trim={[true]}``` When trim is set to true, the underlying schemas are not returned for entities ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned.
Responses

200 - Return meshmoddel components with the count of duplicates

/api/meshmodels/components/{name}

GET Handle GET request for getting meshmodel components of a specific type by name across all models and categories

Description
Example: ```/api/meshmodels/components/Namespace``` Components can be further filtered through query parameter ```?model={model}``` If model is unspecified then all models are returned ```?version={version}``` If version is unspecified then all model versions are returned ```?apiVersion={apiVersion}``` If apiVersion is unspecified then all components are returned ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?trim={[true]}``` When trim is set to true, the underlying schemas are not returned for entities ```?search={[true/false]}``` If search is true then a greedy search is performed ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned.
Responses

200 - Return meshmoddel components with the count of duplicates

/api/meshmodels/models

GET Handle GET request for getting all meshmodel models

Description
# Returns a list of registered models across all categories ```?version={version}``` If version is unspecified then all models are returned ```?order={field}``` orders on the passed field ```?search={modelname}``` If search is non empty then a greedy search is performed ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Return meshmodel models with the count of duplicates

/api/meshmodels/models/{model}

GET Handle GET request for getting all meshmodel models. The component type/model name should be lowercase like "kubernetes", "istio"

Description
# Returns a list of registered models across all categories ```?version={version}``` If version is unspecified then all models are returned ```?order={field}``` orders on the passed field ```?search={[true/false]}``` If search is true then a greedy search is performed ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Return meshmodel models with the count of duplicates

/api/meshmodels/models/{model}/components

GET Handle GET request for getting meshmodel components of a specific model. The component type/model name should be lowercase like "kubernetes", "istio"

Description
Example: ```/api/meshmodels/models/kubernetes/components``` Components can be further filtered through query parameter ```?version={version}``` ```?trim={[true]}``` When trim is set to true, the underlying schemas are not returned for entities ```?apiVersion={apiVersion}``` If apiVersion is unspecified then all models are returned ```?search={componentname}``` If search is non empty then a greedy search is performed ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned.
Responses

200 - Return meshmoddel components with the count of duplicates

/api/meshmodels/models/{model}/components/{name}

GET Handle GET request for getting meshmodel components of a specific model.

Description
Example: ```/api/meshmodels/models/kubernetes/components/Namespace``` Components can be further filtered through query parameter ```?version={version}``` If version is unspecified then all model versions are returned ```?apiVersion={apiVersion}``` If apiVersion is unspecified then all components are returned ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?search={[true/false]}``` If search is true then a greedy search is performed ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned. returned.
Responses

200 - Return meshmoddel components with the count of duplicates

/api/meshmodels/models/{model}/policies/

GET Handle GET request for getting meshmodel policies of a specific model by name.

Description
Example: ```/api/meshmodels/models/kubernetes/policies``` ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?search={[true/false]}``` If search is true then a greedy search is performed ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Returns meshmodel policies

/api/meshmodels/models/{model}/policies/{name}

GET Handle GET request for getting meshmodel policies of a specific model by name.

Description
Example: ```/api/meshmodels/models/kubernetes/policies/{name}``` ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?search={[true/false]}``` If search is true then a greedy search is performed ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Returns meshmodel policies

/api/meshmodels/models/{model}/relationships

GET Handle GET request for getting meshmodel relationships of a specific model

Description
Example: ```/api/meshmodel/model/kubernetes/relationship``` # Relationships can be further filtered through query parameter ```?version={version}``` ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Returns meshmodel relationships

/api/meshmodels/models/{model}/relationships/{name}

GET Handle GET request for getting meshmodel relationships of a specific model by name.

Description
Example: ```/api/meshmodels/models/kubernetes/relationships/Edge``` # Relationships can be further filtered through query parameter ```?version={version}``` ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?search={[true/false]}``` If search is true then a greedy search is performed ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Returns meshmodel relationships

/api/meshmodels/registrants

GET Handle GET request for getting all meshmodel registrants

Description
# Returns a list of registrants and summary count of its models, components, and relationships ```?page={pagenumber}``` Default page number is 1 ```?order={field}``` orders on the passed field ```?search={Hostname}``` Gets host by the name ```?sort={[asc/desc]}``` Default behavior is asc ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Returns meshmodel registrants

/api/meshmodels/relationships

GET Handle GET request for getting all meshmodel relationships

Description
# Relationships can be further filtered through query parameter ```?version={version}``` ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Returns meshmodel relationships

/api/meshmodels/relationships/evaluate

POST

Description
Handle POST request for evaluating relationships in the provided design file by running a set of provided evaluation queries on the design file
Responses

/api/pattern

GET Handle GET request for patterns

Description
Returns the list of all the patterns saved by the current user This will return all the patterns with their details ```?order={field}``` orders on the passed field ```?search=``` A string matching is done on the specified design name ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 10 ```?visibility={[visibility]}``` Default visibility is public + private; Mulitple visibility filters can be passed as an array Eg: ```?visibility=["public", "published"]``` will return public and published designs
Responses

200 - Returns all meshery patterns

POST Handle POST requests for patterns

Description
Edit/update a meshery pattern
Responses

200 - Returns a single meshery pattern

/api/pattern/catalog

GET Handle GET request for catalog patterns

Description
# Patterns can be further filtered through query parameter ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10. ```?search={patternname}``` If search is non empty then a greedy search is performed
Responses

200 - Returns all meshery patterns

/api/pattern/catalog/publish

POST Handle Publish for a Meshery Pattern

Description
Publishes pattern to Meshery Catalog by setting visibility to published and setting catalog data
Responses

202

/api/pattern/catalog/unpublish

DELETE Handle Publish for a Meshery Pattern

Description
Unpublishes pattern from Meshery Catalog by setting visibility to private and removing catalog data from website
Responses

200

/api/pattern/clone/{id}

POST Handle Clone for a Meshery Pattern

Description
Creates a local copy of a published pattern with id: id
Responses

200

/api/pattern/deploy

POST Handle POST request for Pattern Deploy

Description
Deploy an attached pattern with the request
Parameters
Name Located in Description Type
Upload Yaml/Yml File formData File
Responses

200

DELETE Handle DELETE request for Pattern Deploy

Description
Delete a deployed pattern with the request
Responses

200

/api/pattern/download/{id}

GET Handle GET for a Meshery Pattern

Description
Fetches the pattern with the given id
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200 - Returns a single meshery pattern

/api/pattern/download/{id}/{sourcetype}

GET Handle GET request for Meshery Patterns with of source content

Description
Get the pattern source-content
Responses

200 - Returns Design Source Content

/api/pattern/types

GET Handle GET request for Meshery Pattern types

Description
Get pattern file types
Responses

200 - Returns Meshery application types

/api/pattern/{id}

GET Handle GET for a Meshery Pattern

Description
Fetches the pattern with the given id
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200 - Returns a single meshery pattern

DELETE Handle Delete for multiple Meshery Patterns

Description
DeleteMultiMesheryPatternsHandler deletes patterns with the given ids
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200

/api/pattern/{sourcetype}

POST Handle POST request for Pattern Files

Description
Creates a new Pattern with source-content
Responses

200 - Returns a single meshery pattern

PUT Handle PUT request for Meshery Pattern with the given payload

Description
Updates the pattern with the given payload
Responses

200 - Returns a single meshery pattern

/api/patterns

DELETE Handle Delete for multiple Meshery Patterns

Description
DeleteMultiMesheryPatternsHandler deletes patterns with the given ids
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200

/api/perf/profile

GET Handle GET request to run a test

Description
Runs the load test with the given parameters
Parameters
Name Located in Description Type
Query query Unknown
Body body Unknown
Responses

200

/api/perf/profile/result

GET Handles GET requests for perf results

Description
# Results can be further filtered through query parameter ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10 ```?search={}``` If search is non empty then a greedy search is performed ```?from={date}``` Date must be in yyyy-mm-dd format ```?to={date}``` Date must be in yyyy-mm-dd format
Responses

200 - Returns all performance results

/api/perf/profile/result/{id}

GET Handles GET requests for perf result

Description
Returns an individual result from provider
Responses

200 - Returns Single test result

/api/provider

GET Handle GET request for the choice of provider

Description
Update the choice of provider in system
Parameters
Name Located in Description Type
provider query String
Responses

200

/api/provider/capabilities

GET Handle GET requests for Provider

Description
Returns the capabilities.json for the provider
Responses

200

/api/provider/extension

GET Handle GET request for React Components

Description
handles the requests to serve react components from the provider package
Responses

200

/api/providers

GET Handle GET request for list of providers

Description
Returns the available list of providers
Responses

200 - Returns a list of available providers

/api/schema/resource/{resourceName}

/api/smi/results

GET Handle GET request for the results of all the smi conformance tests

Description
# Results can be further filtered through query parameter ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10 ```?search={status|mesh_version|mesh_name|date|id}``` If search is non empty then a greedy search is performed
Responses

200 - Returns SMI results

/api/system/adapter/manage

POST Handle POST requests to persist adapter config

Description
Used to persist adapter config
Parameters
Name Located in Description Type
meshLocationURL body Unknown
Responses

200 - Returns all the meshery adapters

DELETE Handle DELETE requests to delete adapter config

Description
Used to delete adapter configuration
Parameters
Name Located in Description Type
adapter query String
Responses

200

/api/system/adapter/operation

POST Handle POST requests for Adapter Operations

Description
Used to send operations to the adapters
Parameters
Name Located in Description Type
adapter query String
query query String
customBody query String
namespace query String
deleteOp query String
Responses

200

/api/system/adapters

GET Handle GET request for adapters

Description
Fetches and returns all the adapters and ping adapters
Parameters
Name Located in Description Type
adapter query String
Responses

200 - Return all the adapters

/api/system/adapters/available

GET Handle GET request for available adapters

Description
Fetches and returns all the adapters available for deployment
Responses

200 - Return all the adapters

/api/system/database

GET Handle GET request for getting summary about the system database.

Description
# Tables can be further filtered through query parameter ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 10. To return all results: ```pagesize=all``` ```?search={tablename}``` If search is non empty then a greedy search is performed
Responses

200 - Returns database summary

/api/system/database/reset

DELETE Reset the system database to its initial state.

Description
This endpoint resets the system database to its initial state by performing the following steps: Creates an archive of the current database contents. Drops all existing tables in the database. Applies auto migration to recreate the necessary tables.
Responses

200

500

/api/system/kubernetes

POST Handle POST request for Kubernetes Config

Description
Used to add kubernetes config to System
Responses

200 - Returns saved kubernetes config

DELETE Handle DELETE request for Kubernetes Config

Description
Used to delete kubernetes config to System
Responses

200

/api/system/kubernetes/contexts

GET Handle GET request for all kubernetes contexts.

Description
# Contexts can be further filtered through query parameter ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10 ```?search={contextname}``` If search is non empty then a greedy search is performed
Responses

200 - Returns K8s contexts

POST Handle POST requests for Kubernetes Context list

Description
Returns the context list for a given k8s config
Responses

200 - Returns kubernetes context list

/api/system/kubernetes/ping?connection_id={id}

GET Handle GET request for Kubernetes ping

Description
Fetches server version to simulate ping
Responses

200

/api/system/kubernetes/register

POST Handle registration request for Kubernetes components

Description
Used to register Kubernetes components to Meshery from a kubeconfig file
Responses

202

400

500

/api/system/meshsync/grafana

GET Handle GET request for mesh-sync grafana

Description
Fetches Prometheus and Grafana
Responses

200 - Returns a map for v1 services

/api/system/meshsync/prometheus

GET Handle GET request for fetching prometheus

Description
Fetches Prometheus
Responses

200 - Returns a map for v1 services

/api/system/meshsync/resources

GET Handle GET request for meshsync discovered resources

Description
```?apiVersion={apiVersion}``` If apiVersion is unspecified then all models are returned ```?search={componentname}``` If search is non empty then a greedy search is performed ```?order={field}``` orders on the passed field ```?sort={[asc/desc]}``` Default behavior is asc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotation={annotaion}``` annotation is a boolean value. If true then annotations are returned ```?labels={labels}``` labels is a boolean value. If true then labels are returned ```?spec={spec}``` spec is a boolean value. If true then spec is returned ```?status={status}``` status is a boolean value. If true then status is returned ```?clusterId={[clusterId]}``` clusterId is array of string values. Required.
Responses

200 - Returns MeshSync resources

/api/system/meshsync/resources/kinds

GET Handle GET request for meshsync discovered resources kinds

Description
```?clusterId={[clusterId]}``` clusterId is array of string values. Required. ```?page = {page-number}``` Default page number is 1 ```?pagesize = {pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?search = {componentname}``` If search is non empty then a greedy search is performed ```?order = {field}``` orders on the passed field
Responses

200 - Returns MeshSync Resources Kinds

/api/system/sync

GET Handle GET request for config sync

Description
Used to send session data to the UI for initial sync
Responses

200 - Returns User Load Test Preferencee

/api/system/version

GET Handle GET request for system/server version

Description
Returns the running Meshery version
Responses

200 - Returns Meshery version

/api/telemetry/metrics/board_import

POST Handle POST request for Prometheus board import

Description
Used for importing Grafana board for Prometheus
Responses

200 - Response for prometheus board import

/api/telemetry/metrics/boards/{connectionID}

POST Handle POST request for Prometheus board

Description
Used to persist selected board and panels
Parameters
Name Located in Description Type
Body body Unknown
Responses

200

/api/telemetry/metrics/config

GET Handle GET for Prometheus configuration

Description
Used for fetching Prometheus configuration
Responses

200 - Returns prometheus configuration

POST Handle POST for Prometheus configuration

Description
Used for persisting Prometheus configuration
Parameters
Name Located in Description Type
prometheusURL body Unknown
Responses

200

DELETE Handle DELETE for Prometheus configuration

Description
Used for deleting Prometheus configuration
Responses

200

/api/telemetry/metrics/grafana/boards/{connectionID}

GET Handle GET request for Grafana boards

Description
Used for fetching Grafana boards and panels
Parameters
Name Located in Description Type
dashboardSearch query String
Responses

200 - Returns Grafana boards and panels

POST Handle POST request for Grafana boards

Description
Used for persist Grafana boards and panel selections
Responses

200

/api/telemetry/metrics/grafana/config

GET Handle GET request for Grafana configuration

Description
Used for fetching Grafana configuration
Responses

200 - Returns Grafana configs

POST Handle POST request for Grafana configuration

Description
Used for persisting Grafana configuration
Parameters
Name Located in Description Type
Body body Unknown
Responses

200

DELETE Handle DELETE request for Grafana configuration

Description
Used for Delete Grafana configuration
Responses

200

/api/telemetry/metrics/grafana/ping/{connectionID}

GET Handle GET request for Grafana ping

Description
Used to initiate a Grafana ping
Responses

200

/api/telemetry/metrics/grafana/query/{connectionID}

GET Handle GET request for Grafana queries

Description
Used for handling Grafana queries
Responses

200

/api/telemetry/metrics/grafana/scan

GET Handle GET request for Grafana

Description
Fetches and returns Grafana
Responses

200 - Returns a map for v1 services

/api/telemetry/metrics/ping/{connectionID}

GET Handle GET request for Prometheus Ping

Description
Used to ping prometheus
Responses

200

/api/telemetry/metrics/query/{connectionID}

GET Handle GET request for Prometheus Query

Description
Used to prometheus queries
Responses

200

/api/telemetry/metrics/static-board

GET Handle GET request for Prometheus static board

Description
Used to fetch the static board
Responses

200 - Returns Prometheus static board

/api/user/login

GET Handlers GET request for User login

Description
Redirects user for auth or issues session
Responses

200

/api/user/logout

GET Handlers GET request for User logout

Description
Redirects user for auth or issues session
Responses

200

/api/user/performance/profiles

GET Handle GET requests for performance profiles

Description
Returns the list of all the performance profiles saved by the current user ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10 ```?search={profilename}``` If search is non empty then a greedy search is performed
Responses

200 - Returns all the performance profiles

POST Handle POST requests for saving performance profile

Description
Save performance profile using the current provider's persistence mechanism
Parameters
Name Located in Description Type
Body body Unknown
Responses

200 - Returns a single performance profile

/api/user/performance/profiles/results

GET Handles GET requests for performance results

Description
# Results can be further filtered through query parameter ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10 ```?search={}``` If search is non empty then a greedy search is performed ```?from={date}``` Date must be in yyyy-mm-dd format ```?to={date}``` Date must be in yyyy-mm-dd format
Responses

200 - Returns all performance results

/api/user/performance/profiles/{id}

GET Handle GET requests for performance results of a profile

Description
Returns single performance profile with the given id
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200 - Returns a single performance profile

DELETE Handle Delete requests for performance profiles

Description
Deletes a performance profile with the given id
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200

/api/user/performance/profiles/{id}/results

GET Handle GET request for results of a profile

Description
Fetches pages of results from provider for the given id ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10 ```?search={result_name|mesh|url}``` If search is non empty then a greedy search is performed
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200 - Returns all performance results

/api/user/performance/profiles/{id}/run

GET Handle GET request to run a performance test

Description
Runs the load test with the given parameters
Parameters
Name Located in Description Type
Body query Unknown
Responses

200

/api/user/prefs

GET Handle GET Requests for User Load Test Preferences

Description
Returns User Load Test Preferences
Responses

200 - Returns User Load Test Preferencee

POST Handle POST Requests for User Load Test Preferences

Description
Updates User Load Test Preferences
Responses

200 - Returns User Load Test Preferencee

/api/user/prefs/perf

POST Handle POST request for load test preferences

Description
Used for persisting load test preferences
Parameters
Name Located in Description Type
Body body Unknown
Responses

200

DELETE Handle DELETE request for load test preferences

Description
Used for deleting load test preferences
Parameters
Name Located in Description Type
uuid query String
Responses

200

GET Handle GET request for load test preferences

Description
Used for fetching load test preferences
Parameters
Name Located in Description Type
uuid query String
Responses

200

/api/user/profile/{id}

GET Handle GET for User info by ID

Description
Returns User info
Responses

200 - Returns user info

/api/user/schedules

GET Handle GET request for Schedules

Description
# Returns the list of all the schedules saved by the current user ```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 10
Responses

200 - Returns List of saved schedules

POST Handle POST request for Schedules

Description
Save schedule using the current provider's persistence mechanism
Responses

200 - Returns a single schedules

/api/user/schedules/{id}

GET Handle GET request for Schedules

Description
Fetches and returns the schedule with the given id
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200 - Returns a single schedules

DELETE Handle DELETE request for Schedules

Description
Deletes a schedule with the given id
Parameters
Name Located in Description Type
id path id for a specific String
Responses

200 - Returns List of saved schedules

/api/user/token

GET Handle GET request for tokens

Description
Returns token from the actual provider in a file response: 200:

POST Handle POST request for tokens

Description
Receives token from the actual provider response: 200:

/api/v2/events

GET Handle GET request for events.

Description
```search={description}``` If search is non empty then a search is performed on event description ```?category=[eventcategory] Returns event belonging to provided categories ``` ```?action=[eventaction] Returns events belonging to provided actions ``` ```?status={[read/unread]}``` Return events filtered on event status Default is unread```` ```?severity=[eventseverity] Returns events belonging to provided severities ``` ```?sort={field} order the records based on passed field, defaults to updated_at``` ```?order={[asc/desc]}``` Default behavior is desc ```?page={page-number}``` Default page number is 1 ```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```
Responses

200 - Returns all events

/api/workspaces

GET Handles GET for all Workspaces

Description
```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 20 ```?search={name}``` If search is non empty then a greedy search is performed ```?orgID={orgid}``` orgID is used to retrieve workspaces belonging to a particular org *required* ```?filter={condition}```
Responses

200 - Returns workspaces

POST Handle POST request for creating a new workspace

Description
Creates a new workspace
Responses

201 - Returns workspace

/api/workspaces/{id}

GET Handle GET for Workspace info by ID

Description
```?orgID={orgid}``` orgID is used to retrieve workspaces belonging to a particular org Returns Workspace info
Responses

200 - Returns workspace

PUT Handle PUT request for updating a workspace

Description
Updates a workspace
Responses

200 - Returns workspace

DELETE Handle DELETE for Workspace based on ID

Description
Deletes a workspace
Responses

201 - Returns workspace

/api/workspaces/{id}/designs

GET Handles GET for all Meshery Designs in a Workspace

Description
```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 20 ```?search={name}``` If search is non empty then a greedy search is performed ```?filter={{"assigned": true/false, "deleted_at": true/false}}``` defaults to assigned: false, deleted_at: false
Responses

200 - Returns all meshery patterns

/api/workspaces/{id}/designs/{designID}

POST Handle POST request for adding a meshery design to a workspace

Description
Adds a meshery design to a workspace
Responses

201 - Returns workspace designs mapping

DELETE Handle DELETE request for removing a meshery design from a workspace

Description
Removes a meshery design from a workspace
Responses

201 - Returns workspace designs mapping

/api/workspaces/{id}/environments

GET Handles GET for all Environments in a Workspace

Description
```?order={field}``` orders on the passed field ```?page={page-number}``` Default page number is 0 ```?pagesize={pagesize}``` Default pagesize is 20 ```?search={name}``` If search is non empty then a greedy search is performed ```?orgID={orgid}``` orgID is used to retrieve workspaces belonging to a particular org *required* ```?filter={{"assigned": true/false, "deleted_at": true/false}}``` defaults to assigned: false, deleted_at: false
Responses

200 - Returns all environements

/api/workspaces/{id}/environments/{environmentID}

POST Handle POST request for adding an environment to a workspace

Description
Adds an environment to a workspace
Responses

201 - Returns workspace environments mapping

DELETE Handle DELETE request for removing an environment from a workspace

Description
Removes an environment from a workspace
Responses

201 - Returns workspace environments mapping

/provider

GET Handle GET request to provider UI

Description
Servers providers UI
Responses

200