OutSystems ODC Environment Configurations API

REST endpoints for managing environment (stage) configurations in ODC, covering custom domains, IP filters and private gateways.

OpenAPI Specification

outsystems-environment-configurations-api-v1-openapi.json Raw ↑
{
  "openapi": "3.0.3",
  "info": {
    "title": "Environment Configurations API",
    "description": "REST endpoints for managing environment (stage) configurations in ODC. Covers custom domains, IP filters, and Private Gateways, enabling you to automate the same configurations available in ODC Portal.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://ODC_PORTAL_DOMAIN/api/environment-configurations/v1",
      "description": "Replace ODC_PORTAL_DOMAIN with the domain of your organization."
    },
    {
      "url": "https://{odc-portal-domain}/api/environment-configurations/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": {
    "/environments/{environmentKey}/domains/{domainKey}": {
      "delete": {
        "tags": [
          "Domains"
        ],
        "summary": "Deletes a domain from an environment (stage).",
        "description": "Deletes a domain from an environment (stage).\n\nAPI Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).",
        "operationId": "Domains_Delete",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainKey",
            "in": "path",
            "description": "The domain's 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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage)."
      },
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Returns the details of a specific domain for the given environment (stage).",
        "description": "Returns the details of a specific domain for the given environment (stage).\n\nAPI Client needs the **Configuration management > View configurations** permission for the target environment (stage).",
        "operationId": "Domains_Get",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainKey",
            "in": "path",
            "description": "The domain's 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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Domain"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > View configurations** permission for the target environment (stage)."
      },
      "patch": {
        "tags": [
          "Domains"
        ],
        "summary": "Patches the default app (App Domain) for the specified custom domain.",
        "description": "Patches the default app (App Domain) for the specified custom domain.\n\nAPI Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).",
        "operationId": "Domains_Patch",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainKey",
            "in": "path",
            "description": "The domain's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The patch request containing the application key and redirect option.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DomainPatchRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DomainPatchRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "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"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainPatchResponse"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage)."
      }
    },
    "/environments/{environmentKey}/domains": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Returns a list of domains for a specific environment (stage).",
        "description": "Returns a list of domains for a specific environment (stage).\n\nAPI Client needs the **Configuration management > View configurations** permission for the target environment (stage).",
        "operationId": "Domains_Get",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of results to return. Allowed values: 1 to 100. Default value: 100.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset of the first result to return. Default value: 0.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "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"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainPagedListResponse"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > View configurations** permission for the target environment (stage)."
      },
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Creates a new domain for the specified environment (stage). You can provide the domain's hostname and name.",
        "description": "Creates a new domain for the specified environment (stage). You can provide the domain's hostname and name.\n\nAPI Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).",
        "operationId": "Domains_Post",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The domain object with the necessary information",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DomainRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DomainRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "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"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Domain"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage)."
      }
    },
    "/environments/{environmentKey}/default-domain": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Retrieves the default domain for the given environment (stage).",
        "description": "Retrieves the default domain for the given environment (stage).\n\nAPI Client needs the **Configuration management > View configurations** permission for the target environment (stage).",
        "operationId": "EnvironmentConfigurations_Get",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's 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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultDomainResponse"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > View configurations** permission for the target environment (stage)."
      },
      "patch": {
        "tags": [
          "Domains"
        ],
        "summary": "Updates the default domain for the given environment (stage).",
        "description": "Updates the default domain for the given environment (stage).\n\nAPI Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage).",
        "operationId": "EnvironmentConfigurations_Patch",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The request object containing the new Default Domain.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PatchDefaultDomainRequest"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PatchDefaultDomainRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "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"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > Manage custom domains** permission for the target environment (stage)."
      }
    },
    "/environments/{environmentKey}/ip-filter-groups/{ipFilterGroupKey}": {
      "delete": {
        "tags": [
          "IP filters"
        ],
        "summary": "Deletes a specific IP filter group for an environment (stage).",
        "description": "Deletes a specific IP filter group for an environment (stage).\n\nAPI Client needs the **Configuration management > Manage IP filters** permission for the target environment (stage).",
        "operationId": "IpFilterGroups_Delete",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ipFilterGroupKey",
            "in": "path",
            "description": "The IP filter group's 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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > Manage IP filters** permission for the target environment (stage)."
      },
      "get": {
        "tags": [
          "IP filters"
        ],
        "summary": "Returns information about a specific IP filter group for an environment (stage).",
        "description": "Returns information about a specific IP filter group for an environment (stage).\n\nAPI Client needs the **Configuration management > View configurations** permission for the target environment (stage).",
        "operationId": "IpFilterGroups_Get",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ipFilterGroupKey",
            "in": "path",
            "description": "The IP filter group's 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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpFilterGroup"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > View configurations** permission for the target environment (stage)."
      },
      "patch": {
        "tags": [
          "IP filters"
        ],
        "summary": "Updates an IP filter group for an environment (stage).",
        "description": "Updates an IP filter group for an environment (stage).\n\nAPI Client needs the **Configuration management > Manage IP filters** permission for the target environment (stage).",
        "operationId": "IpFilterGroups_Patch",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ipFilterGroupKey",
            "in": "path",
            "description": "The IP filter group's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The details of the IP filter group being updated.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PatchIpFilterGroup"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PatchIpFilterGroup"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "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"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > Manage IP filters** permission for the target environment (stage)."
      }
    },
    "/environments/{environmentKey}/ip-filter-groups": {
      "get": {
        "tags": [
          "IP filters"
        ],
        "summary": "Returns the list of IP filter groups for an environment (stage).",
        "description": "Returns the list of IP filter groups for an environment (stage).\n\nAPI Client needs the **Configuration management > View configurations** permission for the target environment (stage).",
        "operationId": "IpFilterGroups_List",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appKeys",
            "in": "query",
            "description": "Comma-separated list of app keys to filter the results.",
            "schema": {
              "type": "array",
              "items": {
                "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"
                }
              }
            }
          },
          "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"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpFilterGroups"
                }
              }
            }
          }
        },
        "x-os-permissions": "API Client needs the **Configuration management > View configurations** permission for the target environment (stage)."
      },
      "post": {
        "tags": [
          "IP filters"
        ],
        "summary": "Creates a new IP filter group in an environment (stage).",
        "description": "Creates a new IP filter group in an environment (stage).\n\nAPI Client needs the **Configuration management > Manage IP filters** permission for the target environment (stage).",
        "operationId": "IpFilterGroups_Post",
        "parameters": [
          {
            "name": "environmentKey",
            "in": "path",
            "description": "The environment's key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The details of the new IP filter group.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BaseIpFilterGroup"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BaseIpFilterGroup"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schem

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