# Applications

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

> Get a list of applications

```json
{"openapi":"3.0.1","info":{"title":"DenvrCloud API","version":"v1"},"paths":{"/api/v1/servers/applications/GetApplications":{"get":{"tags":["servers/applications"],"summary":"Get a list of applications","operationId":"ApiV1ServersApplicationsGetapplicationsGet","responses":{"200":{"description":"Success","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":"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.1","info":{"title":"DenvrCloud API","version":"v1"},"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":"Success","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":"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},"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}},"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.1","info":{"title":"DenvrCloud API","version":"v1"},"paths":{"/api/v1/servers/applications/GetConfigurations":{"get":{"tags":["servers/applications"],"summary":"Get a list of application configurations","operationId":"ApiV1ServersApplicationsGetconfigurationsGet","responses":{"200":{"description":"Success","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":"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.1","info":{"title":"DenvrCloud API","version":"v1"},"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":"Success","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":"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.1","info":{"title":"DenvrCloud API","version":"v1"},"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":"Success","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":"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}},"additionalProperties":false}}}}
```

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

> \## Example 1: Jupyter Notebook Application> \
> \`\`\`json> \
> {> \
> &#x20; "name": "my-jupyter-notebook",> \
> &#x20; "cluster": "Msc1",> \
> &#x20; "hardwarePackageName": "g-nvidia-1xa100-40gb-pcie-14vcpu-112gb",> \
> &#x20; "applicationCatalogItemName": "jupyter-notebook",> \
> &#x20; "applicationCatalogItemVersion": "python-3.11.9",> \
> &#x20; "resourcePool": "on-demand",> \
> &#x20; "sshKeys": \["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC..."],> \
> &#x20; "personalSharedStorage": true,> \
> &#x20; "tenantSharedStorage": true,> \
> &#x20; "jupyterToken": "your-jupyter-token"> \
> }> \
> \`\`\`> \\
>
> \
> \## Example 2: vLLM Server Application> \\
>
> \
> \*\*Notes:\*\*> \
> \- Model downloads and cache directories must use persistent storage (/mnt/direct-attached/,&#x20;> \
> &#x20; /mnt/personal-shared/, or /mnt/tenant-shared/). The root filesystem has limited capacity and is not suitable for these operations.> \
> \- Set \*\*proxyPort\*\* to the port where vLLM is listening (e.g., 8000). When combined with \*\*proxyApiKeys\*\*,&#x20;> \
> &#x20; external access is automatically configured via DNS with HTTPS and API key authentication.> \\
>
> \
> \`\`\`json> \
> {> \
> &#x20; "name": "my-vllm-server",> \
> &#x20; "cluster": "Msc1",> \
> &#x20; "hardwarePackageName": "g-nvidia-1xa100-40gb-pcie-14vcpu-112gb",> \
> &#x20; "applicationCatalogItemName": "vllm-server",> \
> &#x20; "applicationCatalogItemVersion": "v0.11.0",> \
> &#x20; "resourcePool": "on-demand",> \
> &#x20; "sshKeys": \["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC..."],> \
> &#x20; "startupCommands": \[> \
> &#x20;   "vllm serve MODEL\_ID\_OR\_PATH --download-dir /mnt/direct-attached/vllm-cache --host 127.0.0.1 --port 8000"> \
> &#x20; ],> \
> &#x20; "environmentVariables": {> \
> &#x20;   "HF\_TOKEN": "your-huggingface-token",> \
> &#x20;   "XDG\_CACHE\_HOME": "/mnt/direct-attached/.cache",> \
> &#x20;   "HF\_HOME": "/mnt/direct-attached/.cache/huggingface",> \
> &#x20;   "HUGGINGFACE\_HUB\_CACHE": "/mnt/direct-attached/.cache/huggingface/hub",> \
> &#x20;   "CUDA\_CACHE\_PATH": "/mnt/direct-attached/.cache/nv/ComputeCache",> \
> &#x20;   "PIP\_CACHE\_DIR": "/mnt/direct-attached/.cache/pip",> \
> &#x20;   "VLLM\_CACHE\_ROOT": "/mnt/direct-attached/.cache/vllm",> \
> &#x20;   "VLLM\_ASSETS\_CACHE": "/mnt/direct-attached/.cache/vllm/assets"> \
> &#x20; },> \
> &#x20; "personalSharedStorage": true,> \
> &#x20; "tenantSharedStorage": true,> \
> &#x20; "proxyPort": "8000",> \
> &#x20; "proxyApiKeys": \["your-vllm-api-key"]> \
> }> \
> \`\`\`> \\
>
> \
> \## Example 3: Model Application> \
> \`\`\`json> \
> {> \
> &#x20; "name": "my-gpt-oss-app",> \
> &#x20; "cluster": "Msc1",> \
> &#x20; "hardwarePackageName": "g-nvidia-1xa100-40gb-pcie-14vcpu-112gb",> \
> &#x20; "applicationCatalogItemName": "openai-gpt-oss",> \
> &#x20; "applicationCatalogItemVersion": "openai/gpt-oss-20b",> \
> &#x20; "resourcePool": "on-demand",> \
> &#x20; "proxyApiKeys": \["your-api-key"]> \
> }> \
> \`\`\`

````json
{"openapi":"3.0.1","info":{"title":"DenvrCloud API","version":"v1"},"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":"## Example 1: Jupyter Notebook Application\r\n```json\r\n{\r\n  \"name\": \"my-jupyter-notebook\",\r\n  \"cluster\": \"Msc1\",\r\n  \"hardwarePackageName\": \"g-nvidia-1xa100-40gb-pcie-14vcpu-112gb\",\r\n  \"applicationCatalogItemName\": \"jupyter-notebook\",\r\n  \"applicationCatalogItemVersion\": \"python-3.11.9\",\r\n  \"resourcePool\": \"on-demand\",\r\n  \"sshKeys\": [\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...\"],\r\n  \"personalSharedStorage\": true,\r\n  \"tenantSharedStorage\": true,\r\n  \"jupyterToken\": \"your-jupyter-token\"\r\n}\r\n```\r\n\r\n## Example 2: vLLM Server Application\r\n\r\n**Notes:**\r\n- Model downloads and cache directories must use persistent storage (/mnt/direct-attached/, \r\n  /mnt/personal-shared/, or /mnt/tenant-shared/). The root filesystem has limited capacity and is not suitable for these operations.\r\n- Set **proxyPort** to the port where vLLM is listening (e.g., 8000). When combined with **proxyApiKeys**, \r\n  external access is automatically configured via DNS with HTTPS and API key authentication.\r\n\r\n```json\r\n{\r\n  \"name\": \"my-vllm-server\",\r\n  \"cluster\": \"Msc1\",\r\n  \"hardwarePackageName\": \"g-nvidia-1xa100-40gb-pcie-14vcpu-112gb\",\r\n  \"applicationCatalogItemName\": \"vllm-server\",\r\n  \"applicationCatalogItemVersion\": \"v0.11.0\",\r\n  \"resourcePool\": \"on-demand\",\r\n  \"sshKeys\": [\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...\"],\r\n  \"startupCommands\": [\r\n    \"vllm serve MODEL_ID_OR_PATH --download-dir /mnt/direct-attached/vllm-cache --host 127.0.0.1 --port 8000\"\r\n  ],\r\n  \"environmentVariables\": {\r\n    \"HF_TOKEN\": \"your-huggingface-token\",\r\n    \"XDG_CACHE_HOME\": \"/mnt/direct-attached/.cache\",\r\n    \"HF_HOME\": \"/mnt/direct-attached/.cache/huggingface\",\r\n    \"HUGGINGFACE_HUB_CACHE\": \"/mnt/direct-attached/.cache/huggingface/hub\",\r\n    \"CUDA_CACHE_PATH\": \"/mnt/direct-attached/.cache/nv/ComputeCache\",\r\n    \"PIP_CACHE_DIR\": \"/mnt/direct-attached/.cache/pip\",\r\n    \"VLLM_CACHE_ROOT\": \"/mnt/direct-attached/.cache/vllm\",\r\n    \"VLLM_ASSETS_CACHE\": \"/mnt/direct-attached/.cache/vllm/assets\"\r\n  },\r\n  \"personalSharedStorage\": true,\r\n  \"tenantSharedStorage\": true,\r\n  \"proxyPort\": \"8000\",\r\n  \"proxyApiKeys\": [\"your-vllm-api-key\"]\r\n}\r\n```\r\n\r\n## Example 3: Model Application\r\n```json\r\n{\r\n  \"name\": \"my-gpt-oss-app\",\r\n  \"cluster\": \"Msc1\",\r\n  \"hardwarePackageName\": \"g-nvidia-1xa100-40gb-pcie-14vcpu-112gb\",\r\n  \"applicationCatalogItemName\": \"openai-gpt-oss\",\r\n  \"applicationCatalogItemVersion\": \"openai/gpt-oss-20b\",\r\n  \"resourcePool\": \"on-demand\",\r\n  \"proxyApiKeys\": [\"your-api-key\"]\r\n}\r\n```","operationId":"ApiV1ServersApplicationsCreatecatalogapplicationPost","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCreateRequest"}},"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":"Client Error"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"409":{"description":"Conflict"},"422":{"description":"Client Error"},"500":{"description":"Server Error"}}}}},"components":{"schemas":{"ApplicationsApiCreateRequest":{"required":["applicationCatalogItemName","applicationCatalogItemVersion","cluster","hardwarePackageName","name"],"type":"object","properties":{"name":{"maxLength":52,"minLength":0,"type":"string","description":"The application name.\r\nMust be 52 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.\r\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.\r\nCommands are executed in order and joined with semicolons.\r\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.\r\nKey-value pairs that will be set in the container environment.\r\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\r\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.\r\nMultiple keys can be provided to support key rotation.\r\nEach key must contain only alphanumeric characters, hyphens, and underscores.","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/CreateCustomApplication

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

```json
{"openapi":"3.0.1","info":{"title":"DenvrCloud API","version":"v1"},"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.","operationId":"ApiV1ServersApplicationsCreatecustomapplicationPost","requestBody":{"content":{"application/json-patch+json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCustomApiCreateRequest"}},"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":"Client Error"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"409":{"description":"Conflict"},"422":{"description":"Client Error"},"500":{"description":"Server Error"}}}}},"components":{"schemas":{"ApplicationsApiCustomApiCreateRequest":{"required":["cluster","hardwarePackageName","imageUrl","name"],"type":"object","properties":{"name":{"maxLength":52,"minLength":0,"type":"string","description":"The application name.\r\nMust be 52 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.\r\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.\r\nNames must start with a letter or underscore and contain only alphanumeric characters and underscores.\r\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","nullable":true},"readinessWatcherPort":{"type":"integer","description":"The port used for monitoring application readiness and status.\r\nCommon examples: \r\n- 443 (JupyterLab) \r\n- 22 (SSH)","format":"int32","nullable":true},"proxyPort":{"type":"integer","description":"The port your application uses to receive HTTPS traffic.\r\nWhen set, a reverse proxy will be automatically configured in front of your application.\r\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.\r\nOptional, but requires proxyPort to be set for the reverse proxy to be configured.\r\nEach key must:\r\n- Contain only alphanumeric characters, hyphens, and underscores\r\n- Not exceed 512 characters\r\n- Not be null or whitespace\r\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.\r\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.\r\nScript names must:\r\n- Contain only alphanumeric characters, dots, spaces and parentheses\r\n- Not exceed 255 characters\r\nScript content must:\r\n- Not be null or empty\r\n- Not exceed 16384 characters\r\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.\r\nIf not provided in the ImageRepository object, will be inferred from the imageUrl.\r\nExamples:\r\n- Docker Hub: \"https://index.docker.io/v1/\"\r\n- GitHub Container Registry: \"https://ghcr.io/\"","nullable":true},"username":{"type":"string","description":"The username for authentication with private repositories.\r\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.\r\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.1","info":{"title":"DenvrCloud API","version":"v1"},"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-patch+json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandRequest"}},"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":"Client Error"},"403":{"description":"Forbidden"},"409":{"description":"Conflict"},"500":{"description":"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}}}}
```

## 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.1","info":{"title":"DenvrCloud API","version":"v1"},"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-patch+json":{"schema":{"$ref":"#/components/schemas/ApplicationsApiCommandRequest"}},"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":"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.1","info":{"title":"DenvrCloud API","version":"v1"},"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":"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.1","info":{"title":"DenvrCloud API","version":"v1"},"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":"Success","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":"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}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.denvrdata.com/docs/api-reference/applications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
