diff --git a/docs/common-workflows/administration/distribution-services/manage-subscriptions/mobile-subscriptions.md b/docs/common-workflows/administration/distribution-services/manage-subscriptions/mobile-subscriptions.md
index ef8118e4..96ab77e2 100644
--- a/docs/common-workflows/administration/distribution-services/manage-subscriptions/mobile-subscriptions.md
+++ b/docs/common-workflows/administration/distribution-services/manage-subscriptions/mobile-subscriptions.md
@@ -12,7 +12,9 @@ This workflow sample demonstrates how to create and update a mobile subscription
:::tip
-This workflow follows the general steps described in [Create and get a subscription](create-and-get-a-subscription.md). You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/workspace/microstrategy-rest-api/folder/16131298-da43d1b1-a332-4452-829f-e07a041abc8f?ctx=documentation).
+This workflow follows the general steps described in
+[Create and get a subscription](create-and-get-a-subscription.md). You can try out this workflow at
+[REST API Playground](https://www.postman.com/microstrategysdk/workspace/microstrategy-rest-api/folder/16131298-da43d1b1-a332-4452-829f-e07a041abc8f?ctx=documentation).
Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
@@ -20,9 +22,14 @@ Learn more about Strategy REST API Playground [here](/docs/getting-started/playg
## Create a new mobile subscription
-Endpoint: [POST /api/subscriptions](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Subscriptions/createSubscription)
+Endpoint:
+[POST /api/subscriptions](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Subscriptions/createSubscription)
-This endpoint allows you to create a new subscription for a given project. Obtain the authorization token needed to execute the request using `POST /api/auth/login`. Obtain the project ID using `GET /api/projects`. Provide the information used to create a subscription in the body parameter of the request. If the call is successful, the resulting HTTP response returns an HTTP status code of 201 and a response body containing all the information on the newly created subscription.
+This endpoint allows you to create a new subscription for a given project. Obtain the authorization
+token needed to execute the request using `POST /api/auth/login`. Obtain the project ID using
+`GET /api/projects`. Provide the information used to create a subscription in the body parameter of
+the request. If the call is successful, the resulting HTTP response returns an HTTP status code of
+201 and a response body containing all the information on the newly created subscription.
Sample Request
@@ -204,9 +211,15 @@ Sample Response
## Update an existing mobile subscription
-Endpoint: [PUT /api/subscriptions/\{id}](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Subscriptions/updateSubscription)
+Endpoint:
+[PUT /api/subscriptions/\{id}](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Subscriptions/updateSubscription)
-This endpoint allows you to update all of the information for a specific subscription. Obtain the authorization token needed to execute the request using `POST /api/auth/login`. Obtain the project ID using `GET /api/projects`. Provide the information used to update a subscription in the body parameter of the request and provide the subscription ID in the request path. If the call is successful, the resulting HTTP response returns an HTTP status code of 200 and a response body containing all the information on the updated subscription.
+This endpoint allows you to update all of the information for a specific subscription. Obtain the
+authorization token needed to execute the request using `POST /api/auth/login`. Obtain the project
+ID using `GET /api/projects`. Provide the information used to update a subscription in the body
+parameter of the request and provide the subscription ID in the request path. If the call is
+successful, the resulting HTTP response returns an HTTP status code of 200 and a response body
+containing all the information on the updated subscription.
Sample Request
diff --git a/docs/common-workflows/analytics/auto-bot-api/get-question-by-id.md b/docs/common-workflows/analytics/auto-bot-api/get-question-by-id.md
index 775598de..e84b6cc4 100644
--- a/docs/common-workflows/analytics/auto-bot-api/get-question-by-id.md
+++ b/docs/common-workflows/analytics/auto-bot-api/get-question-by-id.md
@@ -10,20 +10,20 @@ This workflow sample demonstrates how to get a question's answer by the question
:::info
-Obtain the authorization token needed to execute the request using [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+Obtain the authorization token needed to execute the request using
+[POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
:::
## Get a question with question ID
-Endpoint: [GET /api/questions/\{questionId}](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Next-Gen%20AI/queryMessage_1)
+Endpoint:
+[GET /api/questions/\{questionId}](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Next-Gen%20AI/queryMessage_1)
-:::note
-Replace `{questionId}` in `GET /api/questions/{questionId}` with your question ID from `POST /api/questions`.
-:::
+:::note Replace `{questionId}` in `GET /api/questions/{questionId}` with your question ID from
+`POST /api/questions`. :::
-Sample Request Body:
-No request body.
+Sample Request Body: No request body.
Sample Curl:
@@ -49,7 +49,8 @@ The response is the question and answer with the specific ID.
### Response when the question is still being processed
-If the response code is 202, indicating that the question is still being processed, continue calling this API to check the status of the question.
+If the response code is 202, indicating that the question is still being processed, continue calling
+this API to check the status of the question.
If the question is being processed, the response is:
diff --git a/docs/common-workflows/analytics/auto-bot-api/get-questions-by-bot.md b/docs/common-workflows/analytics/auto-bot-api/get-questions-by-bot.md
index 73050b8d..b9e48af1 100644
--- a/docs/common-workflows/analytics/auto-bot-api/get-questions-by-bot.md
+++ b/docs/common-workflows/analytics/auto-bot-api/get-questions-by-bot.md
@@ -6,17 +6,20 @@ description: This workflow sample demonstrates how to get the historical chat me
-This API is used to get the historical questions from a specific agent for the current user, which can be used as the `history` parameter in the `Ask a question to a specific agent` API.
+This API is used to get the historical questions from a specific agent for the current user, which
+can be used as the `history` parameter in the `Ask a question to a specific agent` API.
:::info
-Obtain the authorization token needed to execute the request using [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+Obtain the authorization token needed to execute the request using
+[POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
:::
## Get Questions by Agent
-Endpoint: [GET /api/questions/](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Next-Gen%20AI/getChats_1)
+Endpoint:
+[GET /api/questions/](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Next-Gen%20AI/getChats_1)
Sample Request Headers:
@@ -97,6 +100,5 @@ The response is a list of questions and answers from the specific agent.
}
```
-:::note
-Questions with `type` as `snapshots` should not be used as history in the `Ask a Specific Bot a Question` API.
-:::
+:::note Questions with `type` as `snapshots` should not be used as history in the
+`Ask a Specific Bot a Question` API. :::
diff --git a/docs/common-workflows/modeling/manage-scope-filter-objects/update-a-scope-filter-definition.md b/docs/common-workflows/modeling/manage-scope-filter-objects/update-a-scope-filter-definition.md
index d247a42b..46657326 100644
--- a/docs/common-workflows/modeling/manage-scope-filter-objects/update-a-scope-filter-definition.md
+++ b/docs/common-workflows/modeling/manage-scope-filter-objects/update-a-scope-filter-definition.md
@@ -1,20 +1,24 @@
---
title: Update a scope filter's definition
sidebar_label: Update a scope filter's definition
-description: This workflow sample demonstrates how to update a scope filter's definition using the Modeling service.
+description:
+ This workflow sample demonstrates how to update a scope filter's definition using the Modeling
+ service.
---
:::tip
-You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+You can try out this workflow at
+[REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
:::
-This workflow sample demonstrates how to update a scope filter's definition through the using service.
+This workflow sample demonstrates how to update a scope filter's definition through the using
+service.
1. Create a changeset
1. [Update a scope filter definition](#update-a-scope-filter)
@@ -23,19 +27,23 @@ This workflow sample demonstrates how to update a scope filter's definition thro
:::info
-Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+Get the authorization token needed to execute the request with
+[POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
-Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+Get the project ID from
+[GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
:::
-Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+Changesets are used in this workflow. For information on how to create and use changesets, see
+[Changesets](/docs/common-workflows/modeling/changesets.md).
## Update a scope filter
Endpoint:[PUT /api/model/scopeFilters/\{scopeFilterId}](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Scope%20Filters/putScopeFilter)
-You want to update the scope filter to have an attribute elements prompt based on the "Customer" attribute. The attribute elements should be in the "Smith:Laurell" and "Smith:Sarah" lists.
+You want to update the scope filter to have an attribute elements prompt based on the "Customer"
+attribute. The attribute elements should be in the "Smith:Laurell" and "Smith:Sarah" lists.
Sample Request Header:
diff --git a/docs/common-workflows/mosaic/manage-data-model-external-data-models/create-a-data-model-external-data-model.md b/docs/common-workflows/mosaic/manage-data-model-external-data-models/create-a-data-model-external-data-model.md
new file mode 100644
index 00000000..47f77f1d
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-external-data-models/create-a-data-model-external-data-model.md
@@ -0,0 +1,99 @@
+---
+title: Create an external data model in a data model
+sidebar_label: Create an external data model in a data model
+description: This workflow sample demonstrates how to create an external data model in a data model through the Modeling service.
+---
+
+
+
+:::tip
+
+You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+This workflow sample demonstrates how to create an external data model in a data model through the Modeling service.
+
+:::info
+
+Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+
+Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+
+:::
+
+:::tip
+
+Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+
+:::
+
+You can create an external data model in a data model using the following endpoint: [POST /api/model/dataModels/\{dataModelId}/externalDataModels](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Data%20Models/postExternalDataModel).
+
+Sample Request Header:
+
+```http
+"accept": "application/json"
+"X-MSTR-AuthToken": "o0ak9privdo27nfo798j40m8aa"
+"X-MSTR-MS-Changeset": "805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Sample Request Body:
+
+```json
+{
+ "baseDataModel": {
+ "objectId": "FF2970B298464D88806CCD39F1BA1919",
+ "subType": "report_emma_cube",
+ "name": "data model 1"
+ },
+ "alias": "external data model 1"
+}
+```
+
+Sample Curl:
+
+```bash
+curl -X POST "https://demo.microstrategy.com/MicroStrategyLibrary/api/model/dataModels/04DCF4F028354FC0AE4B8120CB1983A6/externalDataModels" -H "accept: application/json" -H "X-MSTR-AuthToken: o0ak9privdo27nfo798j40m8aa" -H "X-MSTR-MS-Changeset: 805C5F3FB78A436FAE37C943471C24AD" -H "Content-Type: application/json" -d '{"baseDataModel":{"objectId":"FF2970B298464D88806CCD39F1BA1919","subType":"report_emma_cube","name":"data model 1"},"alias":"external data model 1"}'
+```
+
+Sample Response Body:
+
+```json
+{
+ "id": "AE2FC8E446B14162BF2BCAC64981D5A2",
+ "baseDataModel": {
+ "objectId": "FF2970B298464D88806CCD39F1BA1919",
+ "subType": "report_emma_cube",
+ "name": "data model 1"
+ },
+ "alias": "external data model 1",
+ "objects": [
+ {
+ "objectId": "2877DDA7059B4FFE9DE2711F4D7CD29A",
+ "subType": "attribute",
+ "name": "Customer",
+ "hidden": false,
+ "alias": "Customer (2)"
+ },
+ {
+ "objectId": "B44A2F49F6B6441796FCA511F1BBFDA5",
+ "subType": "attribute",
+ "name": "Churn",
+ "hidden": false,
+ "alias": ""
+ },
+ {
+ "objectId": "3FDFCCEFB640428E9341D45B68073601",
+ "subType": "attribute",
+ "name": "Lifetime Value Score",
+ "hidden": false,
+ "alias": ""
+ }
+ ]
+}
+```
+
+Response Code: 201 (A new external data model is created successfully in the changeset.)
diff --git a/docs/common-workflows/mosaic/manage-data-model-external-data-models/delete-a-data-model-external-data-model.md b/docs/common-workflows/mosaic/manage-data-model-external-data-models/delete-a-data-model-external-data-model.md
new file mode 100644
index 00000000..0f276149
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-external-data-models/delete-a-data-model-external-data-model.md
@@ -0,0 +1,53 @@
+---
+title: Delete a data model external data model
+sidebar_label: Delete a data model external data model
+description: This workflow sample demonstrates how to delete a data model external data model through the Modeling service.
+---
+
+
+
+:::tip
+
+You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+This workflow sample demonstrates how to delete a data model external data model through the Modeling service.
+
+:::info
+
+Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+
+Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+
+:::
+
+:::tip
+
+Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+
+:::
+
+You can delete an external data model from a data model using the following endpoint: [DELETE /api/model/dataModels/\{dataModelId}/externalDataModels/\{externalDataModelId}](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Data%20Models/deleteExternalDataModel).
+
+Sample Request Header:
+
+```http
+"accept": "application/json"
+"X-MSTR-AuthToken": "o0ak9privdo27nfo798j40m8aa"
+"X-MSTR-MS-Changeset": "805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Sample Request Body: Empty
+
+Sample Curl:
+
+```bash
+curl -X DELETE "https://demo.microstrategy.com/MicroStrategyLibrary/api/model/dataModels/04DCF4F028354FC0AE4B8120CB1983A6/externalDataModels/AE2FC8E446B14162BF2BCAC64981D5A2" -H "accept: application/json" -H "X-MSTR-AuthToken: o0ak9privdo27nfo798j40m8aa" -H "X-MSTR-MS-Changeset: 805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Sample Response Body: Empty
+
+Sample Response Code: 204 (The external data model is deleted successfully in the changeset.)
diff --git a/docs/common-workflows/mosaic/manage-data-model-external-data-models/manage-data-model-external-data-models.md b/docs/common-workflows/mosaic/manage-data-model-external-data-models/manage-data-model-external-data-models.md
new file mode 100644
index 00000000..cb33b842
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-external-data-models/manage-data-model-external-data-models.md
@@ -0,0 +1,23 @@
+---
+title: Manage data model external data models
+description: You can use REST API requests to manage data model external data models.
+---
+
+
+
+:::tip
+
+You can try these workflows with [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+You can use REST API requests to manage data model external data models.
+
+- [Retrieve Data Model External Data Models](retrieve-data-model-external-data-models.md)
+- [Create a Data Model External Data Model](create-a-data-model-external-data-model.md)
+- [Update a Data Model External Data Model](update-a-data-model-external-data-model.md)
+- [Delete a Data Model External Data Model](delete-a-data-model-external-data-model.md)
+- [Update a Data Model External Data Model's Object](update-a-data-model-external-data-models-object.md)
+- [Refresh a Data Model External Data Models](refresh-a-data-model-external-data-models.md)
diff --git a/docs/common-workflows/mosaic/manage-data-model-external-data-models/refresh-a-data-model-external-data-models.md b/docs/common-workflows/mosaic/manage-data-model-external-data-models/refresh-a-data-model-external-data-models.md
new file mode 100644
index 00000000..dd4ec67c
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-external-data-models/refresh-a-data-model-external-data-models.md
@@ -0,0 +1,104 @@
+---
+title: Refresh data model external data models
+description: This workflow demonstrates how to refresh data model external data models using REST API.
+---
+
+
+
+:::tip
+
+You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+This workflow sample demonstrates how to refresh external data models through the Modeling service. If the base models of external data models are updated, you must use this API to sync the changes to the current data model.
+
+:::info
+
+Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+
+Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+
+:::
+
+:::tip
+
+Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+
+:::
+
+You can retrieve the refresh data models in a data model using the following endpoint: [POST /api/model/dataModels/\{dataModelId}/externalDataModels/refresh](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Data%20Model/refreshExternalDataModels).
+
+In the following example, for the external data model "SF test external", one attribute ("New Attribute") is added, while two attributes ("Call Center" and "Customer City") are removed. As a result, the JSON response from the refresh API includes both the newObjects and deletedObjects fields for this external data model.
+
+In the current data model, a security filter is defined on the "Call Center" attribute, and a metric is defined on the "Customer City" attribute. Because these attributes are deleted, the corresponding security filter and metric become invalid and are therefore removed. These removed objects are listed in the invalidObjects field.
+
+Sample Request Header:
+
+```http
+"accept": "application/json"
+"X-MSTR-AuthToken": "o0ak9privdo27nfo798j40m8aa"
+"X-MSTR-MS-Changeset": "805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Curl
+
+```bash
+curl -L -X POST 'https://demo.microstrategy.com/MicroStrategyLibrary/api/model/dataModels/04DCF4F028354FC0AE4B8120CB1983A6/externalDataModels/refresh' \
+-H 'X-MSTR-AuthToken: o0ak9privdo27nfo798j40m8aa' \
+-H 'X-MSTR-MS-Changeset: 805C5F3FB78A436FAE37C943471C24AD'
+```
+
+Sample Response Body:
+
+```json
+{
+ "externalDataModels": [
+ {
+ "id": "72009D4BDD3D4BEDA2242F2D5A38258C",
+ "baseDataModel": {
+ "objectId": "275C1A8671594B958E248EA9A2C1989C",
+ "subType": "report_emma_cube",
+ "name": "SF test external"
+ },
+ "alias": "SF test external",
+ "newObjects": [
+ {
+ "objectId": "7937B61165D84D69BA30F88842083179",
+ "subType": "attribute",
+ "name": "New Attribute"
+ }
+ ],
+ "deletedObjects": [
+ {
+ "objectId": "6C131EE33F634ACF9CD12B450698A203",
+ "subType": "attribute",
+ "name": "Call Center"
+ },
+ {
+ "objectId": "62D6035D11D84244B483992288987E1A",
+ "subType": "attribute",
+ "name": "Customer City"
+ }
+ ]
+ }
+ ],
+ "invalidLinks": [],
+ "invalidObjects": [
+ {
+ "id": "A4B42668D4C041139A8E25A98C9EB89D",
+ "subType": "md_security_filter",
+ "error": "Object(id: 92F32157BBA34D6BAAC792E7AAFE22B9, name: Call Center) is missing."
+ },
+ {
+ "id": "DDF643B015D64DD2A844473C22C0F906",
+ "subType": "metric",
+ "error": "Object(id: 62D6035D11D84244B483992288987E1A, name: Customer City) is missing."
+ }
+ ]
+}
+```
+
+Response Code: 200 (The external models are refreshed.)
diff --git a/docs/common-workflows/mosaic/manage-data-model-external-data-models/retrieve-data-model-external-data-models.md b/docs/common-workflows/mosaic/manage-data-model-external-data-models/retrieve-data-model-external-data-models.md
new file mode 100644
index 00000000..9e4b1d25
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-external-data-models/retrieve-data-model-external-data-models.md
@@ -0,0 +1,124 @@
+---
+title: Retrieve data model external data models
+description: This workflow demonstrates how to retrieve data model external data models using REST API.
+---
+
+
+
+:::tip
+
+You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+This workflow sample demonstrates how to retrieve the data model external data models through the Modeling service.
+
+:::info
+
+Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+
+Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+
+:::
+
+:::tip
+
+Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+
+:::
+
+You can retrieve the external data models in a data model using the following endpoint: [GET /api/model/dataModels/\{dataModelId}/externalDataModels](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Data%20Model/getExternalDataModels).
+You can use a boolean parameter `showDefinition` to indicate whether to show the definition of each external data model's object in the response.
+
+Sample Request Header:
+
+```http
+"accept": "application/json"
+"X-MSTR-AuthToken": "o0ak9privdo27nfo798j40m8aa"
+"X-MSTR-MS-Changeset": "805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Curl
+
+```bash
+curl -L -X GET 'https://demo.microstrategy.com/MicroStrategyLibrary/api/model/dataModels/04DCF4F028354FC0AE4B8120CB1983A6/externalDataModels' \
+-H 'X-MSTR-AuthToken: o0ak9privdo27nfo798j40m8aa' \
+-H 'X-MSTR-MS-Changeset: 805C5F3FB78A436FAE37C943471C24AD'
+```
+
+Sample Response Body:
+
+```json
+{
+ "externalDataModels": [
+ {
+ "id": "AE2FC8E446B14162BF2BCAC64981D5A2",
+ "baseDataModel": {
+ "objectId": "FF2970B298464D88806CCD39F1BA1919",
+ "subType": "report_emma_cube",
+ "name": "data model 1"
+ },
+ "alias": "external data model 1",
+ "objects": [
+ {
+ "objectId": "2877DDA7059B4FFE9DE2711F4D7CD29A",
+ "subType": "attribute",
+ "name": "Customer",
+ "hidden": false,
+ "alias": "Customer (2)"
+ },
+ {
+ "objectId": "B44A2F49F6B6441796FCA511F1BBFDA5",
+ "subType": "attribute",
+ "name": "Churn",
+ "hidden": false,
+ "alias": ""
+ },
+ {
+ "objectId": "3FDFCCEFB640428E9341D45B68073601",
+ "subType": "attribute",
+ "name": "Lifetime Value Score",
+ "hidden": false,
+ "alias": ""
+ }
+ ]
+ },
+ {
+ "id": "067D10AA8EA14687AA838743E3EDD13D",
+ "baseDataModel": {
+ "objectId": "F51CA1AEDBAF4C0BB237B145021B4A55",
+ "subType": "report_emma_cube",
+ "name": "data model 2"
+ },
+ "alias": "external data model 2",
+ "objects": [
+ {
+ "objectId": "E6A260E49B7B4A69870BED15A867E631",
+ "subType": "attribute",
+ "name": "First Order Date",
+ "hidden": false,
+ "alias": ""
+ },
+ {
+ "objectId": "B21D835C2CBF4C82AF99F6DCD0AD5790",
+ "subType": "attribute",
+ "name": "Last Order Date",
+ "hidden": false,
+ "alias": ""
+ },
+ {
+ "objectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "subType": "attribute",
+ "name": "Customer",
+ "hidden": false,
+ "alias": "Customer (1)"
+ }
+ ]
+ }
+ ]
+}
+```
+
+Response Code: 200 (All external data models in data model are returned successfully.)
diff --git a/docs/common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-model.md b/docs/common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-model.md
new file mode 100644
index 00000000..0078c976
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-model.md
@@ -0,0 +1,95 @@
+---
+title: Update a data model external data model
+sidebar_label: Update a data model external data model
+description: This workflow sample demonstrates how to update a data model external data model through the Modeling service.
+---
+
+
+
+:::tip
+
+You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+This workflow sample demonstrates how to update an external data model through the Modeling service.
+
+:::info
+
+Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+
+Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+
+:::
+
+:::tip
+
+Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+
+:::
+
+You can update an external data model in a data model using the following endpoint: [PATCH /api/model/dataModels/\{dataModelId}/externalDataModels/\{externalDataModelId}](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Data%20Models/patchExternalDataModel).
+Only "alias" field can be modified by this API.
+
+Sample Request Header:
+
+```http
+"accept": "application/json"
+"X-MSTR-AuthToken": "o0ak9privdo27nfo798j40m8aa"
+"X-MSTR-MS-Changeset": "805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Sample Request Body:
+
+```json
+{
+ "alias": "updated external data model alias"
+}
+```
+
+Sample Curl:
+
+```bash
+curl -X PATCH "https://demo.microstrategy.com/MicroStrategyLibrary/api/model/dataModels/04DCF4F028354FC0AE4B8120CB1983A6/externalDataModels/AE2FC8E446B14162BF2BCAC64981D5A2" -H "accept: application/json" -H "X-MSTR-AuthToken: o0ak9privdo27nfo798j40m8aa" -H "X-MSTR-MS-Changeset: 805C5F3FB78A436FAE37C943471C24AD" -H "Content-Type: application/json" -d '{"alias":"updated external data model alias"}'
+```
+
+Sample Response Body:
+
+```json
+{
+ "id": "AE2FC8E446B14162BF2BCAC64981D5A2",
+ "baseDataModel": {
+ "objectId": "FF2970B298464D88806CCD39F1BA1919",
+ "subType": "report_emma_cube",
+ "name": "data model 1"
+ },
+ "alias": "updated external data model alias",
+ "objects": [
+ {
+ "objectId": "2877DDA7059B4FFE9DE2711F4D7CD29A",
+ "subType": "attribute",
+ "name": "Customer",
+ "hidden": false,
+ "alias": "Customer (2)"
+ },
+ {
+ "objectId": "B44A2F49F6B6441796FCA511F1BBFDA5",
+ "subType": "attribute",
+ "name": "Churn",
+ "hidden": false,
+ "alias": ""
+ },
+ {
+ "objectId": "3FDFCCEFB640428E9341D45B68073601",
+ "subType": "attribute",
+ "name": "Lifetime Value Score",
+ "hidden": false,
+ "alias": ""
+ }
+ ]
+}
+```
+
+Response Code: 200 (External data model is updated successfully in the changeset.)
diff --git a/docs/common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-models-object.md b/docs/common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-models-object.md
new file mode 100644
index 00000000..f24b0e08
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-models-object.md
@@ -0,0 +1,71 @@
+---
+title: Update a data model external data model's object
+sidebar_label: Update a data model external data model's object
+description: This workflow sample demonstrates how to update a data model external data model's object through the Modeling service.
+---
+
+
+
+:::tip
+
+You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+This workflow sample demonstrates how to update an external data model's object through the Modeling service.
+
+:::info
+
+Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+
+Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+
+:::
+
+:::tip
+
+Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+
+:::
+
+You can update an external data model's object in a data model using the following endpoint: [PATCH /api/model/dataModels/\{dataModelId}/externalDataModels/\{externalDataModelId}/objects/\{objectId}](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Data%20Models/patchExternalDataModelObject).
+Only "hidden" and "alias" fields can be modified by this API.
+
+Sample Request Header:
+
+```http
+"accept": "application/json"
+"X-MSTR-AuthToken": "o0ak9privdo27nfo798j40m8aa"
+"X-MSTR-MS-Changeset": "805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Sample Request Body:
+
+```json
+{
+ "hidden": true,
+ "alias": "Churn Alias"
+}
+```
+
+Sample Curl:
+
+```bash
+curl -X PATCH "https://demo.microstrategy.com/MicroStrategyLibrary/api/model/dataModels/04DCF4F028354FC0AE4B8120CB1983A6/externalDataModels/AE2FC8E446B14162BF2BCAC64981D5A2/objects/B44A2F49F6B6441796FCA511F1BBFDA5" -H "accept: application/json" -H "X-MSTR-AuthToken: o0ak9privdo27nfo798j40m8aa" -H "X-MSTR-MS-Changeset: 805C5F3FB78A436FAE37C943471C24AD" -H "Content-Type: application/json" -d '{"hidden":true,"alias":"Churn Alias"}'
+```
+
+Sample Response Body:
+
+```json
+{
+ "objectId": "B44A2F49F6B6441796FCA511F1BBFDA5",
+ "subType": "attribute",
+ "name": "Churn",
+ "hidden": true,
+ "alias": "Churn Alias"
+}
+```
+
+Response Code: 200 (External data model's object is updated successfully in the changeset.)
diff --git a/docs/common-workflows/mosaic/manage-data-model-links/create-a-data-model-link.md b/docs/common-workflows/mosaic/manage-data-model-links/create-a-data-model-link.md
new file mode 100644
index 00000000..74468313
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-links/create-a-data-model-link.md
@@ -0,0 +1,143 @@
+---
+title: Create a data model link
+sidebar_label: Create a data model link
+description: This workflow sample demonstrates how to create a data model link through the Modeling service.
+---
+
+
+
+:::tip
+
+You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+This workflow sample demonstrates how to create a data model link through the Modeling service.
+
+:::info
+
+Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+
+Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+
+:::
+
+:::tip
+
+Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+
+:::
+
+You can create a link in a data model using the following endpoint: [POST /api/model/dataModels/\{dataModelId}/links](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Data%20Models/postDataModelLink).
+
+Sample Request Header:
+
+```http
+"accept": "application/json"
+"X-MSTR-AuthToken": "o0ak9privdo27nfo798j40m8aa"
+"X-MSTR-MS-Changeset": "805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Sample Request Body:
+
+```json
+{
+ "targets": [
+ {
+ "objectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "name": "Customer (1)",
+ "subType": "attribute",
+ "externalDataModelId": "067D10AA8EA14687AA838743E3EDD13D"
+ },
+ {
+ "objectId": "2877DDA7059B4FFE9DE2711F4D7CD29A",
+ "name": "Customer (2)",
+ "subType": "attribute",
+ "externalDataModelId": "AE2FC8E446B14162BF2BCAC64981D5A2"
+ }
+ ],
+ "sourceObjectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "alias": "Customer"
+}
+```
+
+Sample Curl:
+
+```bash
+curl -X POST "https://demo.microstrategy.com/MicroStrategyLibrary/api/model/dataModels/04DCF4F028354FC0AE4B8120CB1983A6/links" -H "accept: application/json" -H "X-MSTR-AuthToken: o0ak9privdo27nfo798j40m8aa" -H "X-MSTR-MS-Changeset: 805C5F3FB78A436FAE37C943471C24AD" -H "Content-Type: application/json" -d '{"targets":[{"objectId":"B066F441206C44FCB3601DFB45E8D5F0","name":"Customer (1)","subType":"attribute","externalDataModelId":"067D10AA8EA14687AA838743E3EDD13D"},{"objectId":"2877DDA7059B4FFE9DE2711F4D7CD29A","name":"Customer (2)","subType":"attribute","externalDataModelId":"AE2FC8E446B14162BF2BCAC64981D5A2"}],"sourceObjectId":"B066F441206C44FCB3601DFB45E8D5F0","alias":"Customer"}'
+```
+
+Sample Response Body:
+
+```json
+{
+ "id": "597E5B1B23BA406B95FEDAE8894F5FE5",
+ "targets": [
+ {
+ "objectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "name": "Customer",
+ "subType": "attribute",
+ "externalDataModelId": "067D10AA8EA14687AA838743E3EDD13D"
+ },
+ {
+ "objectId": "2877DDA7059B4FFE9DE2711F4D7CD29A",
+ "name": "Customer",
+ "subType": "attribute",
+ "externalDataModelId": "AE2FC8E446B14162BF2BCAC64981D5A2"
+ }
+ ],
+ "sourceObjectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "alias": "Customer",
+ "linkedAttribute": {
+ "information": {
+ "versionId": "D29EAF55EE744721AB2792F647DE3CC1",
+ "acg": 255,
+ "primaryLocale": "en-US",
+ "objectId": "3512184AEF7A475691D39F47DCD8D1FA",
+ "subType": "attribute",
+ "name": "Customer",
+ "description": "Unique identifier for each customer, used for tracking and managing customer-related data.",
+ "destinationFolderId": "EE9BD70043F0F571B38E43BF19B9301A"
+ },
+ "forms": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID",
+ "description": "Unique identifier for each customer, used for tracking and managing customer-related data.",
+ "category": "ID",
+ "type": "system",
+ "displayFormat": "number",
+ "dataType": {
+ "type": "integer",
+ "precision": 4,
+ "scale": 0
+ },
+ "alias": "customer_id"
+ }
+ ],
+ "keyForm": {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID"
+ },
+ "displays": {
+ "reportDisplays": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID"
+ }
+ ],
+ "browseDisplays": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID"
+ }
+ ]
+ },
+ "nonAggregatable": false
+ }
+}
+```
+
+Response Code: 201 (A new data model link is created successfully in the changeset.)
diff --git a/docs/common-workflows/mosaic/manage-data-model-links/manage-data-model-links.md b/docs/common-workflows/mosaic/manage-data-model-links/manage-data-model-links.md
new file mode 100644
index 00000000..ed6575a7
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-links/manage-data-model-links.md
@@ -0,0 +1,20 @@
+---
+title: Manage data model links
+description: You can use REST API requests to manage data model links.
+---
+
+
+
+:::tip
+
+You can try these workflows with [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+You can use REST API requests to manage data model links.
+
+- [Retrieve Data Model Links](retrieve-data-model-links.md)
+- [Create a Data Model Link](create-a-data-model-link.md)
+- [Update Data Model Links](update-data-model-links.md)
diff --git a/docs/common-workflows/mosaic/manage-data-model-links/retrieve-data-model-links.md b/docs/common-workflows/mosaic/manage-data-model-links/retrieve-data-model-links.md
new file mode 100644
index 00000000..fa5d3600
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-links/retrieve-data-model-links.md
@@ -0,0 +1,200 @@
+---
+title: Retrieve data model links
+description: This workflow demonstrates how to retrieve data model links using REST API.
+---
+
+
+
+:::tip
+
+You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+This workflow sample demonstrates how to retrieve the data model links through the Modeling service.
+
+:::info
+
+Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+
+Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+
+:::
+
+:::tip
+
+Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+
+:::
+
+You can retrieve the data model links in a data model using the following endpoint: [GET /api/model/dataModels/\{dataModelId}/links](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Data%20Model/getDataModelLinks).
+
+Parameters include pagination options such as `limit` and `offset`, and a boolean parameter `showInvalidLinkItems` to indicate whether to include invalid link items in the response.
+
+Sample Request Header:
+
+```http
+"accept": "application/json"
+"X-MSTR-AuthToken": "o0ak9privdo27nfo798j40m8aa"
+"X-MSTR-MS-Changeset": "805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Curl
+
+```bash
+curl -L -X GET 'https://demo.microstrategy.com/MicroStrategyLibrary/api/model/dataModels/04DCF4F028354FC0AE4B8120CB1983A6/links' \
+-H 'X-MSTR-AuthToken: o0ak9privdo27nfo798j40m8aa' \
+-H 'X-MSTR-MS-Changeset: 805C5F3FB78A436FAE37C943471C24AD'
+```
+
+Sample Response Body:
+
+```json
+{
+ "offset": 0,
+ "limit": -1,
+ "total": 2,
+ "links": [
+ {
+ "id": "01A599D214CD4DAFB2C2461FA16FA8C6",
+ "targets": [
+ {
+ "objectId": "A57ED1A786444607B3D519B9EEFD4D0E",
+ "name": "Plan",
+ "subType": "attribute",
+ "externalDataModelId": "AE2FC8E446B14162BF2BCAC64981D5A2"
+ },
+ {
+ "objectId": "C897597D95EB4D05B99670DCF0BF5999",
+ "name": "Plan",
+ "subType": "attribute",
+ "externalDataModelId": "067D10AA8EA14687AA838743E3EDD13D"
+ }
+ ],
+ "sourceObjectId": "A57ED1A786444607B3D519B9EEFD4D0E",
+ "alias": "Plan",
+ "linkedAttribute": {
+ "information": {
+ "dateCreated": "2025-12-30T07:26:33.069Z",
+ "dateModified": "2025-12-30T07:26:33.069Z",
+ "versionId": "0B435CF87C444635AA4444B2274321B5",
+ "acg": 255,
+ "primaryLocale": "en-US",
+ "objectId": "51BF622FD70D408A8BC760B1806F2B35",
+ "subType": "attribute",
+ "name": "Plan",
+ "description": "Identifier for the customer's subscribed telecom plan, useful for analyzing plan preferences and usage.",
+ "destinationFolderId": "EE9BD70043F0F571B38E43BF19B9301A"
+ },
+ "forms": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Plan ID",
+ "description": "Identifier for the customer's subscribed telecom plan, useful for analyzing plan preferences and usage.",
+ "category": "ID",
+ "type": "system",
+ "displayFormat": "number",
+ "dataType": {
+ "type": "integer",
+ "precision": 2,
+ "scale": 0
+ },
+ "alias": "plan_id"
+ }
+ ],
+ "keyForm": {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Plan ID"
+ },
+ "displays": {
+ "reportDisplays": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Plan ID"
+ }
+ ],
+ "browseDisplays": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Plan ID"
+ }
+ ]
+ },
+ "nonAggregatable": false
+ }
+ },
+ {
+ "id": "25211B2B881E4A13AC9ACB8DFE0DE820",
+ "targets": [
+ {
+ "objectId": "2877DDA7059B4FFE9DE2711F4D7CD29A",
+ "name": "Customer",
+ "subType": "attribute",
+ "externalDataModelId": "AE2FC8E446B14162BF2BCAC64981D5A2"
+ },
+ {
+ "objectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "name": "Customer",
+ "subType": "attribute",
+ "externalDataModelId": "067D10AA8EA14687AA838743E3EDD13D"
+ }
+ ],
+ "sourceObjectId": "2877DDA7059B4FFE9DE2711F4D7CD29A",
+ "alias": "Customer",
+ "linkedAttribute": {
+ "information": {
+ "dateCreated": "2025-12-30T07:26:33.069Z",
+ "dateModified": "2025-12-30T07:26:33.069Z",
+ "versionId": "0B435CF87C444635AA4444B2274321B5",
+ "acg": 255,
+ "primaryLocale": "en-US",
+ "objectId": "1547E1E6332F4D509984CDB7339C2A21",
+ "subType": "attribute",
+ "name": "Customer",
+ "description": "Unique identifier for each customer, used for tracking sales and customer-specific data.",
+ "destinationFolderId": "EE9BD70043F0F571B38E43BF19B9301A"
+ },
+ "forms": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID",
+ "description": "Unique identifier for each customer, used for tracking sales and customer-specific data.",
+ "category": "ID",
+ "type": "system",
+ "displayFormat": "number",
+ "dataType": {
+ "type": "integer",
+ "precision": 2,
+ "scale": 0
+ },
+ "alias": "customer_id"
+ }
+ ],
+ "keyForm": {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID"
+ },
+ "displays": {
+ "reportDisplays": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID"
+ }
+ ],
+ "browseDisplays": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID"
+ }
+ ]
+ },
+ "nonAggregatable": false
+ }
+ }
+ ]
+}
+```
+
+Response Code: 200 (All links in data model are returned successfully.)
diff --git a/docs/common-workflows/mosaic/manage-data-model-links/update-data-model-links.md b/docs/common-workflows/mosaic/manage-data-model-links/update-data-model-links.md
new file mode 100644
index 00000000..115846c5
--- /dev/null
+++ b/docs/common-workflows/mosaic/manage-data-model-links/update-data-model-links.md
@@ -0,0 +1,152 @@
+---
+title: Update data model links
+sidebar_label: Update data model links
+description: This workflow sample demonstrates how to update data model links through the Modeling service.
+---
+
+
+
+:::tip
+
+You can try out this workflow at [REST API Playground](https://www.postman.com/microstrategysdk/microstrategy-rest-api/collection/5aq5sem/strategy-rest-api-workflows).
+
+Learn more about Strategy REST API Playground [here](/docs/getting-started/playground.md).
+
+:::
+
+This workflow sample demonstrates how to update data model links through the Modeling service.
+
+:::info
+
+Get the authorization token needed to execute the request with [POST /api/auth/login](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin).
+
+Get the project ID from [GET /api/projects](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Projects/getProjects_1).
+
+:::
+
+:::tip
+
+Changesets are used in this workflow. For information on how to create and use changesets, see [Changesets](/docs/common-workflows/modeling/changesets.md).
+
+:::
+
+You can update links in a data model using the following endpoint: [PUT /api/model/dataModels/\{dataModelId}/links](https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Data%20Models/putDataModelLinks).
+
+Sample Request Header:
+
+```http
+"accept": "application/json"
+"X-MSTR-AuthToken": "o0ak9privdo27nfo798j40m8aa"
+"X-MSTR-MS-Changeset": "805C5F3FB78A436FAE37C943471C24AD"
+```
+
+Sample Request Body:
+
+```json
+{
+ "links": [
+ {
+ "id": "597E5B1B23BA406B95FEDAE8894F5FE5",
+ "targets": [
+ {
+ "objectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "name": "Customer",
+ "subType": "attribute",
+ "externalDataModelId": "067D10AA8EA14687AA838743E3EDD13D"
+ },
+ {
+ "objectId": "2877DDA7059B4FFE9DE2711F4D7CD29A",
+ "name": "Customer",
+ "subType": "attribute",
+ "externalDataModelId": "AE2FC8E446B14162BF2BCAC64981D5A2"
+ }
+ ],
+ "sourceObjectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "alias": "Customer"
+ }
+ ]
+}
+```
+
+Sample Curl:
+
+```bash
+curl -X PUT "https://demo.microstrategy.com/MicroStrategyLibrary/api/model/dataModels/04DCF4F028354FC0AE4B8120CB1983A6/links" -H "accept: application/json" -H "X-MSTR-AuthToken: o0ak9privdo27nfo798j40m8aa" -H "X-MSTR-MS-Changeset: 805C5F3FB78A436FAE37C943471C24AD" -H "Content-Type: application/json" -d '{"links":[{"id":"597E5B1B23BA406B95FEDAE8894F5FE5","targets":[{"objectId":"B066F441206C44FCB3601DFB45E8D5F0","name":"Customer","subType":"attribute","externalDataModelId":"067D10AA8EA14687AA838743E3EDD13D"},{"objectId":"2877DDA7059B4FFE9DE2711F4D7CD29A","name":"Customer","subType":"attribute","externalDataModelId":"AE2FC8E446B14162BF2BCAC64981D5A2"}],"sourceObjectId":"B066F441206C44FCB3601DFB45E8D5F0","alias":"Customer"}]}'
+```
+
+Sample Response Body:
+
+```json
+{
+ "links": [
+ {
+ "id": "597E5B1B23BA406B95FEDAE8894F5FE5",
+ "targets": [
+ {
+ "objectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "name": "Customer",
+ "subType": "attribute",
+ "externalDataModelId": "067D10AA8EA14687AA838743E3EDD13D"
+ },
+ {
+ "objectId": "2877DDA7059B4FFE9DE2711F4D7CD29A",
+ "name": "Customer",
+ "subType": "attribute",
+ "externalDataModelId": "AE2FC8E446B14162BF2BCAC64981D5A2"
+ }
+ ],
+ "sourceObjectId": "B066F441206C44FCB3601DFB45E8D5F0",
+ "alias": "Customer",
+ "linkedAttribute": {
+ "information": {
+ "versionId": "D29EAF55EE744721AB2792F647DE3CC1",
+ "acg": 255,
+ "primaryLocale": "en-US",
+ "objectId": "3512184AEF7A475691D39F47DCD8D1FA",
+ "subType": "attribute",
+ "name": "Customer",
+ "description": "Unique identifier for each customer, used for tracking and managing customer-related data.",
+ "destinationFolderId": "EE9BD70043F0F571B38E43BF19B9301A"
+ },
+ "forms": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID",
+ "description": "Unique identifier for each customer, used for tracking and managing customer-related data.",
+ "category": "ID",
+ "type": "system",
+ "displayFormat": "number",
+ "dataType": {
+ "type": "integer",
+ "precision": 4,
+ "scale": 0
+ },
+ "alias": "customer_id"
+ }
+ ],
+ "keyForm": {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID"
+ },
+ "displays": {
+ "reportDisplays": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID"
+ }
+ ],
+ "browseDisplays": [
+ {
+ "id": "45C11FA478E745FEA08D781CEA190FE5",
+ "name": "Customer ID"
+ }
+ ]
+ },
+ "nonAggregatable": false
+ }
+ }
+ ]
+}
+```
+
+Response Code: 200 (Data model links are updated successfully in the changeset.)
diff --git a/docs/whats-new.md b/docs/whats-new.md
index b09ba20c..4795cd78 100644
--- a/docs/whats-new.md
+++ b/docs/whats-new.md
@@ -4,6 +4,18 @@ sidebar_label: What's new
Description: What's New in the REST API.
---
+## Strategy ONE (January 2026)
+
+- [Retrieve Data Model External Data Models](common-workflows/mosaic/manage-data-model-external-data-models/retrieve-data-model-external-data-models.md)
+- [Create a Data Model External Data Model](common-workflows/mosaic/manage-data-model-external-data-models/create-a-data-model-external-data-model.md)
+- [Update a Data Model External Data Model](common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-model.md)
+- [Delete a Data Model External Data Model](common-workflows/mosaic/manage-data-model-external-data-models/delete-a-data-model-external-data-model.md)
+- [Update a Data Model External Data Model's Object](common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-models-object.md)
+- [Refresh a Data Model External Data Models](common-workflows/mosaic/manage-data-model-external-data-models/refresh-a-data-model-external-data-models.md)
+- [Retrieve Data Model Links](common-workflows/mosaic/manage-data-model-links/retrieve-data-model-links.md)
+- [Create a Data Model Link](common-workflows/mosaic/manage-data-model-links/create-a-data-model-link.md)
+- [Update Data Model Links](common-workflows/mosaic/manage-data-model-links/update-data-model-links.md)
+
## Strategy ONE (December 2025)
- [Retrieve Data through Cube Instance](common-workflows/mosaic/retrieve-data-from-data-models/retrieve-data-through-cube-instance.md)
diff --git a/sidebars.js b/sidebars.js
index 8e8d22b2..7227489f 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -1327,6 +1327,35 @@ const sidebars = {
"common-workflows/mosaic/end-to-end/edit-an-existing-data-model",
],
},
+ {
+ type: "category",
+ label: "Manage data model external data models",
+ link: {
+ type: "doc",
+ id: "common-workflows/mosaic/manage-data-model-external-data-models/manage-data-model-external-data-models",
+ },
+ items: [
+ "common-workflows/mosaic/manage-data-model-external-data-models/retrieve-data-model-external-data-models",
+ "common-workflows/mosaic/manage-data-model-external-data-models/create-a-data-model-external-data-model",
+ "common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-model",
+ "common-workflows/mosaic/manage-data-model-external-data-models/delete-a-data-model-external-data-model",
+ "common-workflows/mosaic/manage-data-model-external-data-models/update-a-data-model-external-data-models-object",
+ "common-workflows/mosaic/manage-data-model-external-data-models/refresh-a-data-model-external-data-models",
+ ],
+ },
+ {
+ type: "category",
+ label: "Manage data model links",
+ link: {
+ type: "doc",
+ id: "common-workflows/mosaic/manage-data-model-links/manage-data-model-links",
+ },
+ items: [
+ "common-workflows/mosaic/manage-data-model-links/retrieve-data-model-links",
+ "common-workflows/mosaic/manage-data-model-links/create-a-data-model-link",
+ "common-workflows/mosaic/manage-data-model-links/update-data-model-links",
+ ],
+ },
],
},
],