> For the complete documentation index, see [llms.txt](https://docs.denvrdata.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.denvrdata.com/docs/api-reference/applications.md).

# Applications

Explore this section for comprehensive information on endpoints related to the deployment, management, and operation of applications within our cloud software API environment.

## GET /api/v1/servers/applications/GetApplications

> Get a list of applications

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/GetApplications":{"get":{"tags":["servers/applications"],"summary":"Get a list of applications","operationId":"ApiV1ServersApplicationsGetapplicationsGet","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiOverview"}},"application/json":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiOverview"}},"text/json":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiOverview"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ListResultDtoOfApplicationsApiOverview":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationsApiOverview"},"nullable":true}},"additionalProperties":false},"ApplicationsApiOverview":{"type":"object","properties":{"id":{"type":"string","nullable":true},"cluster":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"tenant":{"type":"string","nullable":true},"createdBy":{"type":"string","nullable":true},"privateIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"resourcePool":{"type":"string","nullable":true},"dns":{"type":"string","nullable":true},"sshUsername":{"type":"string","nullable":true},"applicationCatalogItemName":{"type":"string","nullable":true},"applicationCatalogItemVersionName":{"type":"string","nullable":true},"hardwarePackageName":{"type":"string","nullable":true},"persistedDirectAttachedStorage":{"type":"boolean"},"personalSharedStorage":{"type":"boolean"},"tenantSharedStorage":{"type":"boolean"}},"additionalProperties":false}}}}
```

## GET /api/v1/servers/applications/GetApplicationDetails

> Get detailed information about a specific application

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/GetApplicationDetails":{"get":{"tags":["servers/applications"],"summary":"Get detailed information about a specific application","operationId":"ApiV1ServersApplicationsGetapplicationdetailsGet","parameters":[{"name":"Id","in":"query","description":"The application name","required":true,"schema":{"type":"string"}},{"name":"Cluster","in":"query","description":"The cluster you're operating on","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ApplicationsApiDetails"}},"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiDetails"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ApplicationsApiDetails":{"type":"object","properties":{"instanceDetails":{"$ref":"#/components/schemas/InstanceDetails"},"applicationCatalogItem":{"$ref":"#/components/schemas/ApplicationsApiCatalogItem"},"hardwarePackage":{"$ref":"#/components/schemas/ApplicationsApiApplicationConfig"},"servingDetails":{"$ref":"#/components/schemas/ApplicationsApiServingDetails"}},"additionalProperties":false},"InstanceDetails":{"type":"object","properties":{"id":{"type":"string","nullable":true},"cluster":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"statusReason":{"type":"string","nullable":true},"statusMessage":{"type":"string","nullable":true},"privateIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"imageCmdOverride":{"type":"string","nullable":true},"environmentVariables":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"The environment variables the application container is running with. Reflects the effective\nconfiguration: variables supplied at creation, values injected from dedicated request fields\n(e.g. jupyterToken), and catalog defaults merged at deployment. Platform-internal variables\n(e.g. SSH key material) are excluded. Values are not redacted and may include secrets, so\ntreat the response as sensitive.","nullable":true},"readinessWatcherPort":{"type":"integer","format":"int32","nullable":true},"proxyPort":{"type":"integer","format":"int32","nullable":true},"createdBy":{"type":"string","nullable":true},"tenant":{"type":"string","nullable":true},"resourcePool":{"type":"string","nullable":true},"nodeSelector":{"type":"string","nullable":true},"creationTime":{"type":"string","format":"date-time"},"lastUpdated":{"type":"string","format":"date-time","nullable":true},"dns":{"type":"string","nullable":true},"persistedDirectAttachedStorage":{"type":"boolean"},"personalSharedStorage":{"type":"boolean"},"tenantSharedStorage":{"type":"boolean"},"runAsRoot":{"type":"boolean","description":"Run container with root privileges. When disabled, requires UID and GID.","nullable":true},"containerUid":{"type":"integer","description":"User ID (UID) for running container when not using root privileges","format":"int32","nullable":true},"containerGid":{"type":"integer","description":"Group ID (GID) for running container when not using root privileges","format":"int32","nullable":true}},"additionalProperties":false},"ApplicationsApiCatalogItem":{"type":"object","properties":{"name":{"type":"string","nullable":true},"applicationSourceDetailsUrl":{"type":"string","nullable":true},"applicationSourceOwner":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"versions":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationsApiCatalogItemVersion"},"nullable":true}},"additionalProperties":false},"ApplicationsApiCatalogItemVersion":{"type":"object","properties":{"name":{"type":"string","nullable":true},"imageUrl":{"type":"string","nullable":true},"imageLastPushDate":{"type":"string","format":"date-time","nullable":true},"platform":{"type":"string","nullable":true},"launchType":{"type":"string","nullable":true},"releaseNotesUrl":{"type":"string","nullable":true},"accelerator":{"type":"string","nullable":true},"minVramGb":{"type":"integer","format":"int32","nullable":true},"defaultProxyPort":{"type":"string","nullable":true},"defaultEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string","nullable":true},"nullable":true}},"additionalProperties":false},"ApplicationsApiApplicationConfig":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"gpuCount":{"type":"integer","format":"int32","nullable":true},"gpuType":{"type":"string","nullable":true},"gpuBrand":{"type":"string","nullable":true},"gpuName":{"type":"string","nullable":true},"vcpusCount":{"type":"integer","format":"int32","nullable":true},"memoryGb":{"type":"integer","format":"int64","nullable":true},"directAttachedStorageGb":{"type":"integer","format":"int32","nullable":true},"pricePerHour":{"type":"number","format":"double","nullable":true},"vramGb":{"type":"integer","format":"int32","nullable":true},"clusters":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false},"ApplicationsApiServingDetails":{"type":"object","properties":{"platform":{"type":"string","nullable":true},"modelId":{"type":"string","nullable":true},"baseUrl":{"type":"string","nullable":true},"healthUrl":{"type":"string","nullable":true},"requiresAuthentication":{"type":"boolean"},"authScheme":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## GET /api/v1/servers/applications/GetConfigurations

> Get a list of application configurations

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/GetConfigurations":{"get":{"tags":["servers/applications"],"summary":"Get a list of application configurations","operationId":"ApiV1ServersApplicationsGetconfigurationsGet","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiApplicationConfig"}},"application/json":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiApplicationConfig"}},"text/json":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiApplicationConfig"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ListResultDtoOfApplicationsApiApplicationConfig":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationsApiApplicationConfig"},"nullable":true}},"additionalProperties":false},"ApplicationsApiApplicationConfig":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"gpuCount":{"type":"integer","format":"int32","nullable":true},"gpuType":{"type":"string","nullable":true},"gpuBrand":{"type":"string","nullable":true},"gpuName":{"type":"string","nullable":true},"vcpusCount":{"type":"integer","format":"int32","nullable":true},"memoryGb":{"type":"integer","format":"int64","nullable":true},"directAttachedStorageGb":{"type":"integer","format":"int32","nullable":true},"pricePerHour":{"type":"number","format":"double","nullable":true},"vramGb":{"type":"integer","format":"int32","nullable":true},"clusters":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false}}}}
```

