OutSystems ODC Dependency Management API

REST endpoints for launching and retrieving the results of impact analysis for the deployment and deletion of an asset.

OpenAPI Specification

outsystems-dependency-management-api-v1-openapi.json Raw ↑
{
  "openapi": "3.0.3",
  "info": {
    "title": "Dependency Management API",
    "description": "REST endpoints for launching and getting results of impact analysis in the deployment and deletion of an asset.\n",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://ODC_PORTAL_DOMAIN/api/dependency-management/v1",
      "description": "Replace ODC_PORTAL_DOMAIN with the domain of your organization."
    },
    {
      "url": "https://{odc-portal-domain}/api/dependency-management/v1",
      "description": "Replace {odc-portal-domain} with the domain of your organization.",
      "variables": {
        "odc-portal-domain": {
          "default": "ODC_PORTAL_DOMAIN",
          "description": "The domain of your organization"
        }
      }
    }
  ],
  "paths": {
    "/deletion-analyses/{analysisKey}": {
      "get": {
        "tags": [],
        "summary": "Returns the deletion analysis result",
        "description": "Returns the deletion analysis report once the analysis is completed.\n\n",
        "operationId": "DeletionAnalysis_GetResult",
        "parameters": [
          {
            "name": "analysisKey",
            "in": "path",
            "description": "Analysis key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDeletionAnalysisReportPublicAnalysisResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/deletion-analyses": {
      "post": {
        "tags": [],
        "summary": "Launches a Deletion Analysis Process",
        "description": "Launches a Deletion Analysis Process. This evaluates the impacts of deleting the associated asset.\nFor applications and agents, considers the impacts of undeploying them from their running stages, on their consumers\nFor libraries, considers what running applications are still consuming them, and evaluating the impact they'll have, on not being available to build, going forward\n\nAPI Client needs the **Asset management > Delete** permission.",
        "operationId": "DeletionAnalysis_LaunchDeletionAnalysis",
        "requestBody": {
          "description": "LaunchDeletionAnalysisRequest with the application to be deleted.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicLaunchDeletionAnalysisRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicLaunchDeletionAnalysisRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReferenceKeyResponse"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Asset management > Delete** permission."
      }
    },
    "/deployment-analyses/{analysisKey}": {
      "get": {
        "tags": [],
        "summary": "Returns the deployment analysis result",
        "description": "Returns the deployment analysis report once the analysis is completed.\n\n",
        "operationId": "DeploymentAnalysis_GetResult",
        "parameters": [
          {
            "name": "analysisKey",
            "in": "path",
            "description": "Analysis key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDeploymentAnalysisReportPublicAnalysisResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/deployment-analyses": {
      "post": {
        "tags": [],
        "summary": "Launches a Deployment Analysis Process",
        "description": "Launches a Deployment Analysis Process, detecting impacts that promoting this asset to a new stage might have on its consumers, and what might be the impacts on itself, as it relates to its producers\n\nAPI Client needs the **Release management > Deploy assets** permission.",
        "operationId": "DeploymentAnalysis_LaunchDeploymentAnalysis",
        "requestBody": {
          "description": "LaunchDeploymentAnalysisRequest with the revision to be deployed, and the environment to be deployed to.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicLaunchDeploymentAnalysisRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PublicLaunchDeploymentAnalysisRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReferenceKeyResponse"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Release management > Deploy assets** permission."
      }
    },
    "/assets/{assetKey}/consumers": {
      "get": {
        "tags": [],
        "summary": "Lists all consumer assets of an asset.",
        "description": "Returns a list of assets that consume a specific asset.\n\n",
        "operationId": "DependencyManagement_ListAssetConsumers",
        "parameters": [
          {
            "name": "assetKey",
            "in": "path",
            "description": "The asset's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "environmentKey",
            "in": "query",
            "description": "Filters consumers by a specific environment. Only assets deployed in this environment are returned. When omitted, defaults to the publishing environment (1CP)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "publicElementKey",
            "in": "query",
            "description": "Filters consumers by a specific public element they use.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "allowMultipleVersions",
            "in": "query",
            "description": "If true, returns multiple versions of a consumer asset. If false, returns only the highest version. Defaults to false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort. Allowed: name.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetDependencyListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/assets/{assetKey}/revisions/{revisionNumber}/producer-graph": {
      "get": {
        "tags": [],
        "summary": "Lists the producer assets that a specific asset revision depends on.",
        "description": "Lists the producer dependency graph for an asset revision.\n\n",
        "operationId": "DependencyManagement_ListAssetProducerGraph",
        "parameters": [
          {
            "name": "assetKey",
            "in": "path",
            "description": "The asset's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revisionNumber",
            "in": "path",
            "description": "The revision number.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "maxDepth",
            "in": "query",
            "description": "The maximum depth to explore in the dependency hierarchy. Default is 0 (infinite).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "environmentKey",
            "in": "query",
            "description": "Filters producers by a specific environment. Only assets deployed in this environment are returned. When omitted, defaults to the publishing environment (1CP)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "producerTypeFilter",
            "in": "query",
            "description": "Filters producers by type. Allowed values: Deployable, Libraries, All.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort. Allowed: name.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetDependencyProducerListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/assets/{assetKey}/revisions/{revisionNumber}/producers": {
      "get": {
        "tags": [],
        "summary": "Lists the producer assets that a specific asset revision depends on.",
        "description": "Returns a list of all producer assets that a specific asset revision depends on, directly or indirectly.\n\n",
        "operationId": "DependencyManagement_ListAssetProducers",
        "parameters": [
          {
            "name": "assetKey",
            "in": "path",
            "description": "The asset's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revisionNumber",
            "in": "path",
            "description": "The revision number.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "maxDepth",
            "in": "query",
            "description": "The maximum depth to explore in the dependency hierarchy. Default is 0 (infinite).",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "environmentKey",
            "in": "query",
            "description": "Filters producers by a specific environment. Only assets deployed in this environment are returned. When omitted, defaults to the publishing environment (1CP)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "producerTypeFilter",
            "in": "query",
            "description": "Filters producers by type. Allowed values: Deployable, Libraries, All.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort. Allowed: name.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetDependencyWithProducerReferencesListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/assets/{assetKey}/revisions/{revisionNumber}/consumers": {
      "get": {
        "tags": [],
        "summary": "Lists all consumer assets of an asset revision.",
        "description": "Returns a list of assets that consume a specific revision of an asset.\n\n",
        "operationId": "DependencyManagement_ListAssetRevisionConsumers",
        "parameters": [
          {
            "name": "assetKey",
            "in": "path",
            "description": "The asset's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revisionNumber",
            "in": "path",
            "description": "The revision number.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "environmentKey",
            "in": "query",
            "description": "Filters consumers by a specific environment. Only assets deployed in this environment are returned. When omitted, defaults to the publishing environment (1CP)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "publicElementKey",
            "in": "query",
            "description": "Filters consumers by a specific public element they use.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "allowMultipleVersions",
            "in": "query",
            "description": "If true, returns multiple versions of a consumer asset. If false, returns only the highest version. Defaults to false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort. Allowed: name.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetDependencyListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/assets/{assetKey}/revisions/{revisionNumber}/public-elements": {
      "get": {
        "tags": [],
        "summary": "Lists all the public elements of a specific asset revision.",
        "description": "Returns a list of public elements for a specific asset revision.\n\n",
        "operationId": "DependencyManagement_ListAssetRevisionPublicElements",
        "parameters": [
          {
            "name": "assetKey",
            "in": "path",
            "description": "The asset's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revisionNumber",
            "in": "path",
            "description": "The revision number.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort. Allowed: name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeHidden",
            "in": "query",
            "description": "If the result should include hidden elements. Default is true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicElementStringTypesListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/assets/{assetKey}/revisions/{revisionNumber}/referenced-elements": {
      "get": {
        "tags": [],
        "summary": "Lists all public elements referenced by a specific asset revision.",
        "description": "Returns a list of all public elements referenced by a specific asset revision, as defined in the IDE.\n\nAPI Client needs the **Asset management > Open** permission.",
        "operationId": "DependencyManagement_ListReferencedElements",
        "parameters": [
          {
            "name": "assetKey",
            "in": "path",
            "description": "The asset's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revisionNumber",
            "in": "path",
            "description": "The revision number.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort. Allowed: name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeHidden",
            "in": "query",
            "description": "If the result should include hidden elements. Default is true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReferencedElementStringTypesListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Asset management > Open** permission."
      }
    },
    "/public-elements/search": {
      "post": {
        "tags": [],
        "summary": "Lists all public elements of assets according to the complex filter.",
        "description": "Only public elements that the user has permission to reference are returned.\n\n",
        "operationId": "DependencyManagement_SearchPublicElements",
        "requestBody": {
          "description": "The search filter criteria.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DependenciesPublicElementFilter"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DependenciesPublicElementFilter"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicElementStringTypesPagedListResponse"
                }
              }
      

# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/outsystems/refs/heads/main/openapi/outsystems-dependency-management-api-v1-openapi.json