## GET /api/v1/servers/applications/GetAvailability

> Get detailed information on available configurations for applications

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/GetAvailability":{"get":{"tags":["servers/applications"],"summary":"Get detailed information on available configurations for applications","operationId":"ApiV1ServersApplicationsGetavailabilityGet","parameters":[{"name":"cluster","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"resourcePool","in":"query","description":"","required":true,"schema":{"type":"string"}},{"name":"applicationCatalogItemName","in":"query","schema":{"type":"string"}},{"name":"applicationCatalogItemVersion","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiApplicationConfigAvailability"}},"application/json":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiApplicationConfigAvailability"}},"text/json":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiApplicationConfigAvailability"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ListResultDtoOfApplicationsApiApplicationConfigAvailability":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationsApiApplicationConfigAvailability"},"nullable":true}},"additionalProperties":false},"ApplicationsApiApplicationConfigAvailability":{"type":"object","properties":{"configuration":{"type":"string","nullable":true},"cluster":{"type":"string","nullable":true},"rpool":{"type":"string","nullable":true},"price":{"type":"number","format":"double","nullable":true},"available":{"type":"boolean","nullable":true},"count":{"type":"integer","format":"int32","nullable":true},"maxCount":{"type":"integer","format":"int32","nullable":true},"availableNodeNames":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false}}}}
```

## GET /api/v1/servers/applications/GetApplicationCatalogItems

> Get a list of application catalog items

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/GetApplicationCatalogItems":{"get":{"tags":["servers/applications"],"summary":"Get a list of application catalog items","operationId":"ApiV1ServersApplicationsGetapplicationcatalogitemsGet","parameters":[{"name":"types","in":"query","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiCatalogItem"}},"application/json":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiCatalogItem"}},"text/json":{"schema":{"$ref":"#/components/schemas/ListResultDtoOfApplicationsApiCatalogItem"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ListResultDtoOfApplicationsApiCatalogItem":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationsApiCatalogItem"},"nullable":true}},"additionalProperties":false},"ApplicationsApiCatalogItem":{"type":"object","properties":{"name":{"type":"string","nullable":true},"applicationSourceDetailsUrl":{"type":"string","nullable":true},"applicationSourceOwner":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"versions":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationsApiCatalogItemVersion"},"nullable":true}},"additionalProperties":false},"ApplicationsApiCatalogItemVersion":{"type":"object","properties":{"name":{"type":"string","nullable":true},"imageUrl":{"type":"string","nullable":true},"imageLastPushDate":{"type":"string","format":"date-time","nullable":true},"platform":{"type":"string","nullable":true},"launchType":{"type":"string","nullable":true},"releaseNotesUrl":{"type":"string","nullable":true},"accelerator":{"type":"string","nullable":true},"minVramGb":{"type":"integer","format":"int32","nullable":true},"defaultProxyPort":{"type":"string","nullable":true},"defaultEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string","nullable":true},"nullable":true}},"additionalProperties":false}}}}
```

## Create a new application using a pre-defined configuration and application catalog item

> Request body examples for common catalog applications (Jupyter Notebook, vLLM Server,\
> Ollama Server, and model applications) are available from the examples dropdown in the\
> request body section below, along with per-application notes.\
> &#x20;           \
> The catalog item's default environment variables are applied automatically; any variable\
> you provide in \*\*environmentVariables\*\* takes precedence over the default. Each version's\
> defaults are returned as \*\*defaultEnvironmentVariables\*\* by the GetApplicationCatalogItems endpoint.

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/CreateCatalogApplication":{"post":{"tags":["servers/applications"],"summary":"Create a new application using a pre-defined configuration and application catalog item","description":"Request body examples for common catalog applications (Jupyter Notebook, vLLM Server,\nOllama Server, and model applications) are available from the examples dropdown in the\nrequest body section below, along with per-application notes.\n            \nThe catalog item's default environment variables are applied automatically; any variable\nyou provide in **environmentVariables** takes precedence over the default. Each version's\ndefaults are returned as **defaultEnvironmentVariables** by the GetApplicationCatalogItems endpoint.","operationId":"ApiV1ServersApplicationsCreatecatalogapplicationPost","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCreateRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCreateRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCreateRequest"}}}},"responses":{"202":{"description":"Accepted","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ApplicationsApiOverview"}},"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiOverview"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiOverview"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Payment Required"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"409":{"description":"Conflict"},"422":{"description":"Unprocessable Content"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ApplicationsApiCreateRequest":{"required":["applicationCatalogItemName","applicationCatalogItemVersion","cluster","hardwarePackageName","name"],"type":"object","properties":{"name":{"maxLength":47,"minLength":0,"type":"string","description":"The application name.\nMust be 47 characters or less."},"cluster":{"minLength":1,"type":"string","description":"The cluster you're operating on"},"hardwarePackageName":{"minLength":1,"type":"string","description":"The name or unique identifier of the application hardware configuration to use for the application."},"applicationCatalogItemName":{"minLength":1,"type":"string","description":"The name of the application catalog item."},"applicationCatalogItemVersion":{"minLength":1,"type":"string","description":"The version name of the application catalog item."},"resourcePool":{"type":"string","description":"The resource pool to use for the application","nullable":true},"sshKeys":{"type":"array","items":{"type":"string"},"description":"The SSH keys for accessing the application","nullable":true},"persistDirectAttachedStorage":{"type":"boolean","description":"Indicates whether to persist direct attached storage (if resource pool is reserved)"},"personalSharedStorage":{"type":"boolean","description":"Enable personal shared storage for the application"},"tenantSharedStorage":{"type":"boolean","description":"Enable tenant shared storage for the application"},"selectedNode":{"type":"string","description":"Specific node name to target for application deployment.\nUsed for non-on-demand resource pools to allow node-specific scheduling.","nullable":true},"jupyterToken":{"type":"string","description":"An authentication token for accessing Jupyter Notebook enabled applications","nullable":true},"startupCommands":{"type":"array","items":{"type":"string"},"description":"List of startup commands to be executed during container initialization.\nCommands are executed in order and joined with semicolons.\nUsed for custom initialization logic before the main application starts.","nullable":true},"environmentVariables":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Custom environment variables for the application.\nKey-value pairs that will be set in the container environment.\nUseful for authentication tokens, cache paths, and runtime configuration.","nullable":true},"proxyPort":{"type":"string","description":"The port number for the application proxy service. Required to setup the proxy\nUsed in conjunction with proxyApiKeys for authenticated access.","nullable":true},"proxyApiKeys":{"type":"array","items":{"type":"string"},"description":"Optional API keys for authenticating with the application proxy service.\nMultiple keys can be provided to support key rotation.\nEach key must contain only alphanumeric characters, hyphens, and underscores.","nullable":true},"inlineVolumes":{"type":"array","items":{"$ref":"#/components/schemas/InlineVolumeDto"},"description":"Persistent CephFS-backed volumes to provision and mount into the container.\nCurrently only Open WebUI applications use this; capped at one volume per app.","nullable":true},"openWebuiAdminEmail":{"maxLength":254,"minLength":0,"type":"string","description":"Admin user email for Open WebUI initial setup. Required when creating an open-webui application.","format":"email","nullable":true},"openWebuiAdminPassword":{"maxLength":128,"minLength":8,"type":"string","description":"Admin user password for Open WebUI initial setup. Required when creating an open-webui application.\nMinimum 8 characters.","nullable":true}},"additionalProperties":false},"InlineVolumeDto":{"type":"object","properties":{"name":{"type":"string","nullable":true},"capacity":{"type":"string","nullable":true},"mountPoint":{"type":"string","nullable":true}},"additionalProperties":false},"ApplicationsApiOverview":{"type":"object","properties":{"id":{"type":"string","nullable":true},"cluster":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"tenant":{"type":"string","nullable":true},"createdBy":{"type":"string","nullable":true},"privateIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"resourcePool":{"type":"string","nullable":true},"dns":{"type":"string","nullable":true},"sshUsername":{"type":"string","nullable":true},"applicationCatalogItemName":{"type":"string","nullable":true},"applicationCatalogItemVersionName":{"type":"string","nullable":true},"hardwarePackageName":{"type":"string","nullable":true},"persistedDirectAttachedStorage":{"type":"boolean"},"personalSharedStorage":{"type":"boolean"},"tenantSharedStorage":{"type":"boolean"}},"additionalProperties":false}}}}
```

## Create a new custom application using a pre-defined configuration and user-defined container image.

> Custom applications must be deployed to a reserved resource pool; the on-demand pool\
> is not supported for custom images.\
> &#x20;           \
> Request body examples covering a public container image, a vLLM inference server\
> exposed through the reverse proxy, a private registry, and persistent direct attached\
> storage are available from the examples dropdown in the request body section below.

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/CreateCustomApplication":{"post":{"tags":["servers/applications"],"summary":"Create a new custom application using a pre-defined configuration and user-defined container image.","description":"Custom applications must be deployed to a reserved resource pool; the on-demand pool\nis not supported for custom images.\n            \nRequest body examples covering a public container image, a vLLM inference server\nexposed through the reverse proxy, a private registry, and persistent direct attached\nstorage are available from the examples dropdown in the request body section below.","operationId":"ApiV1ServersApplicationsCreatecustomapplicationPost","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCustomApiCreateRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCustomApiCreateRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCustomApiCreateRequest"}}}},"responses":{"202":{"description":"Accepted","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ApplicationsApiOverview"}},"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiOverview"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiOverview"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Payment Required"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"409":{"description":"Conflict"},"422":{"description":"Unprocessable Content"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ApplicationsApiCustomApiCreateRequest":{"required":["cluster","hardwarePackageName","imageUrl","name"],"type":"object","properties":{"name":{"maxLength":47,"minLength":0,"type":"string","description":"The application name.\nMust be 47 characters or less."},"cluster":{"minLength":1,"type":"string","description":"The cluster you're operating on"},"hardwarePackageName":{"minLength":1,"type":"string","description":"The name or unique identifier of the application hardware configuration to use for the application."},"imageUrl":{"minLength":1,"type":"string","description":"Image URL for the custom application."},"imageCmdOverride":{"type":"array","items":{"type":"string"},"description":"Optional Image CMD override allows users to specify a custom command to run in the container.\nMust be a JSON array (e.g., [\"python\", \"train.py\"])","nullable":true},"environmentVariables":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Environment variables for the application.\nNames must start with a letter or underscore and contain only alphanumeric characters and underscores.\nValues must not contain null characters, carriage returns, or newlines.","nullable":true},"imageRepository":{"$ref":"#/components/schemas/ImageRepositoryDto"},"resourcePool":{"type":"string","description":"The resource pool to use for the application.\nCustom applications support reserved resource pools only; on-demand is not supported.","nullable":true},"readinessWatcherPort":{"type":"integer","description":"The port used for monitoring application readiness and status.\nCommon examples: \n- 443 (JupyterLab) \n- 22 (SSH)","format":"int32","nullable":true},"proxyPort":{"type":"integer","description":"The port your application uses to receive HTTPS traffic.\nWhen set, a reverse proxy will be automatically configured in front of your application.\nPort 443 is reserved for the reverse proxy and cannot be used.","format":"int32","nullable":true},"proxyApiKeys":{"type":"array","items":{"type":"string"},"description":"API keys for authenticating with the reverse proxy service.\nOptional, but requires proxyPort to be set for the reverse proxy to be configured.\nEach key must:\n- Contain only alphanumeric characters, hyphens, and underscores\n- Not exceed 512 characters\n- Not be null or whitespace\nMaximum 10 keys allowed.","nullable":true},"persistDirectAttachedStorage":{"type":"boolean","description":"Indicates whether to persist direct attached storage (if resource pool is reserved)"},"personalSharedStorage":{"type":"boolean","description":"Enable personal shared storage for the application"},"tenantSharedStorage":{"type":"boolean","description":"Enable tenant shared storage for the application"},"selectedNode":{"type":"string","description":"Specific node name to target for application deployment.\nUsed for non-on-demand resource pools to allow node-specific scheduling.","nullable":true},"userScripts":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Dictionary of script filenames to script content. Each scripts to be mounted at /etc/script/user-scripts for use in CMD or ENTRYPOINT.\nScript names must:\n- Contain only alphanumeric characters, dots, spaces and parentheses\n- Not exceed 255 characters\nScript content must:\n- Not be null or empty\n- Not exceed 16384 characters\n- Not contain invalid characters","nullable":true},"securityContext":{"$ref":"#/components/schemas/SecurityContextDto"}},"additionalProperties":false},"ImageRepositoryDto":{"type":"object","properties":{"hostname":{"type":"string","description":"The registry hostname for the container repository.\nIf not provided in the ImageRepository object, will be inferred from the imageUrl.\nExamples:\n- Docker Hub: \"https://index.docker.io/v1/\"\n- GitHub Container Registry: \"https://ghcr.io/\"","nullable":true},"username":{"type":"string","description":"The username for authentication with private repositories.\nThis is only required if the repository is private.","nullable":true},"password":{"type":"string","description":"The password or access token for authentication with private repositories.\nThis is only required if the repository is private.","nullable":true}},"additionalProperties":false},"SecurityContextDto":{"type":"object","properties":{"runAsRoot":{"type":"boolean","description":"Run container with root privileges. When disabled, requires UID and GID."},"containerUid":{"maximum":2147483647,"minimum":0,"type":"integer","description":"User ID (UID) for running container when not using root privileges","format":"int32","nullable":true},"containerGid":{"maximum":2147483647,"minimum":0,"type":"integer","description":"Group ID (GID) for running container when not using root privileges","format":"int32","nullable":true}},"additionalProperties":false},"ApplicationsApiOverview":{"type":"object","properties":{"id":{"type":"string","nullable":true},"cluster":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"tenant":{"type":"string","nullable":true},"createdBy":{"type":"string","nullable":true},"privateIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"resourcePool":{"type":"string","nullable":true},"dns":{"type":"string","nullable":true},"sshUsername":{"type":"string","nullable":true},"applicationCatalogItemName":{"type":"string","nullable":true},"applicationCatalogItemVersionName":{"type":"string","nullable":true},"hardwarePackageName":{"type":"string","nullable":true},"persistedDirectAttachedStorage":{"type":"boolean"},"personalSharedStorage":{"type":"boolean"},"tenantSharedStorage":{"type":"boolean"}},"additionalProperties":false}}}}
```

## POST /api/v1/servers/applications/StartApplication

> Start an application that has been previously set up and provisioned, but is currently OFFLINE

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/StartApplication":{"post":{"tags":["servers/applications"],"summary":"Start an application that has been previously set up and provisioned, but is currently OFFLINE","operationId":"ApiV1ServersApplicationsStartapplicationPost","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandRequest"}}}},"responses":{"202":{"description":"Accepted","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandResponse"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"402":{"description":"Payment Required"},"403":{"description":"Forbidden"},"409":{"description":"Conflict"},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}}},"components":{"schemas":{"ApplicationsApiCommandRequest":{"required":["cluster","id"],"type":"object","properties":{"id":{"minLength":1,"type":"string","description":"The application name"},"cluster":{"minLength":1,"type":"string","description":"The cluster you're operating on"}},"additionalProperties":false},"ApplicationsApiCommandResponse":{"required":["cluster","id"],"type":"object","properties":{"id":{"minLength":1,"type":"string","description":"The application name"},"cluster":{"minLength":1,"type":"string","description":"The cluster you're operating on"}},"additionalProperties":false}}}}
```

## POST /api/v1/servers/applications/StopApplication

> Stop an application that has been previously set up and provisioned, but is currently ONLINE

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/StopApplication":{"post":{"tags":["servers/applications"],"summary":"Stop an application that has been previously set up and provisioned, but is currently ONLINE","operationId":"ApiV1ServersApplicationsStopapplicationPost","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandRequest"}}}},"responses":{"202":{"description":"Accepted","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandResponse"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"409":{"description":"Conflict"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ApplicationsApiCommandRequest":{"required":["cluster","id"],"type":"object","properties":{"id":{"minLength":1,"type":"string","description":"The application name"},"cluster":{"minLength":1,"type":"string","description":"The cluster you're operating on"}},"additionalProperties":false},"ApplicationsApiCommandResponse":{"required":["cluster","id"],"type":"object","properties":{"id":{"minLength":1,"type":"string","description":"The application name"},"cluster":{"minLength":1,"type":"string","description":"The cluster you're operating on"}},"additionalProperties":false}}}}
```

## DELETE /api/v1/servers/applications/DestroyApplication

> Permanently delete a specified application, effectively wiping all its data and freeing up resources for other uses

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/DestroyApplication":{"delete":{"tags":["servers/applications"],"summary":"Permanently delete a specified application, effectively wiping all its data and freeing up resources for other uses","operationId":"ApiV1ServersApplicationsDestroyapplicationDelete","parameters":[{"name":"Id","in":"query","description":"The application name","required":true,"schema":{"type":"string"}},{"name":"Cluster","in":"query","description":"The cluster you're operating on","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Accepted","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandResponse"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ApplicationsApiCommandResponse":{"required":["cluster","id"],"type":"object","properties":{"id":{"minLength":1,"type":"string","description":"The application name"},"cluster":{"minLength":1,"type":"string","description":"The cluster you're operating on"}},"additionalProperties":false}}}}
```

## GET /api/v1/servers/applications/GetApplicationRuntimeLogs

> Get runtime logs for a specified application

```json
{"openapi":"3.0.4","info":{"title":"DenvrCloud API","version":"v1"},"tags":[{"name":"servers/applications"}],"paths":{"/api/v1/servers/applications/GetApplicationRuntimeLogs":{"get":{"tags":["servers/applications"],"summary":"Get runtime logs for a specified application","operationId":"ApiV1ServersApplicationsGetapplicationruntimelogsGet","parameters":[{"name":"Id","in":"query","description":"The name of the application","required":true,"schema":{"type":"string"}},{"name":"Cluster","in":"query","description":"The cluster where the application is running","required":true,"schema":{"type":"string"}},{"name":"Limit","in":"query","description":"The maximum number of log entries to return.","required":true,"schema":{"maximum":10000,"minimum":1,"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/ApplicationsApiRuntimeLogsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiRuntimeLogsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiRuntimeLogsResponse"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"409":{"description":"Conflict"},"500":{"description":"Internal Server Error"}}}}},"components":{"schemas":{"ApplicationsApiRuntimeLogsResponse":{"type":"object","properties":{"id":{"type":"string","description":"The name of the application","nullable":true},"cluster":{"type":"string","description":"The cluster where the application is running","nullable":true},"logs":{"type":"string","description":"The runtime logs content","nullable":true}},"additionalProperties":false}}}}
```
