# Custom applications
URL: https://docs.datarobot.com/en/docs/api/reference/public-api/custom_applications.html

> Use the endpoints described below to manage custom applications.

# Custom applications

Use the endpoints described below to manage custom applications.

## The list of custom application sources created

Operation path: `GET /api/v2/customApplicationSources/`

Authentication requirements: `BearerAuth`

The list of custom application sources.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | This many results will be skipped. |
| limit | query | integer | false | At most this many results are returned. |
| orderBy | query | string | false | The sort order applied to the list of custom application sources. Prefix the attribute name with a dash to sort in descending order, e.g. "-createdAt". |
| name | query | string | false | Allows for searching custom application sources by name. |
| createdBy | query | string | false | Filter custom application sources to return only those created by the specified user. |
| updatedAtStartTs | query | string(date-time) | false | Filter application sources modified on or after this timestamp. |
| updatedAtEndTs | query | string(date-time) | false | Filter application sources modified before this timestamp. |
| createdAtStartTs | query | string(date-time) | false | Filter application sources created on or after this timestamp. |
| createdAtEndTs | query | string(date-time) | false | Filter application sources created before this timestamp. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| orderBy | [name, -name, createdAt, -createdAt, updatedAt, -updatedAt] |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The array of custom application source objects.",
      "items": {
        "properties": {
          "createdAt": {
            "description": "The timestamp when the application source was created.",
            "type": "string"
          },
          "createdBy": {
            "description": "The username of who created the application source.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of who created the application source.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of who created the application source.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of user who created the application source.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The custom application source ID.",
            "type": "string"
          },
          "latestVersion": {
            "description": "The latest version of the source.",
            "properties": {
              "baseEnvironmentId": {
                "description": "The ID of the environment used for this source.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "baseEnvironmentVersionId": {
                "description": "The ID of the environment version used for this source.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "createdAt": {
                "description": "The timestamp of when the application source version was created.",
                "type": "string"
              },
              "createdBy": {
                "description": "The username of who created the application source version.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "creatorFirstName": {
                "description": "The first name of who created the application source version.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "creatorLastName": {
                "description": "The last name of who created the application source version.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "creatorUserhash": {
                "description": "The Gravatar hash of user who created the application source version.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "description": "The custom application source version ID.",
                "type": "string"
              },
              "isFrozen": {
                "description": "Marks that this version has become immutable.",
                "type": "boolean"
              },
              "items": {
                "description": "The list of file items.",
                "items": {
                  "properties": {
                    "commitSha": {
                      "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "created": {
                      "description": "ISO-8601 timestamp of when the file item was created.",
                      "type": "string"
                    },
                    "fileName": {
                      "description": "The name of the file item.",
                      "type": "string"
                    },
                    "filePath": {
                      "description": "The path of the file item.",
                      "type": "string"
                    },
                    "fileSource": {
                      "description": "The source of the file item.",
                      "type": "string"
                    },
                    "id": {
                      "description": "ID of the file item.",
                      "type": "string"
                    },
                    "ref": {
                      "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repositoryFilePath": {
                      "description": "Full path to the file in the remote repository.",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repositoryLocation": {
                      "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repositoryName": {
                      "description": "Name of the repository from which the file was pulled.",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "created",
                    "fileName",
                    "filePath",
                    "fileSource",
                    "id"
                  ],
                  "type": "object"
                },
                "maxItems": 1000,
                "type": "array"
              },
              "label": {
                "description": "The label of the custom application source version.",
                "maxLength": 255,
                "minLength": 1,
                "type": [
                  "string",
                  "null"
                ]
              },
              "updatedAt": {
                "description": "The timestamp when the application source version was modified.",
                "type": "string"
              },
              "userId": {
                "description": "Creator's ID.",
                "type": "string"
              }
            },
            "required": [
              "baseEnvironmentId",
              "baseEnvironmentVersionId",
              "createdAt",
              "id",
              "isFrozen",
              "items",
              "label",
              "updatedAt",
              "userId"
            ],
            "type": "object",
            "x-versionadded": "v2.35"
          },
          "name": {
            "description": "The name of the custom application source.",
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "orgId": {
            "description": "The ID of the creator's organization.",
            "type": [
              "string",
              "null"
            ]
          },
          "permissions": {
            "description": "The list of permitted actions, which the authenticated user can perform on this application source.",
            "items": {
              "enum": [
                "CAN_PUBLISH_NEW_IMAGE",
                "CAN_CHANGE_EXTERNAL_ACCESS",
                "CAN_VIEW",
                "CAN_UPDATE",
                "CAN_DELETE",
                "CAN_SHARE"
              ],
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "updatedAt": {
            "description": "The timestamp when the application source was modified.",
            "type": "string"
          },
          "userId": {
            "description": "Creator's ID.",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "id",
          "latestVersion",
          "name",
          "orgId",
          "permissions",
          "updatedAt",
          "userId"
        ],
        "type": "object",
        "x-versionadded": "v2.35"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSourceListResponse |

## Create a custom application source

Operation path: `POST /api/v2/customApplicationSources/`

Authentication requirements: `BearerAuth`

Create a custom application source.

### Body parameter

```
{
  "properties": {
    "name": {
      "description": "The name of the custom application source.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| body | body | CustomApplicationSourceCreate | false | none |

### Example responses

> 200 Response

```
{
  "properties": {
    "createdAt": {
      "description": "The timestamp when the application source was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "description": "The custom application source ID.",
      "type": "string"
    },
    "latestVersion": {
      "description": "The latest version of the source.",
      "properties": {
        "baseEnvironmentId": {
          "description": "The ID of the environment used for this source.",
          "type": [
            "string",
            "null"
          ]
        },
        "baseEnvironmentVersionId": {
          "description": "The ID of the environment version used for this source.",
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "description": "The timestamp of when the application source version was created.",
          "type": "string"
        },
        "createdBy": {
          "description": "The username of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorFirstName": {
          "description": "The first name of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorLastName": {
          "description": "The last name of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorUserhash": {
          "description": "The Gravatar hash of user who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "description": "The custom application source version ID.",
          "type": "string"
        },
        "isFrozen": {
          "description": "Marks that this version has become immutable.",
          "type": "boolean"
        },
        "items": {
          "description": "The list of file items.",
          "items": {
            "properties": {
              "commitSha": {
                "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "created": {
                "description": "ISO-8601 timestamp of when the file item was created.",
                "type": "string"
              },
              "fileName": {
                "description": "The name of the file item.",
                "type": "string"
              },
              "filePath": {
                "description": "The path of the file item.",
                "type": "string"
              },
              "fileSource": {
                "description": "The source of the file item.",
                "type": "string"
              },
              "id": {
                "description": "ID of the file item.",
                "type": "string"
              },
              "ref": {
                "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryFilePath": {
                "description": "Full path to the file in the remote repository.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryLocation": {
                "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryName": {
                "description": "Name of the repository from which the file was pulled.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "created",
              "fileName",
              "filePath",
              "fileSource",
              "id"
            ],
            "type": "object"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "label": {
          "description": "The label of the custom application source version.",
          "maxLength": 255,
          "minLength": 1,
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "description": "The timestamp when the application source version was modified.",
          "type": "string"
        },
        "userId": {
          "description": "Creator's ID.",
          "type": "string"
        }
      },
      "required": [
        "baseEnvironmentId",
        "baseEnvironmentVersionId",
        "createdAt",
        "id",
        "isFrozen",
        "items",
        "label",
        "updatedAt",
        "userId"
      ],
      "type": "object",
      "x-versionadded": "v2.35"
    },
    "name": {
      "description": "The name of the custom application source.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "orgId": {
      "description": "The ID of the creator's organization.",
      "type": [
        "string",
        "null"
      ]
    },
    "permissions": {
      "description": "The list of permitted actions, which the authenticated user can perform on this application source.",
      "items": {
        "enum": [
          "CAN_PUBLISH_NEW_IMAGE",
          "CAN_CHANGE_EXTERNAL_ACCESS",
          "CAN_VIEW",
          "CAN_UPDATE",
          "CAN_DELETE",
          "CAN_SHARE"
        ],
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "updatedAt": {
      "description": "The timestamp when the application source was modified.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID.",
      "type": "string"
    }
  },
  "required": [
    "createdAt",
    "id",
    "latestVersion",
    "name",
    "orgId",
    "permissions",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSource |
| 202 | Accepted | Creation has successfully started. | None |
| 403 | Forbidden | User does not have permission to create a source. | None |
| 422 | Unprocessable Entity | Custom application source could not be created with the given input. | None |

## Create a custom application source

Operation path: `POST /api/v2/customApplicationSources/fromCustomTemplate/`

Authentication requirements: `BearerAuth`

Create a custom application source from a template.

### Body parameter

```
{
  "properties": {
    "customTemplateId": {
      "description": "The custom template ID for the custom application.",
      "type": "string"
    }
  },
  "required": [
    "customTemplateId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| body | body | CustomApplicationSourceFromGalleryTemplateCreate | false | none |

### Example responses

> 200 Response

```
{
  "properties": {
    "createdAt": {
      "description": "The timestamp when the application source was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "description": "The custom application source ID.",
      "type": "string"
    },
    "latestVersion": {
      "description": "The latest version of the source.",
      "properties": {
        "baseEnvironmentId": {
          "description": "The ID of the environment used for this source.",
          "type": [
            "string",
            "null"
          ]
        },
        "baseEnvironmentVersionId": {
          "description": "The ID of the environment version used for this source.",
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "description": "The timestamp of when the application source version was created.",
          "type": "string"
        },
        "createdBy": {
          "description": "The username of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorFirstName": {
          "description": "The first name of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorLastName": {
          "description": "The last name of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorUserhash": {
          "description": "The Gravatar hash of user who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "description": "The custom application source version ID.",
          "type": "string"
        },
        "isFrozen": {
          "description": "Marks that this version has become immutable.",
          "type": "boolean"
        },
        "items": {
          "description": "The list of file items.",
          "items": {
            "properties": {
              "commitSha": {
                "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "created": {
                "description": "ISO-8601 timestamp of when the file item was created.",
                "type": "string"
              },
              "fileName": {
                "description": "The name of the file item.",
                "type": "string"
              },
              "filePath": {
                "description": "The path of the file item.",
                "type": "string"
              },
              "fileSource": {
                "description": "The source of the file item.",
                "type": "string"
              },
              "id": {
                "description": "ID of the file item.",
                "type": "string"
              },
              "ref": {
                "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryFilePath": {
                "description": "Full path to the file in the remote repository.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryLocation": {
                "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryName": {
                "description": "Name of the repository from which the file was pulled.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "created",
              "fileName",
              "filePath",
              "fileSource",
              "id"
            ],
            "type": "object"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "label": {
          "description": "The label of the custom application source version.",
          "maxLength": 255,
          "minLength": 1,
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "description": "The timestamp when the application source version was modified.",
          "type": "string"
        },
        "userId": {
          "description": "Creator's ID.",
          "type": "string"
        }
      },
      "required": [
        "baseEnvironmentId",
        "baseEnvironmentVersionId",
        "createdAt",
        "id",
        "isFrozen",
        "items",
        "label",
        "updatedAt",
        "userId"
      ],
      "type": "object",
      "x-versionadded": "v2.35"
    },
    "name": {
      "description": "The name of the custom application source.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "orgId": {
      "description": "The ID of the creator's organization.",
      "type": [
        "string",
        "null"
      ]
    },
    "permissions": {
      "description": "The list of permitted actions, which the authenticated user can perform on this application source.",
      "items": {
        "enum": [
          "CAN_PUBLISH_NEW_IMAGE",
          "CAN_CHANGE_EXTERNAL_ACCESS",
          "CAN_VIEW",
          "CAN_UPDATE",
          "CAN_DELETE",
          "CAN_SHARE"
        ],
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "updatedAt": {
      "description": "The timestamp when the application source was modified.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID.",
      "type": "string"
    }
  },
  "required": [
    "createdAt",
    "id",
    "latestVersion",
    "name",
    "orgId",
    "permissions",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSource |
| 202 | Accepted | The custom application source creation process has successfully started. See the location header. | None |
| 403 | Forbidden | The current user does not have permission to create a custom application source. | None |
| 422 | Unprocessable Entity | A custom application source could not be created with the selected custom template. | None |

## Delete a custom application source by app source ID

Operation path: `DELETE /api/v2/customApplicationSources/{appSourceId}/`

Authentication requirements: `BearerAuth`

Delete a custom application source.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| hardDelete | query | string | false | Marks that this application source should be hard deleted instead of soft deleted. |
| appSourceId | path | string | true | The ID of the application source. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| hardDelete | [false, False, true, True] |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | The source has been deleted. | None |

## Retrieve a custom application source by app source ID

Operation path: `GET /api/v2/customApplicationSources/{appSourceId}/`

Authentication requirements: `BearerAuth`

Retrieve a source.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |

### Example responses

> 200 Response

```
{
  "properties": {
    "createdAt": {
      "description": "The timestamp when the application source was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "description": "The custom application source ID.",
      "type": "string"
    },
    "latestVersion": {
      "description": "The latest version of the source.",
      "properties": {
        "baseEnvironmentId": {
          "description": "The ID of the environment used for this source.",
          "type": [
            "string",
            "null"
          ]
        },
        "baseEnvironmentVersionId": {
          "description": "The ID of the environment version used for this source.",
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "description": "The timestamp of when the application source version was created.",
          "type": "string"
        },
        "createdBy": {
          "description": "The username of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorFirstName": {
          "description": "The first name of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorLastName": {
          "description": "The last name of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorUserhash": {
          "description": "The Gravatar hash of user who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "description": "The custom application source version ID.",
          "type": "string"
        },
        "isFrozen": {
          "description": "Marks that this version has become immutable.",
          "type": "boolean"
        },
        "items": {
          "description": "The list of file items.",
          "items": {
            "properties": {
              "commitSha": {
                "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "created": {
                "description": "ISO-8601 timestamp of when the file item was created.",
                "type": "string"
              },
              "fileName": {
                "description": "The name of the file item.",
                "type": "string"
              },
              "filePath": {
                "description": "The path of the file item.",
                "type": "string"
              },
              "fileSource": {
                "description": "The source of the file item.",
                "type": "string"
              },
              "id": {
                "description": "ID of the file item.",
                "type": "string"
              },
              "ref": {
                "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryFilePath": {
                "description": "Full path to the file in the remote repository.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryLocation": {
                "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryName": {
                "description": "Name of the repository from which the file was pulled.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "created",
              "fileName",
              "filePath",
              "fileSource",
              "id"
            ],
            "type": "object"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "label": {
          "description": "The label of the custom application source version.",
          "maxLength": 255,
          "minLength": 1,
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "description": "The timestamp when the application source version was modified.",
          "type": "string"
        },
        "userId": {
          "description": "Creator's ID.",
          "type": "string"
        }
      },
      "required": [
        "baseEnvironmentId",
        "baseEnvironmentVersionId",
        "createdAt",
        "id",
        "isFrozen",
        "items",
        "label",
        "updatedAt",
        "userId"
      ],
      "type": "object",
      "x-versionadded": "v2.35"
    },
    "name": {
      "description": "The name of the custom application source.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "orgId": {
      "description": "The ID of the creator's organization.",
      "type": [
        "string",
        "null"
      ]
    },
    "permissions": {
      "description": "The list of permitted actions, which the authenticated user can perform on this application source.",
      "items": {
        "enum": [
          "CAN_PUBLISH_NEW_IMAGE",
          "CAN_CHANGE_EXTERNAL_ACCESS",
          "CAN_VIEW",
          "CAN_UPDATE",
          "CAN_DELETE",
          "CAN_SHARE"
        ],
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "updatedAt": {
      "description": "The timestamp when the application source was modified.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID.",
      "type": "string"
    }
  },
  "required": [
    "createdAt",
    "id",
    "latestVersion",
    "name",
    "orgId",
    "permissions",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSource |

## Update a custom application source's name by app source ID

Operation path: `PATCH /api/v2/customApplicationSources/{appSourceId}/`

Authentication requirements: `BearerAuth`

Update a source's name.

### Body parameter

```
{
  "properties": {
    "name": {
      "description": "The name of the custom application source.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| body | body | CustomApplicationSourceUpdate | false | none |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | The source has been updated. | None |

## Get a list of users, groups, and organizations with access by app source ID

Operation path: `GET /api/v2/customApplicationSources/{appSourceId}/sharedRoles/`

Authentication requirements: `BearerAuth`

Get a list of users, groups, and organizations with access to this application source.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| id | query | string | false | Only return roles for a user, group or organization with this identifier. |
| offset | query | integer | true | This many results will be skipped |
| limit | query | integer | true | At most this many results are returned |
| name | query | string | false | Only return roles for a user, group or organization with this name. |
| shareRecipientType | query | string | false | The list of access controls for recipients with this type. |
| appSourceId | path | string | true | The ID of the application source. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| shareRecipientType | [user, group, organization] |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned.",
      "type": "integer"
    },
    "data": {
      "description": "The access control list.",
      "items": {
        "properties": {
          "id": {
            "description": "The identifier of the recipient.",
            "type": "string"
          },
          "name": {
            "description": "The name of the recipient.",
            "type": "string"
          },
          "role": {
            "description": "The role of the recipient on this entity.",
            "enum": [
              "ADMIN",
              "CONSUMER",
              "DATA_SCIENTIST",
              "EDITOR",
              "OBSERVER",
              "OWNER",
              "READ_ONLY",
              "READ_WRITE",
              "USER"
            ],
            "type": "string"
          },
          "shareRecipientType": {
            "description": "The type of the recipient.",
            "enum": [
              "user",
              "group",
              "organization"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "role",
          "shareRecipientType"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "next": {
      "description": "The URL pointing to the next page.",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL pointing to the previous page.",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items matching the condition.",
      "type": "integer"
    }
  },
  "required": [
    "count",
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | SharingListV2Response |

## Share an application source by app source ID

Operation path: `PATCH /api/v2/customApplicationSources/{appSourceId}/sharedRoles/`

Authentication requirements: `BearerAuth`

Share an application source with a user, group, or organization.

### Body parameter

```
{
  "properties": {
    "note": {
      "default": "",
      "description": "A note to go with the project share",
      "type": "string"
    },
    "operation": {
      "description": "Name of the action being taken. The only operation is 'updateRoles'.",
      "enum": [
        "updateRoles"
      ],
      "type": "string"
    },
    "roles": {
      "description": "Array of GrantAccessControl objects., up to maximum 100 objects.",
      "items": {
        "oneOf": [
          {
            "properties": {
              "role": {
                "description": "The role of the recipient on this entity.",
                "enum": [
                  "ADMIN",
                  "CONSUMER",
                  "DATA_SCIENTIST",
                  "EDITOR",
                  "NO_ROLE",
                  "OBSERVER",
                  "OWNER",
                  "READ_ONLY",
                  "READ_WRITE",
                  "USER"
                ],
                "type": "string"
              },
              "shareRecipientType": {
                "description": "Describes the recipient type, either user, group, or organization.",
                "enum": [
                  "user",
                  "group",
                  "organization"
                ],
                "type": "string"
              },
              "username": {
                "description": "Username of the user to update the access role for.",
                "type": "string"
              }
            },
            "required": [
              "role",
              "shareRecipientType",
              "username"
            ],
            "type": "object"
          },
          {
            "properties": {
              "id": {
                "description": "The ID of the recipient.",
                "type": "string"
              },
              "role": {
                "description": "The role of the recipient on this entity.",
                "enum": [
                  "ADMIN",
                  "CONSUMER",
                  "DATA_SCIENTIST",
                  "EDITOR",
                  "NO_ROLE",
                  "OBSERVER",
                  "OWNER",
                  "READ_ONLY",
                  "READ_WRITE",
                  "USER"
                ],
                "type": "string"
              },
              "shareRecipientType": {
                "description": "Describes the recipient type, either user, group, or organization.",
                "enum": [
                  "user",
                  "group",
                  "organization"
                ],
                "type": "string"
              }
            },
            "required": [
              "id",
              "role",
              "shareRecipientType"
            ],
            "type": "object"
          }
        ]
      },
      "maxItems": 100,
      "minItems": 1,
      "type": "array"
    },
    "sendNotification": {
      "default": false,
      "description": "Send a notification?",
      "type": "boolean"
    }
  },
  "required": [
    "operation",
    "roles"
  ],
  "type": "object"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| body | body | ApplicationSharingUpdateOrRemove | false | none |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | The roles were updated successfully. | None |
| 422 | Unprocessable Entity | The request was formatted improperly. | None |

## Paginated list of custom application source versions of the specified by app source ID

Operation path: `GET /api/v2/customApplicationSources/{appSourceId}/versions/`

Authentication requirements: `BearerAuth`

List of custom application source versions.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | This many results will be skipped. |
| limit | query | integer | false | At most this many results are returned. |
| appSourceId | path | string | true | The ID of the application source. |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "An array of custom application source version objects.",
      "items": {
        "description": "The latest version of the source.",
        "properties": {
          "baseEnvironmentId": {
            "description": "The ID of the environment used for this source.",
            "type": [
              "string",
              "null"
            ]
          },
          "baseEnvironmentVersionId": {
            "description": "The ID of the environment version used for this source.",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "description": "The timestamp of when the application source version was created.",
            "type": "string"
          },
          "createdBy": {
            "description": "The username of who created the application source version.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of who created the application source version.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of who created the application source version.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of user who created the application source version.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The custom application source version ID.",
            "type": "string"
          },
          "isFrozen": {
            "description": "Marks that this version has become immutable.",
            "type": "boolean"
          },
          "items": {
            "description": "The list of file items.",
            "items": {
              "properties": {
                "commitSha": {
                  "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "created": {
                  "description": "ISO-8601 timestamp of when the file item was created.",
                  "type": "string"
                },
                "fileName": {
                  "description": "The name of the file item.",
                  "type": "string"
                },
                "filePath": {
                  "description": "The path of the file item.",
                  "type": "string"
                },
                "fileSource": {
                  "description": "The source of the file item.",
                  "type": "string"
                },
                "id": {
                  "description": "ID of the file item.",
                  "type": "string"
                },
                "ref": {
                  "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repositoryFilePath": {
                  "description": "Full path to the file in the remote repository.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repositoryLocation": {
                  "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repositoryName": {
                  "description": "Name of the repository from which the file was pulled.",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "created",
                "fileName",
                "filePath",
                "fileSource",
                "id"
              ],
              "type": "object"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "label": {
            "description": "The label of the custom application source version.",
            "maxLength": 255,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "description": "The timestamp when the application source version was modified.",
            "type": "string"
          },
          "userId": {
            "description": "Creator's ID.",
            "type": "string"
          }
        },
        "required": [
          "baseEnvironmentId",
          "baseEnvironmentVersionId",
          "createdAt",
          "id",
          "isFrozen",
          "items",
          "label",
          "updatedAt",
          "userId"
        ],
        "type": "object",
        "x-versionadded": "v2.35"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSourceVersionListResponse |

## Create a custom application source version by app source ID

Operation path: `POST /api/v2/customApplicationSources/{appSourceId}/versions/`

Authentication requirements: `BearerAuth`

Create a custom application source.

### Body parameter

```
{
  "properties": {
    "baseEnvironmentId": {
      "description": "The base environment to use with this source version.",
      "type": "string"
    },
    "baseEnvironmentVersionId": {
      "description": "The base environment version ID to use with this source version.",
      "type": "string"
    },
    "baseVersion": {
      "description": "The ID of the version used as the source for parameter duplication.",
      "type": "string"
    },
    "file": {
      "description": "A file with code for a custom task or a custom model. For each file supplied as form data, you must have a corresponding `filePath` supplied that shows the relative location of the file. For example, you have two files: `/home/username/custom-task/main.py` and `/home/username/custom-task/helpers/helper.py`. When uploading these files, you would _also_ need to include two `filePath` fields of, `\"main.py\"` and `\"helpers/helper.py\"`. If the supplied `file` already exists at the supplied `filePath`, the old file is replaced by the new file.",
      "format": "binary",
      "type": "string"
    },
    "filePath": {
      "description": "The local path of the file being uploaded. See the `file` field explanation for more details.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      ]
    },
    "filesToDelete": {
      "description": "The IDs of the files to be deleted.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      ]
    },
    "label": {
      "description": "The label for new Custom App Source Version.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| body | body | CustomApplicationSourceVersionCreate | false | none |

### Example responses

> 200 Response

```
{
  "description": "The latest version of the source.",
  "properties": {
    "baseEnvironmentId": {
      "description": "The ID of the environment used for this source.",
      "type": [
        "string",
        "null"
      ]
    },
    "baseEnvironmentVersionId": {
      "description": "The ID of the environment version used for this source.",
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "description": "The timestamp of when the application source version was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "description": "The custom application source version ID.",
      "type": "string"
    },
    "isFrozen": {
      "description": "Marks that this version has become immutable.",
      "type": "boolean"
    },
    "items": {
      "description": "The list of file items.",
      "items": {
        "properties": {
          "commitSha": {
            "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
            "type": [
              "string",
              "null"
            ]
          },
          "created": {
            "description": "ISO-8601 timestamp of when the file item was created.",
            "type": "string"
          },
          "fileName": {
            "description": "The name of the file item.",
            "type": "string"
          },
          "filePath": {
            "description": "The path of the file item.",
            "type": "string"
          },
          "fileSource": {
            "description": "The source of the file item.",
            "type": "string"
          },
          "id": {
            "description": "ID of the file item.",
            "type": "string"
          },
          "ref": {
            "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryFilePath": {
            "description": "Full path to the file in the remote repository.",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryLocation": {
            "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryName": {
            "description": "Name of the repository from which the file was pulled.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "created",
          "fileName",
          "filePath",
          "fileSource",
          "id"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "label": {
      "description": "The label of the custom application source version.",
      "maxLength": 255,
      "minLength": 1,
      "type": [
        "string",
        "null"
      ]
    },
    "updatedAt": {
      "description": "The timestamp when the application source version was modified.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID.",
      "type": "string"
    }
  },
  "required": [
    "baseEnvironmentId",
    "baseEnvironmentVersionId",
    "createdAt",
    "id",
    "isFrozen",
    "items",
    "label",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSourceVersion |
| 201 | Created | Source version was successfully created. | None |
| 403 | Forbidden | User does not have permission to create a new source version. | None |
| 422 | Unprocessable Entity | Custom application source version could not be created with the given input. | None |

## Delete a custom application source version if it is still mutable by app source ID

Operation path: `DELETE /api/v2/customApplicationSources/{appSourceId}/versions/{appSourceVersionId}/`

Authentication requirements: `BearerAuth`

Delete a custom application source version.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| appSourceVersionId | path | string | true | The ID of the application source version. |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | The source version has been deleted. | None |

## Retrieve a custom application source version by app source ID

Operation path: `GET /api/v2/customApplicationSources/{appSourceId}/versions/{appSourceVersionId}/`

Authentication requirements: `BearerAuth`

Retrieve a source version.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| appSourceVersionId | path | string | true | The ID of the application source version. |

### Example responses

> 200 Response

```
{
  "description": "The latest version of the source.",
  "properties": {
    "baseEnvironmentId": {
      "description": "The ID of the environment used for this source.",
      "type": [
        "string",
        "null"
      ]
    },
    "baseEnvironmentVersionId": {
      "description": "The ID of the environment version used for this source.",
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "description": "The timestamp of when the application source version was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "description": "The custom application source version ID.",
      "type": "string"
    },
    "isFrozen": {
      "description": "Marks that this version has become immutable.",
      "type": "boolean"
    },
    "items": {
      "description": "The list of file items.",
      "items": {
        "properties": {
          "commitSha": {
            "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
            "type": [
              "string",
              "null"
            ]
          },
          "created": {
            "description": "ISO-8601 timestamp of when the file item was created.",
            "type": "string"
          },
          "fileName": {
            "description": "The name of the file item.",
            "type": "string"
          },
          "filePath": {
            "description": "The path of the file item.",
            "type": "string"
          },
          "fileSource": {
            "description": "The source of the file item.",
            "type": "string"
          },
          "id": {
            "description": "ID of the file item.",
            "type": "string"
          },
          "ref": {
            "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryFilePath": {
            "description": "Full path to the file in the remote repository.",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryLocation": {
            "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryName": {
            "description": "Name of the repository from which the file was pulled.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "created",
          "fileName",
          "filePath",
          "fileSource",
          "id"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "label": {
      "description": "The label of the custom application source version.",
      "maxLength": 255,
      "minLength": 1,
      "type": [
        "string",
        "null"
      ]
    },
    "updatedAt": {
      "description": "The timestamp when the application source version was modified.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID.",
      "type": "string"
    }
  },
  "required": [
    "baseEnvironmentId",
    "baseEnvironmentVersionId",
    "createdAt",
    "id",
    "isFrozen",
    "items",
    "label",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSourceVersion |

## Update a custom application source version by app source ID

Operation path: `PATCH /api/v2/customApplicationSources/{appSourceId}/versions/{appSourceVersionId}/`

Authentication requirements: `BearerAuth`

Update the source version.

### Body parameter

```
{
  "properties": {
    "baseEnvironmentId": {
      "description": "The base environment to use with this source version.",
      "type": "string"
    },
    "baseEnvironmentVersionId": {
      "description": "The base environment version ID to use with this source version.",
      "type": "string"
    },
    "file": {
      "description": "A file with code for a custom task or a custom model. For each file supplied as form data, you must have a corresponding `filePath` supplied that shows the relative location of the file. For example, you have two files: `/home/username/custom-task/main.py` and `/home/username/custom-task/helpers/helper.py`. When uploading these files, you would _also_ need to include two `filePath` fields of, `\"main.py\"` and `\"helpers/helper.py\"`. If the supplied `file` already exists at the supplied `filePath`, the old file is replaced by the new file.",
      "format": "binary",
      "type": "string"
    },
    "filePath": {
      "description": "The local path of the file being uploaded. See the `file` field explanation for more details.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      ]
    },
    "filesToDelete": {
      "description": "The IDs of the files to be deleted.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      ]
    },
    "label": {
      "description": "The label for new Custom App Source Version.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| appSourceVersionId | path | string | true | The ID of the application source version. |
| body | body | CustomApplicationSourceVersionUpdate | false | none |

### Example responses

> 200 Response

```
{
  "description": "The latest version of the source.",
  "properties": {
    "baseEnvironmentId": {
      "description": "The ID of the environment used for this source.",
      "type": [
        "string",
        "null"
      ]
    },
    "baseEnvironmentVersionId": {
      "description": "The ID of the environment version used for this source.",
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "description": "The timestamp of when the application source version was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "description": "The custom application source version ID.",
      "type": "string"
    },
    "isFrozen": {
      "description": "Marks that this version has become immutable.",
      "type": "boolean"
    },
    "items": {
      "description": "The list of file items.",
      "items": {
        "properties": {
          "commitSha": {
            "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
            "type": [
              "string",
              "null"
            ]
          },
          "created": {
            "description": "ISO-8601 timestamp of when the file item was created.",
            "type": "string"
          },
          "fileName": {
            "description": "The name of the file item.",
            "type": "string"
          },
          "filePath": {
            "description": "The path of the file item.",
            "type": "string"
          },
          "fileSource": {
            "description": "The source of the file item.",
            "type": "string"
          },
          "id": {
            "description": "ID of the file item.",
            "type": "string"
          },
          "ref": {
            "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryFilePath": {
            "description": "Full path to the file in the remote repository.",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryLocation": {
            "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryName": {
            "description": "Name of the repository from which the file was pulled.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "created",
          "fileName",
          "filePath",
          "fileSource",
          "id"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "label": {
      "description": "The label of the custom application source version.",
      "maxLength": 255,
      "minLength": 1,
      "type": [
        "string",
        "null"
      ]
    },
    "updatedAt": {
      "description": "The timestamp when the application source version was modified.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID.",
      "type": "string"
    }
  },
  "required": [
    "baseEnvironmentId",
    "baseEnvironmentVersionId",
    "createdAt",
    "id",
    "isFrozen",
    "items",
    "label",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSourceVersion |

## Download Custom Application Source version files as a zip archive by app source ID

Operation path: `GET /api/v2/customApplicationSources/{appSourceId}/versions/{appSourceVersionId}/archive/`

Authentication requirements: `BearerAuth`

Download all files from a Custom Application Source version as a zip archive.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| appSourceVersionId | path | string | true | The ID of the application source version. |

### Example responses

> 200 Response

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | A zip archive containing all files in the source version. | string |

### Response Headers

| Status | Header | Type | Format | Description |
| --- | --- | --- | --- | --- |
| 200 | Content-Disposition | string |  | Specifies the zip filename derived from the version label (e.g. "attachment; filename=v1.0.zip"). |

## Update the custom application source version by app source ID

Operation path: `POST /api/v2/customApplicationSources/{appSourceId}/versions/{appSourceVersionId}/fromCodespace/`

Authentication requirements: `BearerAuth`

Update files in the source version from Codespace.

### Body parameter

```
{
  "properties": {
    "codespaceId": {
      "description": "The ID of the Codespace that should be used as source for files.",
      "type": "string"
    },
    "label": {
      "description": "The label for new Custom App Source Version in case current version is frozen and new should be created.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "codespaceId"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| appSourceVersionId | path | string | true | The ID of the application source version. |
| body | body | CustomApplicationSourceVersionFromCodespace | false | none |

### Example responses

> 200 Response

```
{
  "properties": {
    "id": {
      "description": "The custom application source version ID.",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSourceVersionFromCodespaceResponse |
| 202 | Accepted | Task for updating source applied. | None |

## Retrieve a file by app source ID

Operation path: `GET /api/v2/customApplicationSources/{appSourceId}/versions/{appSourceVersionId}/items/{itemId}/`

Authentication requirements: `BearerAuth`

Retrieve a file stored inside a custom application source version.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| appSourceVersionId | path | string | true | The ID of the application source version. |
| itemId | path | string | true | The ID of file item inside of the application source version. |

### Example responses

> 200 Response

```
{
  "properties": {
    "content": {
      "description": "The textual content of the file item.",
      "type": "string"
    },
    "fileName": {
      "description": "The name of the file item.",
      "type": "string"
    },
    "filePath": {
      "description": "The full internal path of the file item.",
      "type": "string"
    },
    "id": {
      "description": "The ID of the file item.",
      "type": "string"
    }
  },
  "required": [
    "content",
    "fileName",
    "filePath",
    "id"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationItemRetrieve |

## Update a codespace by app source ID

Operation path: `POST /api/v2/customApplicationSources/{appSourceId}/versions/{appSourceVersionId}/toCodespace/`

Authentication requirements: `BearerAuth`

Update a codespace with files from the source version.

### Body parameter

```
{
  "properties": {
    "codespaceId": {
      "description": "The ID of the Codespace that should be used as source for files.",
      "type": "string"
    }
  },
  "required": [
    "codespaceId"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| appSourceId | path | string | true | The ID of the application source. |
| appSourceVersionId | path | string | true | The ID of the application source version. |
| body | body | CustomApplicationSourceVersionToCodespace | false | none |

### Example responses

> 200 Response

```
{
  "properties": {
    "id": {
      "description": "The custom application source version ID.",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationSourceVersionFromCodespaceResponse |
| 202 | Accepted | Task for uploading files to codespace applied. | None |

## The list of applications created by the currently authenticated user

Operation path: `GET /api/v2/customApplications/`

Authentication requirements: `BearerAuth`

The list of applications created by the currently authenticated user.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | This many results will be skipped. |
| limit | query | integer | false | At most this many results are returned. |
| orderBy | query | string | false | The sort order applied to the list of custom applications. Prefix the attribute name with a dash to sort in descending order, e.g. "-createdAt". Additional sorting options include "bundleSize" and "replicas". |
| name | query | string | false | Allows for searching custom applications by name. |
| customApplicationSourceId | query | any | false | Allows you to get custom applications created only from specific sources. To find apps not linked to a custom application source, use the value "null". |
| includeSourceLabels | query | boolean | false | Whether or not you want to include the name of the application source andthe label of the source version. |
| requireSource | query | boolean | false | Whether we should only fetch apps created from a custom application source. |
| createdBy | query | string | false | Filter custom applications to return only those created by the specified user. |
| status | query | any | false | Filter applications by status. |
| updatedAtStartTs | query | string(date-time) | false | Filter applications modified on or after this timestamp. |
| updatedAtEndTs | query | string(date-time) | false | Filter applications modified before this timestamp. |
| externalAccessEnabled | query | boolean | false | Filter applications by external access enablement status. |
| resourceLabel | query | string | false | Filter applications by resource bundle label. |
| replicasMin | query | integer | false | Filter applications with replica count greater than or equal to this value. |
| replicasMax | query | integer | false | Filter applications with replica count less than or equal to this value. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| orderBy | [name, -name, createdAt, -createdAt, updatedAt, -updatedAt, bundleSize, -bundleSize, replicas, -replicas] |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The array of custom application objects.",
      "items": {
        "properties": {
          "allowAutoStopping": {
            "description": "Determines if apps are auto-paused to save resources.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "applicationUrl": {
            "description": "The URL for accessing application endpoints",
            "format": "uri",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "description": "The timestamp when the application was created.",
            "type": "string"
          },
          "createdBy": {
            "description": "The username of who created the application",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of who created the application",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of who created the application",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of user who created the application",
            "type": [
              "string",
              "null"
            ]
          },
          "customApplicationSourceId": {
            "description": "The custom application source used in app.",
            "type": [
              "string",
              "null"
            ]
          },
          "customApplicationSourceVersionId": {
            "description": "The custom application source version used in app.",
            "type": [
              "string",
              "null"
            ]
          },
          "envVersionId": {
            "description": "The execution environment version used in app",
            "type": [
              "string",
              "null"
            ]
          },
          "expiresAt": {
            "description": "ISO-8601 formatted date of the custom application removing date",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "externalAccessEnabled": {
            "description": "Determines if sharing with guest users is allowed.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "externalAccessRecipients": {
            "description": "The external users and domains allowed to view this app.",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "id": {
            "description": "The custom application ID.",
            "type": "string"
          },
          "lrsId": {
            "description": "The Long Running Service ID associated with app.",
            "type": [
              "string",
              "null"
            ],
            "x-versionadded": "v2.38"
          },
          "name": {
            "description": "The name of the custom application.",
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "orgId": {
            "description": "The ID of the creator's organization.",
            "type": [
              "string",
              "null"
            ]
          },
          "permissions": {
            "description": "The list of permitted actions, which the authenticated user can perform on this application.",
            "items": {
              "enum": [
                "CAN_CHANGE_EXTERNAL_ACCESS",
                "CAN_DELETE",
                "CAN_PUBLISH_NEW_IMAGE",
                "CAN_SEE_SOURCE",
                "CAN_SHARE",
                "CAN_UPDATE",
                "CAN_VIEW"
              ],
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "resources": {
            "description": "The resource configuration for the application, including CPU, memory, replicas, etc.",
            "properties": {
              "cpuLimit": {
                "description": "The CPU core limit for a container.",
                "type": "number"
              },
              "cpuRequest": {
                "description": "The requested CPU cores for a container.",
                "type": "number"
              },
              "healthEndpointPath": {
                "description": "The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from `serviceWebRequestsOnRootPath`. Use this to expose a dedicated health endpoint (e.g., `/healthz`) instead of probing the root path.",
                "maxLength": 255,
                "type": [
                  "string",
                  "null"
                ],
                "x-versionadded": "v2.43"
              },
              "memoryLimit": {
                "description": "The memory limit for a container in bytes.",
                "type": "integer"
              },
              "memoryRequest": {
                "description": "The requested memory for a container in bytes.",
                "type": "integer"
              },
              "replicas": {
                "description": "The number of running application replicas.",
                "type": "integer"
              },
              "resourceLabel": {
                "description": "The ID of the resource request bundle used for custom application.",
                "type": "string"
              },
              "serviceWebRequestsOnRootPath": {
                "description": "Sets whether applications made from this source version expect to receive requests on `/` or on `/apps/{ID}` by default.",
                "type": "boolean"
              },
              "sessionAffinity": {
                "description": "The session affinity for an application.",
                "type": "boolean"
              },
              "storageLimit": {
                "description": "The ephemeral storage limit for a container in bytes.",
                "type": "integer",
                "x-versionadded": "v2.42"
              },
              "storageRequest": {
                "description": "The requested ephemeral storage for a container in bytes.",
                "type": "integer",
                "x-versionadded": "v2.42"
              }
            },
            "required": [
              "cpuLimit",
              "cpuRequest",
              "healthEndpointPath",
              "memoryLimit",
              "memoryRequest",
              "replicas",
              "resourceLabel",
              "serviceWebRequestsOnRootPath",
              "sessionAffinity",
              "storageLimit",
              "storageRequest"
            ],
            "type": "object",
            "x-versionadded": "v2.37"
          },
          "sourceName": {
            "description": "The name of the custom app source.",
            "type": "string"
          },
          "sourceVersionLabel": {
            "description": "The label of the source version.",
            "type": "string"
          },
          "status": {
            "description": "The state of application in LRS",
            "enum": [
              "created",
              "failed",
              "initializing",
              "paused",
              "publishing",
              "running"
            ],
            "type": "string"
          },
          "updatedAt": {
            "description": "The timestamp when the application was updated.",
            "type": "string"
          },
          "userId": {
            "description": "Creator's ID",
            "type": "string"
          }
        },
        "required": [
          "allowAutoStopping",
          "applicationUrl",
          "createdAt",
          "customApplicationSourceId",
          "customApplicationSourceVersionId",
          "envVersionId",
          "expiresAt",
          "externalAccessEnabled",
          "externalAccessRecipients",
          "id",
          "lrsId",
          "name",
          "orgId",
          "permissions",
          "status",
          "updatedAt",
          "userId"
        ],
        "type": "object",
        "x-versionadded": "v2.37"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationListResponse |

## Create a custom application

Operation path: `POST /api/v2/customApplications/`

Authentication requirements: `BearerAuth`

Create a custom application.

### Body parameter

```
{
  "properties": {
    "applicationSourceId": {
      "description": "The ID of the custom application source to be used for the new application. The latest version version will be chosen.",
      "type": "string"
    },
    "applicationSourceVersionId": {
      "description": "The ID of the custom application source version to be used for the new application.",
      "type": "string"
    },
    "environmentId": {
      "description": "The execution environment ID for the application.",
      "type": "string"
    },
    "name": {
      "description": "The name of the custom application.",
      "maxLength": 512,
      "type": [
        "string",
        "null"
      ]
    },
    "resources": {
      "description": "Resources required for running custom application.",
      "properties": {
        "healthEndpointPath": {
          "description": "The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from `serviceWebRequestsOnRootPath`. Use this to expose a dedicated health endpoint (e.g., `/healthz`) instead of probing the root path.",
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ],
          "x-versionadded": "v2.43"
        },
        "replicas": {
          "description": "The number of running application replicas.",
          "minimum": 0,
          "type": "integer"
        },
        "resourceLabel": {
          "description": "The ID of the resource request bundle used for custom application.",
          "type": "string"
        },
        "serviceWebRequestsOnRootPath": {
          "description": "Sets whether applications made from this source version expect to receive requests on `/` or on `/apps/{ID}` by default.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "sessionAffinity": {
          "description": "The Session affinity of an application source version.",
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "type": "object",
      "x-versionadded": "v2.37"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| body | body | CustomApplicationCreate | false | none |

### Example responses

> 200 Response

```
{
  "properties": {
    "allowAutoStopping": {
      "description": "Determines if apps are auto-paused to save resources.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "applicationUrl": {
      "description": "The URL for accessing application endpoints",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "description": "The timestamp when the application was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "customApplicationSourceId": {
      "description": "The custom application source used in app.",
      "type": [
        "string",
        "null"
      ]
    },
    "customApplicationSourceVersionId": {
      "description": "The custom application source version used in app.",
      "type": [
        "string",
        "null"
      ]
    },
    "envVersionId": {
      "description": "The execution environment version used in app",
      "type": [
        "string",
        "null"
      ]
    },
    "expiresAt": {
      "description": "ISO-8601 formatted date of the custom application removing date",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "externalAccessEnabled": {
      "description": "Determines if sharing with guest users is allowed.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "externalAccessRecipients": {
      "description": "The external users and domains allowed to view this app.",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "id": {
      "description": "The custom application ID.",
      "type": "string"
    },
    "lrsId": {
      "description": "The Long Running Service ID associated with app.",
      "type": [
        "string",
        "null"
      ],
      "x-versionadded": "v2.38"
    },
    "name": {
      "description": "The name of the custom application.",
      "maxLength": 512,
      "minLength": 1,
      "type": "string"
    },
    "orgId": {
      "description": "The ID of the creator's organization.",
      "type": [
        "string",
        "null"
      ]
    },
    "permissions": {
      "description": "The list of permitted actions, which the authenticated user can perform on this application.",
      "items": {
        "enum": [
          "CAN_CHANGE_EXTERNAL_ACCESS",
          "CAN_DELETE",
          "CAN_PUBLISH_NEW_IMAGE",
          "CAN_SEE_SOURCE",
          "CAN_SHARE",
          "CAN_UPDATE",
          "CAN_VIEW"
        ],
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "resources": {
      "description": "The resource configuration for the application, including CPU, memory, replicas, etc.",
      "properties": {
        "cpuLimit": {
          "description": "The CPU core limit for a container.",
          "type": "number"
        },
        "cpuRequest": {
          "description": "The requested CPU cores for a container.",
          "type": "number"
        },
        "healthEndpointPath": {
          "description": "The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from `serviceWebRequestsOnRootPath`. Use this to expose a dedicated health endpoint (e.g., `/healthz`) instead of probing the root path.",
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ],
          "x-versionadded": "v2.43"
        },
        "memoryLimit": {
          "description": "The memory limit for a container in bytes.",
          "type": "integer"
        },
        "memoryRequest": {
          "description": "The requested memory for a container in bytes.",
          "type": "integer"
        },
        "replicas": {
          "description": "The number of running application replicas.",
          "type": "integer"
        },
        "resourceLabel": {
          "description": "The ID of the resource request bundle used for custom application.",
          "type": "string"
        },
        "serviceWebRequestsOnRootPath": {
          "description": "Sets whether applications made from this source version expect to receive requests on `/` or on `/apps/{ID}` by default.",
          "type": "boolean"
        },
        "sessionAffinity": {
          "description": "The session affinity for an application.",
          "type": "boolean"
        },
        "storageLimit": {
          "description": "The ephemeral storage limit for a container in bytes.",
          "type": "integer",
          "x-versionadded": "v2.42"
        },
        "storageRequest": {
          "description": "The requested ephemeral storage for a container in bytes.",
          "type": "integer",
          "x-versionadded": "v2.42"
        }
      },
      "required": [
        "cpuLimit",
        "cpuRequest",
        "healthEndpointPath",
        "memoryLimit",
        "memoryRequest",
        "replicas",
        "resourceLabel",
        "serviceWebRequestsOnRootPath",
        "sessionAffinity",
        "storageLimit",
        "storageRequest"
      ],
      "type": "object",
      "x-versionadded": "v2.37"
    },
    "sourceName": {
      "description": "The name of the custom app source.",
      "type": "string"
    },
    "sourceVersionLabel": {
      "description": "The label of the source version.",
      "type": "string"
    },
    "status": {
      "description": "The state of application in LRS",
      "enum": [
        "created",
        "failed",
        "initializing",
        "paused",
        "publishing",
        "running"
      ],
      "type": "string"
    },
    "updatedAt": {
      "description": "The timestamp when the application was updated.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID",
      "type": "string"
    }
  },
  "required": [
    "allowAutoStopping",
    "applicationUrl",
    "createdAt",
    "customApplicationSourceId",
    "customApplicationSourceVersionId",
    "envVersionId",
    "expiresAt",
    "externalAccessEnabled",
    "externalAccessRecipients",
    "id",
    "lrsId",
    "name",
    "orgId",
    "permissions",
    "status",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplication |
| 202 | Accepted | Creation has successfully started. See the Location header. | None |
| 403 | Forbidden | User does not have permission to launch application of provided type. | None |
| 422 | Unprocessable Entity | Application could not be created with the given input. | None |

## Delete an application by application ID

Operation path: `DELETE /api/v2/customApplications/{applicationId}/`

Authentication requirements: `BearerAuth`

Delete an application.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| hardDelete | query | string | false | Marks that this application should be hard deleted instead of soft deleted. |
| applicationId | path | string | true | The ID of the application |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| hardDelete | [false, False, true, True] |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | The application has been deleted. | None |

## Retrieve an application by application ID

Operation path: `GET /api/v2/customApplications/{applicationId}/`

Authentication requirements: `BearerAuth`

Retrieve an application.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| includeSourceLabels | query | boolean | false | Whether or not you want to include the name of the application source andthe label of the source version. |
| applicationId | path | string | true | The ID of the application |

### Example responses

> 200 Response

```
{
  "properties": {
    "allowAutoStopping": {
      "description": "Determines if apps are auto-paused to save resources.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "applicationUrl": {
      "description": "The URL for accessing application endpoints",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "description": "The timestamp when the application was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "customApplicationSourceId": {
      "description": "The custom application source used in app.",
      "type": [
        "string",
        "null"
      ]
    },
    "customApplicationSourceVersionId": {
      "description": "The custom application source version used in app.",
      "type": [
        "string",
        "null"
      ]
    },
    "envVersionId": {
      "description": "The execution environment version used in app",
      "type": [
        "string",
        "null"
      ]
    },
    "expiresAt": {
      "description": "ISO-8601 formatted date of the custom application removing date",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "externalAccessEnabled": {
      "description": "Determines if sharing with guest users is allowed.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "externalAccessRecipients": {
      "description": "The external users and domains allowed to view this app.",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "id": {
      "description": "The custom application ID.",
      "type": "string"
    },
    "lrsId": {
      "description": "The Long Running Service ID associated with app.",
      "type": [
        "string",
        "null"
      ],
      "x-versionadded": "v2.38"
    },
    "name": {
      "description": "The name of the custom application.",
      "maxLength": 512,
      "minLength": 1,
      "type": "string"
    },
    "orgId": {
      "description": "The ID of the creator's organization.",
      "type": [
        "string",
        "null"
      ]
    },
    "permissions": {
      "description": "The list of permitted actions, which the authenticated user can perform on this application.",
      "items": {
        "enum": [
          "CAN_CHANGE_EXTERNAL_ACCESS",
          "CAN_DELETE",
          "CAN_PUBLISH_NEW_IMAGE",
          "CAN_SEE_SOURCE",
          "CAN_SHARE",
          "CAN_UPDATE",
          "CAN_VIEW"
        ],
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "resources": {
      "description": "The resource configuration for the application, including CPU, memory, replicas, etc.",
      "properties": {
        "cpuLimit": {
          "description": "The CPU core limit for a container.",
          "type": "number"
        },
        "cpuRequest": {
          "description": "The requested CPU cores for a container.",
          "type": "number"
        },
        "healthEndpointPath": {
          "description": "The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from `serviceWebRequestsOnRootPath`. Use this to expose a dedicated health endpoint (e.g., `/healthz`) instead of probing the root path.",
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ],
          "x-versionadded": "v2.43"
        },
        "memoryLimit": {
          "description": "The memory limit for a container in bytes.",
          "type": "integer"
        },
        "memoryRequest": {
          "description": "The requested memory for a container in bytes.",
          "type": "integer"
        },
        "replicas": {
          "description": "The number of running application replicas.",
          "type": "integer"
        },
        "resourceLabel": {
          "description": "The ID of the resource request bundle used for custom application.",
          "type": "string"
        },
        "serviceWebRequestsOnRootPath": {
          "description": "Sets whether applications made from this source version expect to receive requests on `/` or on `/apps/{ID}` by default.",
          "type": "boolean"
        },
        "sessionAffinity": {
          "description": "The session affinity for an application.",
          "type": "boolean"
        },
        "storageLimit": {
          "description": "The ephemeral storage limit for a container in bytes.",
          "type": "integer",
          "x-versionadded": "v2.42"
        },
        "storageRequest": {
          "description": "The requested ephemeral storage for a container in bytes.",
          "type": "integer",
          "x-versionadded": "v2.42"
        }
      },
      "required": [
        "cpuLimit",
        "cpuRequest",
        "healthEndpointPath",
        "memoryLimit",
        "memoryRequest",
        "replicas",
        "resourceLabel",
        "serviceWebRequestsOnRootPath",
        "sessionAffinity",
        "storageLimit",
        "storageRequest"
      ],
      "type": "object",
      "x-versionadded": "v2.37"
    },
    "sourceName": {
      "description": "The name of the custom app source.",
      "type": "string"
    },
    "sourceVersionLabel": {
      "description": "The label of the source version.",
      "type": "string"
    },
    "status": {
      "description": "The state of application in LRS",
      "enum": [
        "created",
        "failed",
        "initializing",
        "paused",
        "publishing",
        "running"
      ],
      "type": "string"
    },
    "updatedAt": {
      "description": "The timestamp when the application was updated.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID",
      "type": "string"
    }
  },
  "required": [
    "allowAutoStopping",
    "applicationUrl",
    "createdAt",
    "customApplicationSourceId",
    "customApplicationSourceVersionId",
    "envVersionId",
    "expiresAt",
    "externalAccessEnabled",
    "externalAccessRecipients",
    "id",
    "lrsId",
    "name",
    "orgId",
    "permissions",
    "status",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplication |

## Update an application's name by application ID

Operation path: `PATCH /api/v2/customApplications/{applicationId}/`

Authentication requirements: `BearerAuth`

Update an application's name.

### Body parameter

```
{
  "properties": {
    "allowAutoStopping": {
      "description": "Determines if the custom app should be stopped automatically.",
      "type": "boolean"
    },
    "customApplicationSourceVersionId": {
      "description": "The ID of the custom application source version to set this app to.",
      "type": "string"
    },
    "externalAccessEnabled": {
      "description": "Determines if the custom app can be shared with guest users.",
      "type": "boolean"
    },
    "externalAccessRecipients": {
      "description": "Who should be able to access the custom app",
      "items": {
        "description": "The email address, or email domain of who can use an app",
        "maxLength": 512,
        "minLength": 0,
        "type": "string"
      },
      "maxItems": 2048,
      "type": "array"
    },
    "name": {
      "description": "The name of the custom application.",
      "maxLength": 512,
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationId | path | string | true | The ID of the application |
| body | body | CustomApplicationUpdate | false | none |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | The application has been updated. | None |

## Retrieve an application's publication history by application ID

Operation path: `GET /api/v2/customApplications/{applicationId}/history/`

Authentication requirements: `BearerAuth`

Retrieve an application's publication history.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | This many results will be skipped. |
| limit | query | integer | false | At most this many results are returned. |
| applicationId | path | string | true | The ID of the application |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The list of custom application soure versions published to this custom application.",
      "items": {
        "properties": {
          "createdAt": {
            "description": "The date and time that the user published a new version of the app.",
            "format": "date-time",
            "type": "string"
          },
          "createdBy": {
            "description": "The username of the user who published the application.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of the user who published the application.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of the user who published the application.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of the user who published the application.",
            "type": [
              "string",
              "null"
            ]
          },
          "sourceId": {
            "description": "The custom application source ID of the record.",
            "type": "string"
          },
          "sourceName": {
            "description": "The name of the custom app source.",
            "type": "string"
          },
          "sourceVersionId": {
            "description": "The custom application source version ID of the record.",
            "type": "string"
          },
          "sourceVersionLabel": {
            "description": "The label of the source version.",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "sourceId",
          "sourceVersionId"
        ],
        "type": "object",
        "x-versionadded": "v2.37"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationsHistoryListResponse |

## Retrieve an application's logs by application ID

Operation path: `GET /api/v2/customApplications/{applicationId}/logs/`

Authentication requirements: `BearerAuth`

Retrieve an application's logs.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationId | path | string | true | The ID of the application |

### Example responses

> 200 Response

```
{
  "properties": {
    "buildError": {
      "description": "The build error of the custom application.",
      "type": "string"
    },
    "buildLog": {
      "description": "The build log of the custom application.",
      "type": "string"
    },
    "buildStatus": {
      "description": "The build status of the custom application.",
      "type": "string"
    },
    "logs": {
      "description": "The logs of the custom application.",
      "items": {
        "type": "string"
      },
      "maxItems": 1000,
      "type": "array"
    }
  },
  "required": [
    "logs"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationLogs |

## Get a list of users, groups and organizations that have an access by application ID

Operation path: `GET /api/v2/customApplications/{applicationId}/sharedRoles/`

Authentication requirements: `BearerAuth`

Get a list of users, groups and organizations that have an access to this application.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| id | query | string | false | Only return roles for a user, group or organization with this identifier. |
| offset | query | integer | true | This many results will be skipped |
| limit | query | integer | true | At most this many results are returned |
| name | query | string | false | Only return roles for a user, group or organization with this name. |
| shareRecipientType | query | string | false | The list of access controls for recipients with this type. |
| applicationId | path | string | true | The ID of the application |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| shareRecipientType | [user, group, organization] |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned.",
      "type": "integer"
    },
    "data": {
      "description": "The access control list.",
      "items": {
        "properties": {
          "id": {
            "description": "The identifier of the recipient.",
            "type": "string"
          },
          "name": {
            "description": "The name of the recipient.",
            "type": "string"
          },
          "role": {
            "description": "The role of the recipient on this entity.",
            "enum": [
              "ADMIN",
              "CONSUMER",
              "DATA_SCIENTIST",
              "EDITOR",
              "OBSERVER",
              "OWNER",
              "READ_ONLY",
              "READ_WRITE",
              "USER"
            ],
            "type": "string"
          },
          "shareRecipientType": {
            "description": "The type of the recipient.",
            "enum": [
              "user",
              "group",
              "organization"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "role",
          "shareRecipientType"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "next": {
      "description": "The URL pointing to the next page.",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL pointing to the previous page.",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items matching the condition.",
      "type": "integer"
    }
  },
  "required": [
    "count",
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | SharingListV2Response |

## Share an application by application ID

Operation path: `PATCH /api/v2/customApplications/{applicationId}/sharedRoles/`

Authentication requirements: `BearerAuth`

Share an application with a user, group, or organization.

### Body parameter

```
{
  "properties": {
    "note": {
      "default": "",
      "description": "A note to go with the project share",
      "type": "string"
    },
    "operation": {
      "description": "Name of the action being taken. The only operation is 'updateRoles'.",
      "enum": [
        "updateRoles"
      ],
      "type": "string"
    },
    "roles": {
      "description": "Array of GrantAccessControl objects., up to maximum 100 objects.",
      "items": {
        "oneOf": [
          {
            "properties": {
              "role": {
                "description": "The role of the recipient on this entity.",
                "enum": [
                  "ADMIN",
                  "CONSUMER",
                  "DATA_SCIENTIST",
                  "EDITOR",
                  "NO_ROLE",
                  "OBSERVER",
                  "OWNER",
                  "READ_ONLY",
                  "READ_WRITE",
                  "USER"
                ],
                "type": "string"
              },
              "shareRecipientType": {
                "description": "Describes the recipient type, either user, group, or organization.",
                "enum": [
                  "user",
                  "group",
                  "organization"
                ],
                "type": "string"
              },
              "username": {
                "description": "Username of the user to update the access role for.",
                "type": "string"
              }
            },
            "required": [
              "role",
              "shareRecipientType",
              "username"
            ],
            "type": "object"
          },
          {
            "properties": {
              "id": {
                "description": "The ID of the recipient.",
                "type": "string"
              },
              "role": {
                "description": "The role of the recipient on this entity.",
                "enum": [
                  "ADMIN",
                  "CONSUMER",
                  "DATA_SCIENTIST",
                  "EDITOR",
                  "NO_ROLE",
                  "OBSERVER",
                  "OWNER",
                  "READ_ONLY",
                  "READ_WRITE",
                  "USER"
                ],
                "type": "string"
              },
              "shareRecipientType": {
                "description": "Describes the recipient type, either user, group, or organization.",
                "enum": [
                  "user",
                  "group",
                  "organization"
                ],
                "type": "string"
              }
            },
            "required": [
              "id",
              "role",
              "shareRecipientType"
            ],
            "type": "object"
          }
        ]
      },
      "maxItems": 100,
      "minItems": 1,
      "type": "array"
    },
    "sendNotification": {
      "default": false,
      "description": "Send a notification?",
      "type": "boolean"
    }
  },
  "required": [
    "operation",
    "roles"
  ],
  "type": "object"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationId | path | string | true | The ID of the application |
| body | body | ApplicationSharingUpdateOrRemove | false | none |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | The roles were updated successfully. | None |
| 422 | Unprocessable Entity | The request was formatted improperly. | None |

## Retrieve an application's usages by application ID

Operation path: `GET /api/v2/customApplications/{applicationId}/usages/`

Authentication requirements: `BearerAuth`

Retrieve an application's usages.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | This many results will be skipped. |
| limit | query | integer | false | At most this many results are returned. |
| start | query | string(date-time) | false | Filter visits on or after this UTC timestamp (inclusive). ISO 8601 format. |
| end | query | string(date-time) | false | Filter visits on or before this UTC timestamp (inclusive). ISO 8601 format. |
| applicationId | path | string | true | The ID of the application |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The list of visits to the custom application.",
      "items": {
        "properties": {
          "userId": {
            "description": "The ID of the user (or null for a guest).",
            "type": [
              "string",
              "null"
            ]
          },
          "userType": {
            "description": "Determines whether the user was a creator, viewer, or guest at the time of visit.",
            "enum": [
              "guest",
              "viewer",
              "creator"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "username": {
            "description": "The name of the user.",
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "visitTimestamp": {
            "description": "The date and time that user last visited the app.",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "userId",
          "userType",
          "username",
          "visitTimestamp"
        ],
        "type": "object",
        "x-versionadded": "v2.37"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | CustomApplicationsUsagesListResponse |

## Download an application's access logs by application ID

Operation path: `GET /api/v2/customApplications/{applicationId}/usages/download/`

Authentication requirements: `BearerAuth`

Download an application's access logs.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| start | query | string(date-time) | true | Filter visits on or after this UTC timestamp (inclusive). ISO 8601 format. Required. |
| end | query | string(date-time) | true | Filter visits on or before this UTC timestamp (inclusive). ISO 8601 format. Required. |
| applicationId | path | string | true | The ID of the application |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | None |

## Retrieve a list of custom templates

Operation path: `GET /api/v2/customTemplates/`

Authentication requirements: `BearerAuth`

Retrieve a list of custom templates.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | The number of results to skip. |
| limit | query | integer | false | At most this many results are returned. The default may change without notice. |
| orderBy | query | string | false | The order to sort the custom templates. |
| search | query | string | false | Only return custom templates whose name or description contain this text. |
| tag | query | string | false | Only return custom templates with a matching tag. |
| templateSubType | query | string | false | Only return custom templates of this sub-type. |
| templateType | query | string | false | Only return custom templates of this type. |
| publisher | query | string | false | Only return custom templates with this publisher. |
| category | query | string | false | Only return custom templates with this category (use case). |
| showHidden | query | boolean | false | Hidden templates are not visible in the UI. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| orderBy | [name, -name, createdAt, -createdAt, templateType, -templateType, templateSubType, -templateSubType] |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "A list of custom templates.",
      "items": {
        "properties": {
          "defaultEnvironment": {
            "description": "Specifies the default environment for the custom template.",
            "properties": {
              "environmentId": {
                "description": "The ID the environment to use for the public custom metric image.",
                "type": "string"
              },
              "environmentVersionId": {
                "description": "The ID of the specific environment version to use with the public custom metric image.",
                "type": "string"
              }
            },
            "required": [
              "environmentId",
              "environmentVersionId"
            ],
            "type": "object",
            "x-versionadded": "v2.36"
          },
          "defaultResourceBundleId": {
            "description": "Specifies the default resource bundle for the custom metric template.",
            "enum": [
              "cpu.nano",
              "cpu.micro",
              "cpu.small",
              "cpu.medium",
              "cpu.large",
              "cpu.xlarge",
              "cpu.2xlarge",
              "cpu.3xlarge",
              "cpu.4xlarge",
              "cpu.5xlarge",
              "cpu.6xlarge",
              "cpu.7xlarge",
              "cpu.8xlarge",
              "cpu.16xlarge",
              "DRAWSR6i.4xlargeFrac8Regular",
              "DRAWSR6i.4xlargeFrac4Regular",
              "DRAWSG4dn.xlargeFrac1Regular",
              "DRAWSG4dn.2xlargeFrac1Regular",
              "DRAWSG5.2xlargeFrac1Regular",
              "DRAWSG5.12xlargeFrac1Regular",
              "DRAWSG5.48xlargeFrac1Regular",
              "DRAWSG6e.xlargeFrac1Regular",
              "DRAWSG6e.12xlargeFrac1Regular",
              "DRAWSG6e.48xlargeFrac1Regular",
              "gpu.small",
              "gpu.medium",
              "gpu.large",
              "gpu.xlarge",
              "gpu.2xlarge",
              "gpu.3xlarge",
              "gpu.5xlarge",
              "gpu.7xlarge",
              "starter",
              "basic",
              "basic.8x",
              "train.l",
              "infer.s",
              "infer.m",
              "infer.l"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "A description of the custom template.",
            "maxLength": 10000,
            "type": "string"
          },
          "enabled": {
            "description": "Determines whether the template is enabled.",
            "type": "boolean"
          },
          "id": {
            "description": "The ID of the custom template.",
            "type": "string"
          },
          "items": {
            "description": "A list of custom files.",
            "items": {
              "properties": {
                "id": {
                  "description": "The ID of the custom template file.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the custom template file.",
                  "maxLength": 255,
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name"
              ],
              "type": "object",
              "x-versionadded": "v2.36"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "name": {
            "description": "The name of the custom template.",
            "maxLength": 255,
            "type": "string"
          },
          "templateMetadata": {
            "description": "Specifies permanent metadata for the custom template.",
            "properties": {
              "classLabels": {
                "description": "List of class names in case of creating a Binary or a multiclass custom model.",
                "items": {
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array",
                "x-versionadded": "v2.36"
              },
              "readme": {
                "description": "Content of README.md file of the template.",
                "maxLength": 1048576,
                "type": [
                  "string",
                  "null"
                ]
              },
              "resourceBundleIds": {
                "description": "Custom template resource bundle IDs list.",
                "items": {
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array",
                "x-versionadded": "v2.36"
              },
              "source": {
                "description": "Custom template source repo.",
                "type": "object",
                "x-versionadded": "v2.36"
              },
              "tags": {
                "description": "Custom template tags list.",
                "items": {
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array"
              },
              "templateTypeSpecificResources": {
                "description": "Specifies resources for the custom template.",
                "properties": {
                  "serviceWebRequestsOnRootPath": {
                    "default": false,
                    "description": "Whether the 'service_web_requests_on_root_path' resource should be enabled on the custom app.",
                    "type": [
                      "boolean",
                      "null"
                    ]
                  }
                },
                "type": "object",
                "x-versionadded": "v2.36"
              }
            },
            "type": "object",
            "x-versionadded": "v2.36"
          },
          "templateSubType": {
            "description": "Defines the type of the custom template.",
            "maxLength": 255,
            "type": [
              "string",
              "null"
            ]
          },
          "templateType": {
            "description": "Defines the type of the custom template.",
            "maxLength": 255,
            "type": "string"
          }
        },
        "required": [
          "defaultEnvironment",
          "defaultResourceBundleId",
          "description",
          "enabled",
          "id",
          "items",
          "name",
          "templateMetadata",
          "templateSubType",
          "templateType"
        ],
        "type": "object",
        "x-versionadded": "v2.36"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | The paginated list of custom templates. | CustomTemplateListResponse |
| 403 | Forbidden | User does not have permission to access custom templates. | None |

## Create a custom template

Operation path: `POST /api/v2/customTemplates/`

Authentication requirements: `BearerAuth`

Create a custom template.

### Body parameter

```
{
  "properties": {
    "defaultEnvironment": {
      "description": "Specifies the default environment for the custom metric template.",
      "type": "string"
    },
    "defaultResourceBundleId": {
      "description": "Specifies the default resource bundle for the custom metric template.",
      "enum": [
        "cpu.nano",
        "cpu.micro",
        "cpu.small",
        "cpu.medium",
        "cpu.large",
        "cpu.xlarge",
        "cpu.2xlarge",
        "cpu.3xlarge",
        "cpu.4xlarge",
        "cpu.5xlarge",
        "cpu.6xlarge",
        "cpu.7xlarge",
        "cpu.8xlarge",
        "cpu.16xlarge",
        "DRAWSR6i.4xlargeFrac8Regular",
        "DRAWSR6i.4xlargeFrac4Regular",
        "DRAWSG4dn.xlargeFrac1Regular",
        "DRAWSG4dn.2xlargeFrac1Regular",
        "DRAWSG5.2xlargeFrac1Regular",
        "DRAWSG5.12xlargeFrac1Regular",
        "DRAWSG5.48xlargeFrac1Regular",
        "DRAWSG6e.xlargeFrac1Regular",
        "DRAWSG6e.12xlargeFrac1Regular",
        "DRAWSG6e.48xlargeFrac1Regular",
        "gpu.small",
        "gpu.medium",
        "gpu.large",
        "gpu.xlarge",
        "gpu.2xlarge",
        "gpu.3xlarge",
        "gpu.5xlarge",
        "gpu.7xlarge",
        "starter",
        "basic",
        "basic.8x",
        "train.l",
        "infer.s",
        "infer.m",
        "infer.l"
      ],
      "type": "string"
    },
    "description": {
      "description": "A description of the custom template.",
      "maxLength": 10000,
      "type": "string"
    },
    "enabled": {
      "default": true,
      "description": "Disabled templates remain visible in the UI but cannot be used.",
      "type": "boolean",
      "x-versionadded": "v2.36"
    },
    "file": {
      "description": "The file to be used to create the custom metric template.",
      "format": "binary",
      "type": "string"
    },
    "isHidden": {
      "default": false,
      "description": "Hidden templates are not visible in the UI.",
      "type": "boolean",
      "x-versionadded": "v2.37"
    },
    "name": {
      "description": "The name of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateMetadata": {
      "description": "Specifies permanent metadata for the custom template.",
      "type": [
        "string",
        "null"
      ]
    },
    "templateSubType": {
      "description": "Defines sub-type of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateType": {
      "description": "Defines type of the custom template.",
      "maxLength": 255,
      "type": "string"
    }
  },
  "required": [
    "defaultEnvironment",
    "description",
    "file",
    "name",
    "templateSubType",
    "templateType"
  ],
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| body | body | CustomTemplateCreatePayload | false | none |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 201 | Created | The custom template was successfully created. | None |
| 403 | Forbidden | User does not have permission to create a custom template. | None |

## Delete a custom template by custom template ID

Operation path: `DELETE /api/v2/customTemplates/{customTemplateId}/`

Authentication requirements: `BearerAuth`

Delete a custom template.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| customTemplateId | path | string | true | The ID of the custom template. |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | The requested custom template was successfully deleted. | None |
| 403 | Forbidden | User does not have permission to delete a custom template. | None |
| 404 | Not Found | Custom template was not found. | None |

## Retrieve a single custom template by custom template ID

Operation path: `GET /api/v2/customTemplates/{customTemplateId}/`

Authentication requirements: `BearerAuth`

Retrieve a single custom template.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| customTemplateId | path | string | true | The ID of the custom template. |

### Example responses

> 200 Response

```
{
  "properties": {
    "defaultEnvironment": {
      "description": "Specifies the default environment for the custom template.",
      "properties": {
        "environmentId": {
          "description": "The ID the environment to use for the public custom metric image.",
          "type": "string"
        },
        "environmentVersionId": {
          "description": "The ID of the specific environment version to use with the public custom metric image.",
          "type": "string"
        }
      },
      "required": [
        "environmentId",
        "environmentVersionId"
      ],
      "type": "object",
      "x-versionadded": "v2.36"
    },
    "defaultResourceBundleId": {
      "description": "Specifies the default resource bundle for the custom metric template.",
      "enum": [
        "cpu.nano",
        "cpu.micro",
        "cpu.small",
        "cpu.medium",
        "cpu.large",
        "cpu.xlarge",
        "cpu.2xlarge",
        "cpu.3xlarge",
        "cpu.4xlarge",
        "cpu.5xlarge",
        "cpu.6xlarge",
        "cpu.7xlarge",
        "cpu.8xlarge",
        "cpu.16xlarge",
        "DRAWSR6i.4xlargeFrac8Regular",
        "DRAWSR6i.4xlargeFrac4Regular",
        "DRAWSG4dn.xlargeFrac1Regular",
        "DRAWSG4dn.2xlargeFrac1Regular",
        "DRAWSG5.2xlargeFrac1Regular",
        "DRAWSG5.12xlargeFrac1Regular",
        "DRAWSG5.48xlargeFrac1Regular",
        "DRAWSG6e.xlargeFrac1Regular",
        "DRAWSG6e.12xlargeFrac1Regular",
        "DRAWSG6e.48xlargeFrac1Regular",
        "gpu.small",
        "gpu.medium",
        "gpu.large",
        "gpu.xlarge",
        "gpu.2xlarge",
        "gpu.3xlarge",
        "gpu.5xlarge",
        "gpu.7xlarge",
        "starter",
        "basic",
        "basic.8x",
        "train.l",
        "infer.s",
        "infer.m",
        "infer.l"
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "description": "A description of the custom template.",
      "maxLength": 10000,
      "type": "string"
    },
    "enabled": {
      "description": "Determines whether the template is enabled.",
      "type": "boolean"
    },
    "id": {
      "description": "The ID of the custom template.",
      "type": "string"
    },
    "items": {
      "description": "A list of custom files.",
      "items": {
        "properties": {
          "id": {
            "description": "The ID of the custom template file.",
            "type": "string"
          },
          "name": {
            "description": "Name of the custom template file.",
            "maxLength": 255,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "x-versionadded": "v2.36"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "name": {
      "description": "The name of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateMetadata": {
      "description": "Specifies permanent metadata for the custom template.",
      "properties": {
        "classLabels": {
          "description": "List of class names in case of creating a Binary or a multiclass custom model.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array",
          "x-versionadded": "v2.36"
        },
        "readme": {
          "description": "Content of README.md file of the template.",
          "maxLength": 1048576,
          "type": [
            "string",
            "null"
          ]
        },
        "resourceBundleIds": {
          "description": "Custom template resource bundle IDs list.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array",
          "x-versionadded": "v2.36"
        },
        "source": {
          "description": "Custom template source repo.",
          "type": "object",
          "x-versionadded": "v2.36"
        },
        "tags": {
          "description": "Custom template tags list.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "templateTypeSpecificResources": {
          "description": "Specifies resources for the custom template.",
          "properties": {
            "serviceWebRequestsOnRootPath": {
              "default": false,
              "description": "Whether the 'service_web_requests_on_root_path' resource should be enabled on the custom app.",
              "type": [
                "boolean",
                "null"
              ]
            }
          },
          "type": "object",
          "x-versionadded": "v2.36"
        }
      },
      "type": "object",
      "x-versionadded": "v2.36"
    },
    "templateSubType": {
      "description": "Defines the type of the custom template.",
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "templateType": {
      "description": "Defines the type of the custom template.",
      "maxLength": 255,
      "type": "string"
    }
  },
  "required": [
    "defaultEnvironment",
    "defaultResourceBundleId",
    "description",
    "enabled",
    "id",
    "items",
    "name",
    "templateMetadata",
    "templateSubType",
    "templateType"
  ],
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | A given custom template. | CustomTemplateEntity |
| 403 | Forbidden | User does not have permission to access a particular custom template. | None |

## Update the given custom template by custom template ID

Operation path: `PATCH /api/v2/customTemplates/{customTemplateId}/`

Authentication requirements: `BearerAuth`

Update the given custom template.

### Body parameter

```
{
  "properties": {
    "defaultEnvironment": {
      "description": "Specifies the default environment for the custom template.",
      "type": "string"
    },
    "defaultResourceBundleId": {
      "description": "Specifies the default resource bundle for the custom metric template.",
      "enum": [
        "cpu.nano",
        "cpu.micro",
        "cpu.small",
        "cpu.medium",
        "cpu.large",
        "cpu.xlarge",
        "cpu.2xlarge",
        "cpu.3xlarge",
        "cpu.4xlarge",
        "cpu.5xlarge",
        "cpu.6xlarge",
        "cpu.7xlarge",
        "cpu.8xlarge",
        "cpu.16xlarge",
        "DRAWSR6i.4xlargeFrac8Regular",
        "DRAWSR6i.4xlargeFrac4Regular",
        "DRAWSG4dn.xlargeFrac1Regular",
        "DRAWSG4dn.2xlargeFrac1Regular",
        "DRAWSG5.2xlargeFrac1Regular",
        "DRAWSG5.12xlargeFrac1Regular",
        "DRAWSG5.48xlargeFrac1Regular",
        "DRAWSG6e.xlargeFrac1Regular",
        "DRAWSG6e.12xlargeFrac1Regular",
        "DRAWSG6e.48xlargeFrac1Regular",
        "gpu.small",
        "gpu.medium",
        "gpu.large",
        "gpu.xlarge",
        "gpu.2xlarge",
        "gpu.3xlarge",
        "gpu.5xlarge",
        "gpu.7xlarge",
        "starter",
        "basic",
        "basic.8x",
        "train.l",
        "infer.s",
        "infer.m",
        "infer.l"
      ],
      "type": "string"
    },
    "description": {
      "description": "A description of the custom template.",
      "maxLength": 10000,
      "type": "string"
    },
    "enabled": {
      "default": true,
      "description": "Disabled templates remain visible in the UI but cannot be used.",
      "type": "boolean",
      "x-versionadded": "v2.36"
    },
    "file": {
      "description": "The file to be used to create the custom template.",
      "format": "binary",
      "type": "string"
    },
    "isHidden": {
      "default": false,
      "description": "Hidden templates are not visible in the UI.",
      "type": "boolean",
      "x-versionadded": "v2.37"
    },
    "name": {
      "description": "The name of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateMetadata": {
      "description": "Specifies permanent metadata for the custom template.",
      "type": [
        "string",
        "null"
      ]
    },
    "templateSubType": {
      "description": "Defines the sub-type of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateType": {
      "description": "Defines the type of the custom template.",
      "maxLength": 255,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| customTemplateId | path | string | true | The ID of the custom template. |
| body | body | CustomTemplateUpdatePayload | false | none |

### Example responses

> 200 Response

```
{
  "properties": {
    "defaultEnvironment": {
      "description": "Specifies the default environment for the custom template.",
      "properties": {
        "environmentId": {
          "description": "The ID the environment to use for the public custom metric image.",
          "type": "string"
        },
        "environmentVersionId": {
          "description": "The ID of the specific environment version to use with the public custom metric image.",
          "type": "string"
        }
      },
      "required": [
        "environmentId",
        "environmentVersionId"
      ],
      "type": "object",
      "x-versionadded": "v2.36"
    },
    "defaultResourceBundleId": {
      "description": "Specifies the default resource bundle for the custom metric template.",
      "enum": [
        "cpu.nano",
        "cpu.micro",
        "cpu.small",
        "cpu.medium",
        "cpu.large",
        "cpu.xlarge",
        "cpu.2xlarge",
        "cpu.3xlarge",
        "cpu.4xlarge",
        "cpu.5xlarge",
        "cpu.6xlarge",
        "cpu.7xlarge",
        "cpu.8xlarge",
        "cpu.16xlarge",
        "DRAWSR6i.4xlargeFrac8Regular",
        "DRAWSR6i.4xlargeFrac4Regular",
        "DRAWSG4dn.xlargeFrac1Regular",
        "DRAWSG4dn.2xlargeFrac1Regular",
        "DRAWSG5.2xlargeFrac1Regular",
        "DRAWSG5.12xlargeFrac1Regular",
        "DRAWSG5.48xlargeFrac1Regular",
        "DRAWSG6e.xlargeFrac1Regular",
        "DRAWSG6e.12xlargeFrac1Regular",
        "DRAWSG6e.48xlargeFrac1Regular",
        "gpu.small",
        "gpu.medium",
        "gpu.large",
        "gpu.xlarge",
        "gpu.2xlarge",
        "gpu.3xlarge",
        "gpu.5xlarge",
        "gpu.7xlarge",
        "starter",
        "basic",
        "basic.8x",
        "train.l",
        "infer.s",
        "infer.m",
        "infer.l"
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "description": "A description of the custom template.",
      "maxLength": 10000,
      "type": "string"
    },
    "enabled": {
      "description": "Determines whether the template is enabled.",
      "type": "boolean"
    },
    "id": {
      "description": "The ID of the custom template.",
      "type": "string"
    },
    "items": {
      "description": "A list of custom files.",
      "items": {
        "properties": {
          "id": {
            "description": "The ID of the custom template file.",
            "type": "string"
          },
          "name": {
            "description": "Name of the custom template file.",
            "maxLength": 255,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "x-versionadded": "v2.36"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "name": {
      "description": "The name of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateMetadata": {
      "description": "Specifies permanent metadata for the custom template.",
      "properties": {
        "classLabels": {
          "description": "List of class names in case of creating a Binary or a multiclass custom model.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array",
          "x-versionadded": "v2.36"
        },
        "readme": {
          "description": "Content of README.md file of the template.",
          "maxLength": 1048576,
          "type": [
            "string",
            "null"
          ]
        },
        "resourceBundleIds": {
          "description": "Custom template resource bundle IDs list.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array",
          "x-versionadded": "v2.36"
        },
        "source": {
          "description": "Custom template source repo.",
          "type": "object",
          "x-versionadded": "v2.36"
        },
        "tags": {
          "description": "Custom template tags list.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "templateTypeSpecificResources": {
          "description": "Specifies resources for the custom template.",
          "properties": {
            "serviceWebRequestsOnRootPath": {
              "default": false,
              "description": "Whether the 'service_web_requests_on_root_path' resource should be enabled on the custom app.",
              "type": [
                "boolean",
                "null"
              ]
            }
          },
          "type": "object",
          "x-versionadded": "v2.36"
        }
      },
      "type": "object",
      "x-versionadded": "v2.36"
    },
    "templateSubType": {
      "description": "Defines the type of the custom template.",
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "templateType": {
      "description": "Defines the type of the custom template.",
      "maxLength": 255,
      "type": "string"
    }
  },
  "required": [
    "defaultEnvironment",
    "defaultResourceBundleId",
    "description",
    "enabled",
    "id",
    "items",
    "name",
    "templateMetadata",
    "templateSubType",
    "templateType"
  ],
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | The custom template was successfully updated. | CustomTemplateEntity |
| 403 | Forbidden | User does not have permission to update a custom template. | None |

## Retrieve a single custom template file by custom template ID

Operation path: `GET /api/v2/customTemplates/{customTemplateId}/files/{fileId}/`

Authentication requirements: `BearerAuth`

Retrieve a single custom template file.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| customTemplateId | path | string | true | The ID of the custom template. |
| fileId | path | string | true | The ID of the file. |

### Example responses

> 200 Response

```
{
  "properties": {
    "content": {
      "description": "The content of the chosen file.",
      "type": "string"
    },
    "contentEncoding": {
      "description": "The encoding of the content field. Either \"utf-8\" for text files or \"base64\" for binary files such as images.",
      "type": "string",
      "x-versionadded": "v2.43"
    },
    "fileName": {
      "description": "The name of the chosen file.",
      "type": "string"
    },
    "id": {
      "description": "The ID of the file.",
      "type": "string"
    }
  },
  "required": [
    "content",
    "contentEncoding",
    "fileName",
    "id"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | A given custom template file. | CustomTemplateFileResponse |
| 403 | Forbidden | User does not have permission to access a particular custom template file. | None |
| 404 | Not Found | File not found. | None |

# Schemas

## AccessControlV2

```
{
  "properties": {
    "id": {
      "description": "The identifier of the recipient.",
      "type": "string"
    },
    "name": {
      "description": "The name of the recipient.",
      "type": "string"
    },
    "role": {
      "description": "The role of the recipient on this entity.",
      "enum": [
        "ADMIN",
        "CONSUMER",
        "DATA_SCIENTIST",
        "EDITOR",
        "OBSERVER",
        "OWNER",
        "READ_ONLY",
        "READ_WRITE",
        "USER"
      ],
      "type": "string"
    },
    "shareRecipientType": {
      "description": "The type of the recipient.",
      "enum": [
        "user",
        "group",
        "organization"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "name",
    "role",
    "shareRecipientType"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| id | string | true |  | The identifier of the recipient. |
| name | string | true |  | The name of the recipient. |
| role | string | true |  | The role of the recipient on this entity. |
| shareRecipientType | string | true |  | The type of the recipient. |

### Enumerated Values

| Property | Value |
| --- | --- |
| role | [ADMIN, CONSUMER, DATA_SCIENTIST, EDITOR, OBSERVER, OWNER, READ_ONLY, READ_WRITE, USER] |
| shareRecipientType | [user, group, organization] |

## ApplicationSharingUpdateOrRemove

```
{
  "properties": {
    "note": {
      "default": "",
      "description": "A note to go with the project share",
      "type": "string"
    },
    "operation": {
      "description": "Name of the action being taken. The only operation is 'updateRoles'.",
      "enum": [
        "updateRoles"
      ],
      "type": "string"
    },
    "roles": {
      "description": "Array of GrantAccessControl objects., up to maximum 100 objects.",
      "items": {
        "oneOf": [
          {
            "properties": {
              "role": {
                "description": "The role of the recipient on this entity.",
                "enum": [
                  "ADMIN",
                  "CONSUMER",
                  "DATA_SCIENTIST",
                  "EDITOR",
                  "NO_ROLE",
                  "OBSERVER",
                  "OWNER",
                  "READ_ONLY",
                  "READ_WRITE",
                  "USER"
                ],
                "type": "string"
              },
              "shareRecipientType": {
                "description": "Describes the recipient type, either user, group, or organization.",
                "enum": [
                  "user",
                  "group",
                  "organization"
                ],
                "type": "string"
              },
              "username": {
                "description": "Username of the user to update the access role for.",
                "type": "string"
              }
            },
            "required": [
              "role",
              "shareRecipientType",
              "username"
            ],
            "type": "object"
          },
          {
            "properties": {
              "id": {
                "description": "The ID of the recipient.",
                "type": "string"
              },
              "role": {
                "description": "The role of the recipient on this entity.",
                "enum": [
                  "ADMIN",
                  "CONSUMER",
                  "DATA_SCIENTIST",
                  "EDITOR",
                  "NO_ROLE",
                  "OBSERVER",
                  "OWNER",
                  "READ_ONLY",
                  "READ_WRITE",
                  "USER"
                ],
                "type": "string"
              },
              "shareRecipientType": {
                "description": "Describes the recipient type, either user, group, or organization.",
                "enum": [
                  "user",
                  "group",
                  "organization"
                ],
                "type": "string"
              }
            },
            "required": [
              "id",
              "role",
              "shareRecipientType"
            ],
            "type": "object"
          }
        ]
      },
      "maxItems": 100,
      "minItems": 1,
      "type": "array"
    },
    "sendNotification": {
      "default": false,
      "description": "Send a notification?",
      "type": "boolean"
    }
  },
  "required": [
    "operation",
    "roles"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| note | string | false |  | A note to go with the project share |
| operation | string | true |  | Name of the action being taken. The only operation is 'updateRoles'. |
| roles | [oneOf] | true | maxItems: 100minItems: 1 | Array of GrantAccessControl objects., up to maximum 100 objects. |

oneOf

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | GrantAccessControlWithUsername | false |  | none |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | GrantAccessControlWithId | false |  | none |

continued

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| sendNotification | boolean | false |  | Send a notification? |

### Enumerated Values

| Property | Value |
| --- | --- |
| operation | updateRoles |

## CustomAppHistory

```
{
  "properties": {
    "createdAt": {
      "description": "The date and time that the user published a new version of the app.",
      "format": "date-time",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of the user who published the application.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of the user who published the application.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of the user who published the application.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of the user who published the application.",
      "type": [
        "string",
        "null"
      ]
    },
    "sourceId": {
      "description": "The custom application source ID of the record.",
      "type": "string"
    },
    "sourceName": {
      "description": "The name of the custom app source.",
      "type": "string"
    },
    "sourceVersionId": {
      "description": "The custom application source version ID of the record.",
      "type": "string"
    },
    "sourceVersionLabel": {
      "description": "The label of the source version.",
      "type": "string"
    }
  },
  "required": [
    "createdAt",
    "sourceId",
    "sourceVersionId"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| createdAt | string(date-time) | true |  | The date and time that the user published a new version of the app. |
| createdBy | string,null | false |  | The username of the user who published the application. |
| creatorFirstName | string,null | false |  | The first name of the user who published the application. |
| creatorLastName | string,null | false |  | The last name of the user who published the application. |
| creatorUserhash | string,null | false |  | The Gravatar hash of the user who published the application. |
| sourceId | string | true |  | The custom application source ID of the record. |
| sourceName | string | false |  | The name of the custom app source. |
| sourceVersionId | string | true |  | The custom application source version ID of the record. |
| sourceVersionLabel | string | false |  | The label of the source version. |

## CustomAppUsage

```
{
  "properties": {
    "userId": {
      "description": "The ID of the user (or null for a guest).",
      "type": [
        "string",
        "null"
      ]
    },
    "userType": {
      "description": "Determines whether the user was a creator, viewer, or guest at the time of visit.",
      "enum": [
        "guest",
        "viewer",
        "creator"
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "username": {
      "description": "The name of the user.",
      "maxLength": 512,
      "minLength": 1,
      "type": "string"
    },
    "visitTimestamp": {
      "description": "The date and time that user last visited the app.",
      "format": "date-time",
      "type": "string"
    }
  },
  "required": [
    "userId",
    "userType",
    "username",
    "visitTimestamp"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| userId | string,null | true |  | The ID of the user (or null for a guest). |
| userType | string,null | true |  | Determines whether the user was a creator, viewer, or guest at the time of visit. |
| username | string | true | maxLength: 512minLength: 1minLength: 1 | The name of the user. |
| visitTimestamp | string(date-time) | true |  | The date and time that user last visited the app. |

### Enumerated Values

| Property | Value |
| --- | --- |
| userType | [guest, viewer, creator] |

## CustomApplication

```
{
  "properties": {
    "allowAutoStopping": {
      "description": "Determines if apps are auto-paused to save resources.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "applicationUrl": {
      "description": "The URL for accessing application endpoints",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "description": "The timestamp when the application was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application",
      "type": [
        "string",
        "null"
      ]
    },
    "customApplicationSourceId": {
      "description": "The custom application source used in app.",
      "type": [
        "string",
        "null"
      ]
    },
    "customApplicationSourceVersionId": {
      "description": "The custom application source version used in app.",
      "type": [
        "string",
        "null"
      ]
    },
    "envVersionId": {
      "description": "The execution environment version used in app",
      "type": [
        "string",
        "null"
      ]
    },
    "expiresAt": {
      "description": "ISO-8601 formatted date of the custom application removing date",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "externalAccessEnabled": {
      "description": "Determines if sharing with guest users is allowed.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "externalAccessRecipients": {
      "description": "The external users and domains allowed to view this app.",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "id": {
      "description": "The custom application ID.",
      "type": "string"
    },
    "lrsId": {
      "description": "The Long Running Service ID associated with app.",
      "type": [
        "string",
        "null"
      ],
      "x-versionadded": "v2.38"
    },
    "name": {
      "description": "The name of the custom application.",
      "maxLength": 512,
      "minLength": 1,
      "type": "string"
    },
    "orgId": {
      "description": "The ID of the creator's organization.",
      "type": [
        "string",
        "null"
      ]
    },
    "permissions": {
      "description": "The list of permitted actions, which the authenticated user can perform on this application.",
      "items": {
        "enum": [
          "CAN_CHANGE_EXTERNAL_ACCESS",
          "CAN_DELETE",
          "CAN_PUBLISH_NEW_IMAGE",
          "CAN_SEE_SOURCE",
          "CAN_SHARE",
          "CAN_UPDATE",
          "CAN_VIEW"
        ],
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "resources": {
      "description": "The resource configuration for the application, including CPU, memory, replicas, etc.",
      "properties": {
        "cpuLimit": {
          "description": "The CPU core limit for a container.",
          "type": "number"
        },
        "cpuRequest": {
          "description": "The requested CPU cores for a container.",
          "type": "number"
        },
        "healthEndpointPath": {
          "description": "The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from `serviceWebRequestsOnRootPath`. Use this to expose a dedicated health endpoint (e.g., `/healthz`) instead of probing the root path.",
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ],
          "x-versionadded": "v2.43"
        },
        "memoryLimit": {
          "description": "The memory limit for a container in bytes.",
          "type": "integer"
        },
        "memoryRequest": {
          "description": "The requested memory for a container in bytes.",
          "type": "integer"
        },
        "replicas": {
          "description": "The number of running application replicas.",
          "type": "integer"
        },
        "resourceLabel": {
          "description": "The ID of the resource request bundle used for custom application.",
          "type": "string"
        },
        "serviceWebRequestsOnRootPath": {
          "description": "Sets whether applications made from this source version expect to receive requests on `/` or on `/apps/{ID}` by default.",
          "type": "boolean"
        },
        "sessionAffinity": {
          "description": "The session affinity for an application.",
          "type": "boolean"
        },
        "storageLimit": {
          "description": "The ephemeral storage limit for a container in bytes.",
          "type": "integer",
          "x-versionadded": "v2.42"
        },
        "storageRequest": {
          "description": "The requested ephemeral storage for a container in bytes.",
          "type": "integer",
          "x-versionadded": "v2.42"
        }
      },
      "required": [
        "cpuLimit",
        "cpuRequest",
        "healthEndpointPath",
        "memoryLimit",
        "memoryRequest",
        "replicas",
        "resourceLabel",
        "serviceWebRequestsOnRootPath",
        "sessionAffinity",
        "storageLimit",
        "storageRequest"
      ],
      "type": "object",
      "x-versionadded": "v2.37"
    },
    "sourceName": {
      "description": "The name of the custom app source.",
      "type": "string"
    },
    "sourceVersionLabel": {
      "description": "The label of the source version.",
      "type": "string"
    },
    "status": {
      "description": "The state of application in LRS",
      "enum": [
        "created",
        "failed",
        "initializing",
        "paused",
        "publishing",
        "running"
      ],
      "type": "string"
    },
    "updatedAt": {
      "description": "The timestamp when the application was updated.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID",
      "type": "string"
    }
  },
  "required": [
    "allowAutoStopping",
    "applicationUrl",
    "createdAt",
    "customApplicationSourceId",
    "customApplicationSourceVersionId",
    "envVersionId",
    "expiresAt",
    "externalAccessEnabled",
    "externalAccessRecipients",
    "id",
    "lrsId",
    "name",
    "orgId",
    "permissions",
    "status",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| allowAutoStopping | boolean,null | true |  | Determines if apps are auto-paused to save resources. |
| applicationUrl | string,null(uri) | true |  | The URL for accessing application endpoints |
| createdAt | string | true |  | The timestamp when the application was created. |
| createdBy | string,null | false |  | The username of who created the application |
| creatorFirstName | string,null | false |  | The first name of who created the application |
| creatorLastName | string,null | false |  | The last name of who created the application |
| creatorUserhash | string,null | false |  | The Gravatar hash of user who created the application |
| customApplicationSourceId | string,null | true |  | The custom application source used in app. |
| customApplicationSourceVersionId | string,null | true |  | The custom application source version used in app. |
| envVersionId | string,null | true |  | The execution environment version used in app |
| expiresAt | string,null(date-time) | true |  | ISO-8601 formatted date of the custom application removing date |
| externalAccessEnabled | boolean,null | true |  | Determines if sharing with guest users is allowed. |
| externalAccessRecipients | [string] | true | maxItems: 100 | The external users and domains allowed to view this app. |
| id | string | true |  | The custom application ID. |
| lrsId | string,null | true |  | The Long Running Service ID associated with app. |
| name | string | true | maxLength: 512minLength: 1minLength: 1 | The name of the custom application. |
| orgId | string,null | true |  | The ID of the creator's organization. |
| permissions | [string] | true | maxItems: 100 | The list of permitted actions, which the authenticated user can perform on this application. |
| resources | CustomApplicationResourcesResponse | false |  | The resource configuration for the application, including CPU, memory, replicas, etc. |
| sourceName | string | false |  | The name of the custom app source. |
| sourceVersionLabel | string | false |  | The label of the source version. |
| status | string | true |  | The state of application in LRS |
| updatedAt | string | true |  | The timestamp when the application was updated. |
| userId | string | true |  | Creator's ID |

### Enumerated Values

| Property | Value |
| --- | --- |
| status | [created, failed, initializing, paused, publishing, running] |

## CustomApplicationCreate

```
{
  "properties": {
    "applicationSourceId": {
      "description": "The ID of the custom application source to be used for the new application. The latest version version will be chosen.",
      "type": "string"
    },
    "applicationSourceVersionId": {
      "description": "The ID of the custom application source version to be used for the new application.",
      "type": "string"
    },
    "environmentId": {
      "description": "The execution environment ID for the application.",
      "type": "string"
    },
    "name": {
      "description": "The name of the custom application.",
      "maxLength": 512,
      "type": [
        "string",
        "null"
      ]
    },
    "resources": {
      "description": "Resources required for running custom application.",
      "properties": {
        "healthEndpointPath": {
          "description": "The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from `serviceWebRequestsOnRootPath`. Use this to expose a dedicated health endpoint (e.g., `/healthz`) instead of probing the root path.",
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ],
          "x-versionadded": "v2.43"
        },
        "replicas": {
          "description": "The number of running application replicas.",
          "minimum": 0,
          "type": "integer"
        },
        "resourceLabel": {
          "description": "The ID of the resource request bundle used for custom application.",
          "type": "string"
        },
        "serviceWebRequestsOnRootPath": {
          "description": "Sets whether applications made from this source version expect to receive requests on `/` or on `/apps/{ID}` by default.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "sessionAffinity": {
          "description": "The Session affinity of an application source version.",
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "type": "object",
      "x-versionadded": "v2.37"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| applicationSourceId | string | false |  | The ID of the custom application source to be used for the new application. The latest version version will be chosen. |
| applicationSourceVersionId | string | false |  | The ID of the custom application source version to be used for the new application. |
| environmentId | string | false |  | The execution environment ID for the application. |
| name | string,null | false | maxLength: 512 | The name of the custom application. |
| resources | CustomApplicationResources | false |  | Resources required for running custom application. |

## CustomApplicationItemRetrieve

```
{
  "properties": {
    "content": {
      "description": "The textual content of the file item.",
      "type": "string"
    },
    "fileName": {
      "description": "The name of the file item.",
      "type": "string"
    },
    "filePath": {
      "description": "The full internal path of the file item.",
      "type": "string"
    },
    "id": {
      "description": "The ID of the file item.",
      "type": "string"
    }
  },
  "required": [
    "content",
    "fileName",
    "filePath",
    "id"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| content | string | true |  | The textual content of the file item. |
| fileName | string | true |  | The name of the file item. |
| filePath | string | true |  | The full internal path of the file item. |
| id | string | true |  | The ID of the file item. |

## CustomApplicationListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The array of custom application objects.",
      "items": {
        "properties": {
          "allowAutoStopping": {
            "description": "Determines if apps are auto-paused to save resources.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "applicationUrl": {
            "description": "The URL for accessing application endpoints",
            "format": "uri",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "description": "The timestamp when the application was created.",
            "type": "string"
          },
          "createdBy": {
            "description": "The username of who created the application",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of who created the application",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of who created the application",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of user who created the application",
            "type": [
              "string",
              "null"
            ]
          },
          "customApplicationSourceId": {
            "description": "The custom application source used in app.",
            "type": [
              "string",
              "null"
            ]
          },
          "customApplicationSourceVersionId": {
            "description": "The custom application source version used in app.",
            "type": [
              "string",
              "null"
            ]
          },
          "envVersionId": {
            "description": "The execution environment version used in app",
            "type": [
              "string",
              "null"
            ]
          },
          "expiresAt": {
            "description": "ISO-8601 formatted date of the custom application removing date",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "externalAccessEnabled": {
            "description": "Determines if sharing with guest users is allowed.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "externalAccessRecipients": {
            "description": "The external users and domains allowed to view this app.",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "id": {
            "description": "The custom application ID.",
            "type": "string"
          },
          "lrsId": {
            "description": "The Long Running Service ID associated with app.",
            "type": [
              "string",
              "null"
            ],
            "x-versionadded": "v2.38"
          },
          "name": {
            "description": "The name of the custom application.",
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "orgId": {
            "description": "The ID of the creator's organization.",
            "type": [
              "string",
              "null"
            ]
          },
          "permissions": {
            "description": "The list of permitted actions, which the authenticated user can perform on this application.",
            "items": {
              "enum": [
                "CAN_CHANGE_EXTERNAL_ACCESS",
                "CAN_DELETE",
                "CAN_PUBLISH_NEW_IMAGE",
                "CAN_SEE_SOURCE",
                "CAN_SHARE",
                "CAN_UPDATE",
                "CAN_VIEW"
              ],
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "resources": {
            "description": "The resource configuration for the application, including CPU, memory, replicas, etc.",
            "properties": {
              "cpuLimit": {
                "description": "The CPU core limit for a container.",
                "type": "number"
              },
              "cpuRequest": {
                "description": "The requested CPU cores for a container.",
                "type": "number"
              },
              "healthEndpointPath": {
                "description": "The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from `serviceWebRequestsOnRootPath`. Use this to expose a dedicated health endpoint (e.g., `/healthz`) instead of probing the root path.",
                "maxLength": 255,
                "type": [
                  "string",
                  "null"
                ],
                "x-versionadded": "v2.43"
              },
              "memoryLimit": {
                "description": "The memory limit for a container in bytes.",
                "type": "integer"
              },
              "memoryRequest": {
                "description": "The requested memory for a container in bytes.",
                "type": "integer"
              },
              "replicas": {
                "description": "The number of running application replicas.",
                "type": "integer"
              },
              "resourceLabel": {
                "description": "The ID of the resource request bundle used for custom application.",
                "type": "string"
              },
              "serviceWebRequestsOnRootPath": {
                "description": "Sets whether applications made from this source version expect to receive requests on `/` or on `/apps/{ID}` by default.",
                "type": "boolean"
              },
              "sessionAffinity": {
                "description": "The session affinity for an application.",
                "type": "boolean"
              },
              "storageLimit": {
                "description": "The ephemeral storage limit for a container in bytes.",
                "type": "integer",
                "x-versionadded": "v2.42"
              },
              "storageRequest": {
                "description": "The requested ephemeral storage for a container in bytes.",
                "type": "integer",
                "x-versionadded": "v2.42"
              }
            },
            "required": [
              "cpuLimit",
              "cpuRequest",
              "healthEndpointPath",
              "memoryLimit",
              "memoryRequest",
              "replicas",
              "resourceLabel",
              "serviceWebRequestsOnRootPath",
              "sessionAffinity",
              "storageLimit",
              "storageRequest"
            ],
            "type": "object",
            "x-versionadded": "v2.37"
          },
          "sourceName": {
            "description": "The name of the custom app source.",
            "type": "string"
          },
          "sourceVersionLabel": {
            "description": "The label of the source version.",
            "type": "string"
          },
          "status": {
            "description": "The state of application in LRS",
            "enum": [
              "created",
              "failed",
              "initializing",
              "paused",
              "publishing",
              "running"
            ],
            "type": "string"
          },
          "updatedAt": {
            "description": "The timestamp when the application was updated.",
            "type": "string"
          },
          "userId": {
            "description": "Creator's ID",
            "type": "string"
          }
        },
        "required": [
          "allowAutoStopping",
          "applicationUrl",
          "createdAt",
          "customApplicationSourceId",
          "customApplicationSourceVersionId",
          "envVersionId",
          "expiresAt",
          "externalAccessEnabled",
          "externalAccessRecipients",
          "id",
          "lrsId",
          "name",
          "orgId",
          "permissions",
          "status",
          "updatedAt",
          "userId"
        ],
        "type": "object",
        "x-versionadded": "v2.37"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [CustomApplication] | true | maxItems: 100 | The array of custom application objects. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## CustomApplicationLogs

```
{
  "properties": {
    "buildError": {
      "description": "The build error of the custom application.",
      "type": "string"
    },
    "buildLog": {
      "description": "The build log of the custom application.",
      "type": "string"
    },
    "buildStatus": {
      "description": "The build status of the custom application.",
      "type": "string"
    },
    "logs": {
      "description": "The logs of the custom application.",
      "items": {
        "type": "string"
      },
      "maxItems": 1000,
      "type": "array"
    }
  },
  "required": [
    "logs"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| buildError | string | false |  | The build error of the custom application. |
| buildLog | string | false |  | The build log of the custom application. |
| buildStatus | string | false |  | The build status of the custom application. |
| logs | [string] | true | maxItems: 1000 | The logs of the custom application. |

## CustomApplicationResources

```
{
  "description": "Resources required for running custom application.",
  "properties": {
    "healthEndpointPath": {
      "description": "The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from `serviceWebRequestsOnRootPath`. Use this to expose a dedicated health endpoint (e.g., `/healthz`) instead of probing the root path.",
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ],
      "x-versionadded": "v2.43"
    },
    "replicas": {
      "description": "The number of running application replicas.",
      "minimum": 0,
      "type": "integer"
    },
    "resourceLabel": {
      "description": "The ID of the resource request bundle used for custom application.",
      "type": "string"
    },
    "serviceWebRequestsOnRootPath": {
      "description": "Sets whether applications made from this source version expect to receive requests on `/` or on `/apps/{ID}` by default.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "sessionAffinity": {
      "description": "The Session affinity of an application source version.",
      "type": [
        "boolean",
        "null"
      ]
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

Resources required for running custom application.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| healthEndpointPath | string,null | false | maxLength: 255 | The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from serviceWebRequestsOnRootPath. Use this to expose a dedicated health endpoint (e.g., /healthz) instead of probing the root path. |
| replicas | integer | false | minimum: 0 | The number of running application replicas. |
| resourceLabel | string | false |  | The ID of the resource request bundle used for custom application. |
| serviceWebRequestsOnRootPath | boolean,null | false |  | Sets whether applications made from this source version expect to receive requests on / or on /apps/{ID} by default. |
| sessionAffinity | boolean,null | false |  | The Session affinity of an application source version. |

## CustomApplicationResourcesResponse

```
{
  "description": "The resource configuration for the application, including CPU, memory, replicas, etc.",
  "properties": {
    "cpuLimit": {
      "description": "The CPU core limit for a container.",
      "type": "number"
    },
    "cpuRequest": {
      "description": "The requested CPU cores for a container.",
      "type": "number"
    },
    "healthEndpointPath": {
      "description": "The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from `serviceWebRequestsOnRootPath`. Use this to expose a dedicated health endpoint (e.g., `/healthz`) instead of probing the root path.",
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ],
      "x-versionadded": "v2.43"
    },
    "memoryLimit": {
      "description": "The memory limit for a container in bytes.",
      "type": "integer"
    },
    "memoryRequest": {
      "description": "The requested memory for a container in bytes.",
      "type": "integer"
    },
    "replicas": {
      "description": "The number of running application replicas.",
      "type": "integer"
    },
    "resourceLabel": {
      "description": "The ID of the resource request bundle used for custom application.",
      "type": "string"
    },
    "serviceWebRequestsOnRootPath": {
      "description": "Sets whether applications made from this source version expect to receive requests on `/` or on `/apps/{ID}` by default.",
      "type": "boolean"
    },
    "sessionAffinity": {
      "description": "The session affinity for an application.",
      "type": "boolean"
    },
    "storageLimit": {
      "description": "The ephemeral storage limit for a container in bytes.",
      "type": "integer",
      "x-versionadded": "v2.42"
    },
    "storageRequest": {
      "description": "The requested ephemeral storage for a container in bytes.",
      "type": "integer",
      "x-versionadded": "v2.42"
    }
  },
  "required": [
    "cpuLimit",
    "cpuRequest",
    "healthEndpointPath",
    "memoryLimit",
    "memoryRequest",
    "replicas",
    "resourceLabel",
    "serviceWebRequestsOnRootPath",
    "sessionAffinity",
    "storageLimit",
    "storageRequest"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

The resource configuration for the application, including CPU, memory, replicas, etc.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| cpuLimit | number | true |  | The CPU core limit for a container. |
| cpuRequest | number | true |  | The requested CPU cores for a container. |
| healthEndpointPath | string,null | true | maxLength: 255 | The path used by the Kubernetes health probe for liveness and readiness checks. When set, this takes precedence over the path derived from serviceWebRequestsOnRootPath. Use this to expose a dedicated health endpoint (e.g., /healthz) instead of probing the root path. |
| memoryLimit | integer | true |  | The memory limit for a container in bytes. |
| memoryRequest | integer | true |  | The requested memory for a container in bytes. |
| replicas | integer | true |  | The number of running application replicas. |
| resourceLabel | string | true |  | The ID of the resource request bundle used for custom application. |
| serviceWebRequestsOnRootPath | boolean | true |  | Sets whether applications made from this source version expect to receive requests on / or on /apps/{ID} by default. |
| sessionAffinity | boolean | true |  | The session affinity for an application. |
| storageLimit | integer | true |  | The ephemeral storage limit for a container in bytes. |
| storageRequest | integer | true |  | The requested ephemeral storage for a container in bytes. |

## CustomApplicationSource

```
{
  "properties": {
    "createdAt": {
      "description": "The timestamp when the application source was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application source.",
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "description": "The custom application source ID.",
      "type": "string"
    },
    "latestVersion": {
      "description": "The latest version of the source.",
      "properties": {
        "baseEnvironmentId": {
          "description": "The ID of the environment used for this source.",
          "type": [
            "string",
            "null"
          ]
        },
        "baseEnvironmentVersionId": {
          "description": "The ID of the environment version used for this source.",
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "description": "The timestamp of when the application source version was created.",
          "type": "string"
        },
        "createdBy": {
          "description": "The username of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorFirstName": {
          "description": "The first name of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorLastName": {
          "description": "The last name of who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "creatorUserhash": {
          "description": "The Gravatar hash of user who created the application source version.",
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "description": "The custom application source version ID.",
          "type": "string"
        },
        "isFrozen": {
          "description": "Marks that this version has become immutable.",
          "type": "boolean"
        },
        "items": {
          "description": "The list of file items.",
          "items": {
            "properties": {
              "commitSha": {
                "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "created": {
                "description": "ISO-8601 timestamp of when the file item was created.",
                "type": "string"
              },
              "fileName": {
                "description": "The name of the file item.",
                "type": "string"
              },
              "filePath": {
                "description": "The path of the file item.",
                "type": "string"
              },
              "fileSource": {
                "description": "The source of the file item.",
                "type": "string"
              },
              "id": {
                "description": "ID of the file item.",
                "type": "string"
              },
              "ref": {
                "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryFilePath": {
                "description": "Full path to the file in the remote repository.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryLocation": {
                "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "repositoryName": {
                "description": "Name of the repository from which the file was pulled.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "created",
              "fileName",
              "filePath",
              "fileSource",
              "id"
            ],
            "type": "object"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "label": {
          "description": "The label of the custom application source version.",
          "maxLength": 255,
          "minLength": 1,
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "description": "The timestamp when the application source version was modified.",
          "type": "string"
        },
        "userId": {
          "description": "Creator's ID.",
          "type": "string"
        }
      },
      "required": [
        "baseEnvironmentId",
        "baseEnvironmentVersionId",
        "createdAt",
        "id",
        "isFrozen",
        "items",
        "label",
        "updatedAt",
        "userId"
      ],
      "type": "object",
      "x-versionadded": "v2.35"
    },
    "name": {
      "description": "The name of the custom application source.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "orgId": {
      "description": "The ID of the creator's organization.",
      "type": [
        "string",
        "null"
      ]
    },
    "permissions": {
      "description": "The list of permitted actions, which the authenticated user can perform on this application source.",
      "items": {
        "enum": [
          "CAN_PUBLISH_NEW_IMAGE",
          "CAN_CHANGE_EXTERNAL_ACCESS",
          "CAN_VIEW",
          "CAN_UPDATE",
          "CAN_DELETE",
          "CAN_SHARE"
        ],
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    },
    "updatedAt": {
      "description": "The timestamp when the application source was modified.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID.",
      "type": "string"
    }
  },
  "required": [
    "createdAt",
    "id",
    "latestVersion",
    "name",
    "orgId",
    "permissions",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| createdAt | string | true |  | The timestamp when the application source was created. |
| createdBy | string,null | false |  | The username of who created the application source. |
| creatorFirstName | string,null | false |  | The first name of who created the application source. |
| creatorLastName | string,null | false |  | The last name of who created the application source. |
| creatorUserhash | string,null | false |  | The Gravatar hash of user who created the application source. |
| id | string | true |  | The custom application source ID. |
| latestVersion | CustomApplicationSourceVersion | true |  | The latest version of the source. |
| name | string | true | maxLength: 255minLength: 1minLength: 1 | The name of the custom application source. |
| orgId | string,null | true |  | The ID of the creator's organization. |
| permissions | [string] | true | maxItems: 100 | The list of permitted actions, which the authenticated user can perform on this application source. |
| updatedAt | string | true |  | The timestamp when the application source was modified. |
| userId | string | true |  | Creator's ID. |

## CustomApplicationSourceCreate

```
{
  "properties": {
    "name": {
      "description": "The name of the custom application source.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| name | string | false | maxLength: 255minLength: 1minLength: 1 | The name of the custom application source. |

## CustomApplicationSourceFromGalleryTemplateCreate

```
{
  "properties": {
    "customTemplateId": {
      "description": "The custom template ID for the custom application.",
      "type": "string"
    }
  },
  "required": [
    "customTemplateId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| customTemplateId | string | true |  | The custom template ID for the custom application. |

## CustomApplicationSourceListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The array of custom application source objects.",
      "items": {
        "properties": {
          "createdAt": {
            "description": "The timestamp when the application source was created.",
            "type": "string"
          },
          "createdBy": {
            "description": "The username of who created the application source.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of who created the application source.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of who created the application source.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of user who created the application source.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The custom application source ID.",
            "type": "string"
          },
          "latestVersion": {
            "description": "The latest version of the source.",
            "properties": {
              "baseEnvironmentId": {
                "description": "The ID of the environment used for this source.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "baseEnvironmentVersionId": {
                "description": "The ID of the environment version used for this source.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "createdAt": {
                "description": "The timestamp of when the application source version was created.",
                "type": "string"
              },
              "createdBy": {
                "description": "The username of who created the application source version.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "creatorFirstName": {
                "description": "The first name of who created the application source version.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "creatorLastName": {
                "description": "The last name of who created the application source version.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "creatorUserhash": {
                "description": "The Gravatar hash of user who created the application source version.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "id": {
                "description": "The custom application source version ID.",
                "type": "string"
              },
              "isFrozen": {
                "description": "Marks that this version has become immutable.",
                "type": "boolean"
              },
              "items": {
                "description": "The list of file items.",
                "items": {
                  "properties": {
                    "commitSha": {
                      "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "created": {
                      "description": "ISO-8601 timestamp of when the file item was created.",
                      "type": "string"
                    },
                    "fileName": {
                      "description": "The name of the file item.",
                      "type": "string"
                    },
                    "filePath": {
                      "description": "The path of the file item.",
                      "type": "string"
                    },
                    "fileSource": {
                      "description": "The source of the file item.",
                      "type": "string"
                    },
                    "id": {
                      "description": "ID of the file item.",
                      "type": "string"
                    },
                    "ref": {
                      "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repositoryFilePath": {
                      "description": "Full path to the file in the remote repository.",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repositoryLocation": {
                      "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "repositoryName": {
                      "description": "Name of the repository from which the file was pulled.",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "created",
                    "fileName",
                    "filePath",
                    "fileSource",
                    "id"
                  ],
                  "type": "object"
                },
                "maxItems": 1000,
                "type": "array"
              },
              "label": {
                "description": "The label of the custom application source version.",
                "maxLength": 255,
                "minLength": 1,
                "type": [
                  "string",
                  "null"
                ]
              },
              "updatedAt": {
                "description": "The timestamp when the application source version was modified.",
                "type": "string"
              },
              "userId": {
                "description": "Creator's ID.",
                "type": "string"
              }
            },
            "required": [
              "baseEnvironmentId",
              "baseEnvironmentVersionId",
              "createdAt",
              "id",
              "isFrozen",
              "items",
              "label",
              "updatedAt",
              "userId"
            ],
            "type": "object",
            "x-versionadded": "v2.35"
          },
          "name": {
            "description": "The name of the custom application source.",
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "orgId": {
            "description": "The ID of the creator's organization.",
            "type": [
              "string",
              "null"
            ]
          },
          "permissions": {
            "description": "The list of permitted actions, which the authenticated user can perform on this application source.",
            "items": {
              "enum": [
                "CAN_PUBLISH_NEW_IMAGE",
                "CAN_CHANGE_EXTERNAL_ACCESS",
                "CAN_VIEW",
                "CAN_UPDATE",
                "CAN_DELETE",
                "CAN_SHARE"
              ],
              "type": "string"
            },
            "maxItems": 100,
            "type": "array"
          },
          "updatedAt": {
            "description": "The timestamp when the application source was modified.",
            "type": "string"
          },
          "userId": {
            "description": "Creator's ID.",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "id",
          "latestVersion",
          "name",
          "orgId",
          "permissions",
          "updatedAt",
          "userId"
        ],
        "type": "object",
        "x-versionadded": "v2.35"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [CustomApplicationSource] | true | maxItems: 100 | The array of custom application source objects. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## CustomApplicationSourceUpdate

```
{
  "properties": {
    "name": {
      "description": "The name of the custom application source.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| name | string | true | maxLength: 255minLength: 1minLength: 1 | The name of the custom application source. |

## CustomApplicationSourceVersion

```
{
  "description": "The latest version of the source.",
  "properties": {
    "baseEnvironmentId": {
      "description": "The ID of the environment used for this source.",
      "type": [
        "string",
        "null"
      ]
    },
    "baseEnvironmentVersionId": {
      "description": "The ID of the environment version used for this source.",
      "type": [
        "string",
        "null"
      ]
    },
    "createdAt": {
      "description": "The timestamp of when the application source version was created.",
      "type": "string"
    },
    "createdBy": {
      "description": "The username of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of user who created the application source version.",
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "description": "The custom application source version ID.",
      "type": "string"
    },
    "isFrozen": {
      "description": "Marks that this version has become immutable.",
      "type": "boolean"
    },
    "items": {
      "description": "The list of file items.",
      "items": {
        "properties": {
          "commitSha": {
            "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
            "type": [
              "string",
              "null"
            ]
          },
          "created": {
            "description": "ISO-8601 timestamp of when the file item was created.",
            "type": "string"
          },
          "fileName": {
            "description": "The name of the file item.",
            "type": "string"
          },
          "filePath": {
            "description": "The path of the file item.",
            "type": "string"
          },
          "fileSource": {
            "description": "The source of the file item.",
            "type": "string"
          },
          "id": {
            "description": "ID of the file item.",
            "type": "string"
          },
          "ref": {
            "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryFilePath": {
            "description": "Full path to the file in the remote repository.",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryLocation": {
            "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
            "type": [
              "string",
              "null"
            ]
          },
          "repositoryName": {
            "description": "Name of the repository from which the file was pulled.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "created",
          "fileName",
          "filePath",
          "fileSource",
          "id"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "label": {
      "description": "The label of the custom application source version.",
      "maxLength": 255,
      "minLength": 1,
      "type": [
        "string",
        "null"
      ]
    },
    "updatedAt": {
      "description": "The timestamp when the application source version was modified.",
      "type": "string"
    },
    "userId": {
      "description": "Creator's ID.",
      "type": "string"
    }
  },
  "required": [
    "baseEnvironmentId",
    "baseEnvironmentVersionId",
    "createdAt",
    "id",
    "isFrozen",
    "items",
    "label",
    "updatedAt",
    "userId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

The latest version of the source.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| baseEnvironmentId | string,null | true |  | The ID of the environment used for this source. |
| baseEnvironmentVersionId | string,null | true |  | The ID of the environment version used for this source. |
| createdAt | string | true |  | The timestamp of when the application source version was created. |
| createdBy | string,null | false |  | The username of who created the application source version. |
| creatorFirstName | string,null | false |  | The first name of who created the application source version. |
| creatorLastName | string,null | false |  | The last name of who created the application source version. |
| creatorUserhash | string,null | false |  | The Gravatar hash of user who created the application source version. |
| id | string | true |  | The custom application source version ID. |
| isFrozen | boolean | true |  | Marks that this version has become immutable. |
| items | [WorkspaceItemResponse] | true | maxItems: 1000 | The list of file items. |
| label | string,null | true | maxLength: 255minLength: 1minLength: 1 | The label of the custom application source version. |
| updatedAt | string | true |  | The timestamp when the application source version was modified. |
| userId | string | true |  | Creator's ID. |

## CustomApplicationSourceVersionCreate

```
{
  "properties": {
    "baseEnvironmentId": {
      "description": "The base environment to use with this source version.",
      "type": "string"
    },
    "baseEnvironmentVersionId": {
      "description": "The base environment version ID to use with this source version.",
      "type": "string"
    },
    "baseVersion": {
      "description": "The ID of the version used as the source for parameter duplication.",
      "type": "string"
    },
    "file": {
      "description": "A file with code for a custom task or a custom model. For each file supplied as form data, you must have a corresponding `filePath` supplied that shows the relative location of the file. For example, you have two files: `/home/username/custom-task/main.py` and `/home/username/custom-task/helpers/helper.py`. When uploading these files, you would _also_ need to include two `filePath` fields of, `\"main.py\"` and `\"helpers/helper.py\"`. If the supplied `file` already exists at the supplied `filePath`, the old file is replaced by the new file.",
      "format": "binary",
      "type": "string"
    },
    "filePath": {
      "description": "The local path of the file being uploaded. See the `file` field explanation for more details.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      ]
    },
    "filesToDelete": {
      "description": "The IDs of the files to be deleted.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      ]
    },
    "label": {
      "description": "The label for new Custom App Source Version.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| baseEnvironmentId | string | false |  | The base environment to use with this source version. |
| baseEnvironmentVersionId | string | false |  | The base environment version ID to use with this source version. |
| baseVersion | string | false |  | The ID of the version used as the source for parameter duplication. |
| file | string(binary) | false |  | A file with code for a custom task or a custom model. For each file supplied as form data, you must have a corresponding filePath supplied that shows the relative location of the file. For example, you have two files: /home/username/custom-task/main.py and /home/username/custom-task/helpers/helper.py. When uploading these files, you would also need to include two filePath fields of, "main.py" and "helpers/helper.py". If the supplied file already exists at the supplied filePath, the old file is replaced by the new file. |
| filePath | any | false |  | The local path of the file being uploaded. See the file field explanation for more details. |

oneOf

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | string | false |  | none |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | [string] | false | maxItems: 1000 | none |

continued

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| filesToDelete | any | false |  | The IDs of the files to be deleted. |

oneOf

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | string | false |  | none |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | [string] | false | maxItems: 1000 | none |

continued

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| label | string | false | maxLength: 255minLength: 1minLength: 1 | The label for new Custom App Source Version. |

## CustomApplicationSourceVersionFromCodespace

```
{
  "properties": {
    "codespaceId": {
      "description": "The ID of the Codespace that should be used as source for files.",
      "type": "string"
    },
    "label": {
      "description": "The label for new Custom App Source Version in case current version is frozen and new should be created.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "codespaceId"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| codespaceId | string | true |  | The ID of the Codespace that should be used as source for files. |
| label | string | false | maxLength: 255minLength: 1minLength: 1 | The label for new Custom App Source Version in case current version is frozen and new should be created. |

## CustomApplicationSourceVersionFromCodespaceResponse

```
{
  "properties": {
    "id": {
      "description": "The custom application source version ID.",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| id | string | true |  | The custom application source version ID. |

## CustomApplicationSourceVersionListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "An array of custom application source version objects.",
      "items": {
        "description": "The latest version of the source.",
        "properties": {
          "baseEnvironmentId": {
            "description": "The ID of the environment used for this source.",
            "type": [
              "string",
              "null"
            ]
          },
          "baseEnvironmentVersionId": {
            "description": "The ID of the environment version used for this source.",
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "description": "The timestamp of when the application source version was created.",
            "type": "string"
          },
          "createdBy": {
            "description": "The username of who created the application source version.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of who created the application source version.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of who created the application source version.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of user who created the application source version.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The custom application source version ID.",
            "type": "string"
          },
          "isFrozen": {
            "description": "Marks that this version has become immutable.",
            "type": "boolean"
          },
          "items": {
            "description": "The list of file items.",
            "items": {
              "properties": {
                "commitSha": {
                  "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "created": {
                  "description": "ISO-8601 timestamp of when the file item was created.",
                  "type": "string"
                },
                "fileName": {
                  "description": "The name of the file item.",
                  "type": "string"
                },
                "filePath": {
                  "description": "The path of the file item.",
                  "type": "string"
                },
                "fileSource": {
                  "description": "The source of the file item.",
                  "type": "string"
                },
                "id": {
                  "description": "ID of the file item.",
                  "type": "string"
                },
                "ref": {
                  "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repositoryFilePath": {
                  "description": "Full path to the file in the remote repository.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repositoryLocation": {
                  "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "repositoryName": {
                  "description": "Name of the repository from which the file was pulled.",
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "created",
                "fileName",
                "filePath",
                "fileSource",
                "id"
              ],
              "type": "object"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "label": {
            "description": "The label of the custom application source version.",
            "maxLength": 255,
            "minLength": 1,
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "description": "The timestamp when the application source version was modified.",
            "type": "string"
          },
          "userId": {
            "description": "Creator's ID.",
            "type": "string"
          }
        },
        "required": [
          "baseEnvironmentId",
          "baseEnvironmentVersionId",
          "createdAt",
          "id",
          "isFrozen",
          "items",
          "label",
          "updatedAt",
          "userId"
        ],
        "type": "object",
        "x-versionadded": "v2.35"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [CustomApplicationSourceVersion] | true | maxItems: 100 | An array of custom application source version objects. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## CustomApplicationSourceVersionToCodespace

```
{
  "properties": {
    "codespaceId": {
      "description": "The ID of the Codespace that should be used as source for files.",
      "type": "string"
    }
  },
  "required": [
    "codespaceId"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| codespaceId | string | true |  | The ID of the Codespace that should be used as source for files. |

## CustomApplicationSourceVersionUpdate

```
{
  "properties": {
    "baseEnvironmentId": {
      "description": "The base environment to use with this source version.",
      "type": "string"
    },
    "baseEnvironmentVersionId": {
      "description": "The base environment version ID to use with this source version.",
      "type": "string"
    },
    "file": {
      "description": "A file with code for a custom task or a custom model. For each file supplied as form data, you must have a corresponding `filePath` supplied that shows the relative location of the file. For example, you have two files: `/home/username/custom-task/main.py` and `/home/username/custom-task/helpers/helper.py`. When uploading these files, you would _also_ need to include two `filePath` fields of, `\"main.py\"` and `\"helpers/helper.py\"`. If the supplied `file` already exists at the supplied `filePath`, the old file is replaced by the new file.",
      "format": "binary",
      "type": "string"
    },
    "filePath": {
      "description": "The local path of the file being uploaded. See the `file` field explanation for more details.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      ]
    },
    "filesToDelete": {
      "description": "The IDs of the files to be deleted.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      ]
    },
    "label": {
      "description": "The label for new Custom App Source Version.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| baseEnvironmentId | string | false |  | The base environment to use with this source version. |
| baseEnvironmentVersionId | string | false |  | The base environment version ID to use with this source version. |
| file | string(binary) | false |  | A file with code for a custom task or a custom model. For each file supplied as form data, you must have a corresponding filePath supplied that shows the relative location of the file. For example, you have two files: /home/username/custom-task/main.py and /home/username/custom-task/helpers/helper.py. When uploading these files, you would also need to include two filePath fields of, "main.py" and "helpers/helper.py". If the supplied file already exists at the supplied filePath, the old file is replaced by the new file. |
| filePath | any | false |  | The local path of the file being uploaded. See the file field explanation for more details. |

oneOf

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | string | false |  | none |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | [string] | false | maxItems: 1000 | none |

continued

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| filesToDelete | any | false |  | The IDs of the files to be deleted. |

oneOf

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | string | false |  | none |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | [string] | false | maxItems: 1000 | none |

continued

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| label | string | false | maxLength: 255minLength: 1minLength: 1 | The label for new Custom App Source Version. |

## CustomApplicationUpdate

```
{
  "properties": {
    "allowAutoStopping": {
      "description": "Determines if the custom app should be stopped automatically.",
      "type": "boolean"
    },
    "customApplicationSourceVersionId": {
      "description": "The ID of the custom application source version to set this app to.",
      "type": "string"
    },
    "externalAccessEnabled": {
      "description": "Determines if the custom app can be shared with guest users.",
      "type": "boolean"
    },
    "externalAccessRecipients": {
      "description": "Who should be able to access the custom app",
      "items": {
        "description": "The email address, or email domain of who can use an app",
        "maxLength": 512,
        "minLength": 0,
        "type": "string"
      },
      "maxItems": 2048,
      "type": "array"
    },
    "name": {
      "description": "The name of the custom application.",
      "maxLength": 512,
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| allowAutoStopping | boolean | false |  | Determines if the custom app should be stopped automatically. |
| customApplicationSourceVersionId | string | false |  | The ID of the custom application source version to set this app to. |
| externalAccessEnabled | boolean | false |  | Determines if the custom app can be shared with guest users. |
| externalAccessRecipients | [string] | false | maxItems: 2048 | Who should be able to access the custom app |
| name | string | false | maxLength: 512minLength: 1minLength: 1 | The name of the custom application. |

## CustomApplicationsHistoryListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The list of custom application soure versions published to this custom application.",
      "items": {
        "properties": {
          "createdAt": {
            "description": "The date and time that the user published a new version of the app.",
            "format": "date-time",
            "type": "string"
          },
          "createdBy": {
            "description": "The username of the user who published the application.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of the user who published the application.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of the user who published the application.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of the user who published the application.",
            "type": [
              "string",
              "null"
            ]
          },
          "sourceId": {
            "description": "The custom application source ID of the record.",
            "type": "string"
          },
          "sourceName": {
            "description": "The name of the custom app source.",
            "type": "string"
          },
          "sourceVersionId": {
            "description": "The custom application source version ID of the record.",
            "type": "string"
          },
          "sourceVersionLabel": {
            "description": "The label of the source version.",
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "sourceId",
          "sourceVersionId"
        ],
        "type": "object",
        "x-versionadded": "v2.37"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [CustomAppHistory] | true | maxItems: 100 | The list of custom application soure versions published to this custom application. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## CustomApplicationsUsagesListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The list of visits to the custom application.",
      "items": {
        "properties": {
          "userId": {
            "description": "The ID of the user (or null for a guest).",
            "type": [
              "string",
              "null"
            ]
          },
          "userType": {
            "description": "Determines whether the user was a creator, viewer, or guest at the time of visit.",
            "enum": [
              "guest",
              "viewer",
              "creator"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "username": {
            "description": "The name of the user.",
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "visitTimestamp": {
            "description": "The date and time that user last visited the app.",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "userId",
          "userType",
          "username",
          "visitTimestamp"
        ],
        "type": "object",
        "x-versionadded": "v2.37"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.37"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [CustomAppUsage] | true | maxItems: 100 | The list of visits to the custom application. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## CustomTemplateCreatePayload

```
{
  "properties": {
    "defaultEnvironment": {
      "description": "Specifies the default environment for the custom metric template.",
      "type": "string"
    },
    "defaultResourceBundleId": {
      "description": "Specifies the default resource bundle for the custom metric template.",
      "enum": [
        "cpu.nano",
        "cpu.micro",
        "cpu.small",
        "cpu.medium",
        "cpu.large",
        "cpu.xlarge",
        "cpu.2xlarge",
        "cpu.3xlarge",
        "cpu.4xlarge",
        "cpu.5xlarge",
        "cpu.6xlarge",
        "cpu.7xlarge",
        "cpu.8xlarge",
        "cpu.16xlarge",
        "DRAWSR6i.4xlargeFrac8Regular",
        "DRAWSR6i.4xlargeFrac4Regular",
        "DRAWSG4dn.xlargeFrac1Regular",
        "DRAWSG4dn.2xlargeFrac1Regular",
        "DRAWSG5.2xlargeFrac1Regular",
        "DRAWSG5.12xlargeFrac1Regular",
        "DRAWSG5.48xlargeFrac1Regular",
        "DRAWSG6e.xlargeFrac1Regular",
        "DRAWSG6e.12xlargeFrac1Regular",
        "DRAWSG6e.48xlargeFrac1Regular",
        "gpu.small",
        "gpu.medium",
        "gpu.large",
        "gpu.xlarge",
        "gpu.2xlarge",
        "gpu.3xlarge",
        "gpu.5xlarge",
        "gpu.7xlarge",
        "starter",
        "basic",
        "basic.8x",
        "train.l",
        "infer.s",
        "infer.m",
        "infer.l"
      ],
      "type": "string"
    },
    "description": {
      "description": "A description of the custom template.",
      "maxLength": 10000,
      "type": "string"
    },
    "enabled": {
      "default": true,
      "description": "Disabled templates remain visible in the UI but cannot be used.",
      "type": "boolean",
      "x-versionadded": "v2.36"
    },
    "file": {
      "description": "The file to be used to create the custom metric template.",
      "format": "binary",
      "type": "string"
    },
    "isHidden": {
      "default": false,
      "description": "Hidden templates are not visible in the UI.",
      "type": "boolean",
      "x-versionadded": "v2.37"
    },
    "name": {
      "description": "The name of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateMetadata": {
      "description": "Specifies permanent metadata for the custom template.",
      "type": [
        "string",
        "null"
      ]
    },
    "templateSubType": {
      "description": "Defines sub-type of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateType": {
      "description": "Defines type of the custom template.",
      "maxLength": 255,
      "type": "string"
    }
  },
  "required": [
    "defaultEnvironment",
    "description",
    "file",
    "name",
    "templateSubType",
    "templateType"
  ],
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| defaultEnvironment | string | true |  | Specifies the default environment for the custom metric template. |
| defaultResourceBundleId | string | false |  | Specifies the default resource bundle for the custom metric template. |
| description | string | true | maxLength: 10000 | A description of the custom template. |
| enabled | boolean | false |  | Disabled templates remain visible in the UI but cannot be used. |
| file | string(binary) | true |  | The file to be used to create the custom metric template. |
| isHidden | boolean | false |  | Hidden templates are not visible in the UI. |
| name | string | true | maxLength: 255 | The name of the custom template. |
| templateMetadata | string,null | false |  | Specifies permanent metadata for the custom template. |
| templateSubType | string | true | maxLength: 255 | Defines sub-type of the custom template. |
| templateType | string | true | maxLength: 255 | Defines type of the custom template. |

### Enumerated Values

| Property | Value |
| --- | --- |
| defaultResourceBundleId | [cpu.nano, cpu.micro, cpu.small, cpu.medium, cpu.large, cpu.xlarge, cpu.2xlarge, cpu.3xlarge, cpu.4xlarge, cpu.5xlarge, cpu.6xlarge, cpu.7xlarge, cpu.8xlarge, cpu.16xlarge, DRAWSR6i.4xlargeFrac8Regular, DRAWSR6i.4xlargeFrac4Regular, DRAWSG4dn.xlargeFrac1Regular, DRAWSG4dn.2xlargeFrac1Regular, DRAWSG5.2xlargeFrac1Regular, DRAWSG5.12xlargeFrac1Regular, DRAWSG5.48xlargeFrac1Regular, DRAWSG6e.xlargeFrac1Regular, DRAWSG6e.12xlargeFrac1Regular, DRAWSG6e.48xlargeFrac1Regular, gpu.small, gpu.medium, gpu.large, gpu.xlarge, gpu.2xlarge, gpu.3xlarge, gpu.5xlarge, gpu.7xlarge, starter, basic, basic.8x, train.l, infer.s, infer.m, infer.l] |

## CustomTemplateEntity

```
{
  "properties": {
    "defaultEnvironment": {
      "description": "Specifies the default environment for the custom template.",
      "properties": {
        "environmentId": {
          "description": "The ID the environment to use for the public custom metric image.",
          "type": "string"
        },
        "environmentVersionId": {
          "description": "The ID of the specific environment version to use with the public custom metric image.",
          "type": "string"
        }
      },
      "required": [
        "environmentId",
        "environmentVersionId"
      ],
      "type": "object",
      "x-versionadded": "v2.36"
    },
    "defaultResourceBundleId": {
      "description": "Specifies the default resource bundle for the custom metric template.",
      "enum": [
        "cpu.nano",
        "cpu.micro",
        "cpu.small",
        "cpu.medium",
        "cpu.large",
        "cpu.xlarge",
        "cpu.2xlarge",
        "cpu.3xlarge",
        "cpu.4xlarge",
        "cpu.5xlarge",
        "cpu.6xlarge",
        "cpu.7xlarge",
        "cpu.8xlarge",
        "cpu.16xlarge",
        "DRAWSR6i.4xlargeFrac8Regular",
        "DRAWSR6i.4xlargeFrac4Regular",
        "DRAWSG4dn.xlargeFrac1Regular",
        "DRAWSG4dn.2xlargeFrac1Regular",
        "DRAWSG5.2xlargeFrac1Regular",
        "DRAWSG5.12xlargeFrac1Regular",
        "DRAWSG5.48xlargeFrac1Regular",
        "DRAWSG6e.xlargeFrac1Regular",
        "DRAWSG6e.12xlargeFrac1Regular",
        "DRAWSG6e.48xlargeFrac1Regular",
        "gpu.small",
        "gpu.medium",
        "gpu.large",
        "gpu.xlarge",
        "gpu.2xlarge",
        "gpu.3xlarge",
        "gpu.5xlarge",
        "gpu.7xlarge",
        "starter",
        "basic",
        "basic.8x",
        "train.l",
        "infer.s",
        "infer.m",
        "infer.l"
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "description": "A description of the custom template.",
      "maxLength": 10000,
      "type": "string"
    },
    "enabled": {
      "description": "Determines whether the template is enabled.",
      "type": "boolean"
    },
    "id": {
      "description": "The ID of the custom template.",
      "type": "string"
    },
    "items": {
      "description": "A list of custom files.",
      "items": {
        "properties": {
          "id": {
            "description": "The ID of the custom template file.",
            "type": "string"
          },
          "name": {
            "description": "Name of the custom template file.",
            "maxLength": 255,
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "x-versionadded": "v2.36"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "name": {
      "description": "The name of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateMetadata": {
      "description": "Specifies permanent metadata for the custom template.",
      "properties": {
        "classLabels": {
          "description": "List of class names in case of creating a Binary or a multiclass custom model.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array",
          "x-versionadded": "v2.36"
        },
        "readme": {
          "description": "Content of README.md file of the template.",
          "maxLength": 1048576,
          "type": [
            "string",
            "null"
          ]
        },
        "resourceBundleIds": {
          "description": "Custom template resource bundle IDs list.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array",
          "x-versionadded": "v2.36"
        },
        "source": {
          "description": "Custom template source repo.",
          "type": "object",
          "x-versionadded": "v2.36"
        },
        "tags": {
          "description": "Custom template tags list.",
          "items": {
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "templateTypeSpecificResources": {
          "description": "Specifies resources for the custom template.",
          "properties": {
            "serviceWebRequestsOnRootPath": {
              "default": false,
              "description": "Whether the 'service_web_requests_on_root_path' resource should be enabled on the custom app.",
              "type": [
                "boolean",
                "null"
              ]
            }
          },
          "type": "object",
          "x-versionadded": "v2.36"
        }
      },
      "type": "object",
      "x-versionadded": "v2.36"
    },
    "templateSubType": {
      "description": "Defines the type of the custom template.",
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "templateType": {
      "description": "Defines the type of the custom template.",
      "maxLength": 255,
      "type": "string"
    }
  },
  "required": [
    "defaultEnvironment",
    "defaultResourceBundleId",
    "description",
    "enabled",
    "id",
    "items",
    "name",
    "templateMetadata",
    "templateSubType",
    "templateType"
  ],
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| defaultEnvironment | DefaultEnvironment | true |  | Specifies the default environment for the custom template. |
| defaultResourceBundleId | string,null | true |  | Specifies the default resource bundle for the custom metric template. |
| description | string | true | maxLength: 10000 | A description of the custom template. |
| enabled | boolean | true |  | Determines whether the template is enabled. |
| id | string | true |  | The ID of the custom template. |
| items | [CustomTemplateFile] | true | maxItems: 1000 | A list of custom files. |
| name | string | true | maxLength: 255 | The name of the custom template. |
| templateMetadata | TemplateMetadata | true |  | Specifies permanent metadata for the custom template. |
| templateSubType | string,null | true | maxLength: 255 | Defines the type of the custom template. |
| templateType | string | true | maxLength: 255 | Defines the type of the custom template. |

### Enumerated Values

| Property | Value |
| --- | --- |
| defaultResourceBundleId | [cpu.nano, cpu.micro, cpu.small, cpu.medium, cpu.large, cpu.xlarge, cpu.2xlarge, cpu.3xlarge, cpu.4xlarge, cpu.5xlarge, cpu.6xlarge, cpu.7xlarge, cpu.8xlarge, cpu.16xlarge, DRAWSR6i.4xlargeFrac8Regular, DRAWSR6i.4xlargeFrac4Regular, DRAWSG4dn.xlargeFrac1Regular, DRAWSG4dn.2xlargeFrac1Regular, DRAWSG5.2xlargeFrac1Regular, DRAWSG5.12xlargeFrac1Regular, DRAWSG5.48xlargeFrac1Regular, DRAWSG6e.xlargeFrac1Regular, DRAWSG6e.12xlargeFrac1Regular, DRAWSG6e.48xlargeFrac1Regular, gpu.small, gpu.medium, gpu.large, gpu.xlarge, gpu.2xlarge, gpu.3xlarge, gpu.5xlarge, gpu.7xlarge, starter, basic, basic.8x, train.l, infer.s, infer.m, infer.l] |

## CustomTemplateFile

```
{
  "properties": {
    "id": {
      "description": "The ID of the custom template file.",
      "type": "string"
    },
    "name": {
      "description": "Name of the custom template file.",
      "maxLength": 255,
      "type": "string"
    }
  },
  "required": [
    "id",
    "name"
  ],
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| id | string | true |  | The ID of the custom template file. |
| name | string | true | maxLength: 255 | Name of the custom template file. |

## CustomTemplateFileResponse

```
{
  "properties": {
    "content": {
      "description": "The content of the chosen file.",
      "type": "string"
    },
    "contentEncoding": {
      "description": "The encoding of the content field. Either \"utf-8\" for text files or \"base64\" for binary files such as images.",
      "type": "string",
      "x-versionadded": "v2.43"
    },
    "fileName": {
      "description": "The name of the chosen file.",
      "type": "string"
    },
    "id": {
      "description": "The ID of the file.",
      "type": "string"
    }
  },
  "required": [
    "content",
    "contentEncoding",
    "fileName",
    "id"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| content | string | true |  | The content of the chosen file. |
| contentEncoding | string | true |  | The encoding of the content field. Either "utf-8" for text files or "base64" for binary files such as images. |
| fileName | string | true |  | The name of the chosen file. |
| id | string | true |  | The ID of the file. |

## CustomTemplateListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "A list of custom templates.",
      "items": {
        "properties": {
          "defaultEnvironment": {
            "description": "Specifies the default environment for the custom template.",
            "properties": {
              "environmentId": {
                "description": "The ID the environment to use for the public custom metric image.",
                "type": "string"
              },
              "environmentVersionId": {
                "description": "The ID of the specific environment version to use with the public custom metric image.",
                "type": "string"
              }
            },
            "required": [
              "environmentId",
              "environmentVersionId"
            ],
            "type": "object",
            "x-versionadded": "v2.36"
          },
          "defaultResourceBundleId": {
            "description": "Specifies the default resource bundle for the custom metric template.",
            "enum": [
              "cpu.nano",
              "cpu.micro",
              "cpu.small",
              "cpu.medium",
              "cpu.large",
              "cpu.xlarge",
              "cpu.2xlarge",
              "cpu.3xlarge",
              "cpu.4xlarge",
              "cpu.5xlarge",
              "cpu.6xlarge",
              "cpu.7xlarge",
              "cpu.8xlarge",
              "cpu.16xlarge",
              "DRAWSR6i.4xlargeFrac8Regular",
              "DRAWSR6i.4xlargeFrac4Regular",
              "DRAWSG4dn.xlargeFrac1Regular",
              "DRAWSG4dn.2xlargeFrac1Regular",
              "DRAWSG5.2xlargeFrac1Regular",
              "DRAWSG5.12xlargeFrac1Regular",
              "DRAWSG5.48xlargeFrac1Regular",
              "DRAWSG6e.xlargeFrac1Regular",
              "DRAWSG6e.12xlargeFrac1Regular",
              "DRAWSG6e.48xlargeFrac1Regular",
              "gpu.small",
              "gpu.medium",
              "gpu.large",
              "gpu.xlarge",
              "gpu.2xlarge",
              "gpu.3xlarge",
              "gpu.5xlarge",
              "gpu.7xlarge",
              "starter",
              "basic",
              "basic.8x",
              "train.l",
              "infer.s",
              "infer.m",
              "infer.l"
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "A description of the custom template.",
            "maxLength": 10000,
            "type": "string"
          },
          "enabled": {
            "description": "Determines whether the template is enabled.",
            "type": "boolean"
          },
          "id": {
            "description": "The ID of the custom template.",
            "type": "string"
          },
          "items": {
            "description": "A list of custom files.",
            "items": {
              "properties": {
                "id": {
                  "description": "The ID of the custom template file.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the custom template file.",
                  "maxLength": 255,
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name"
              ],
              "type": "object",
              "x-versionadded": "v2.36"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "name": {
            "description": "The name of the custom template.",
            "maxLength": 255,
            "type": "string"
          },
          "templateMetadata": {
            "description": "Specifies permanent metadata for the custom template.",
            "properties": {
              "classLabels": {
                "description": "List of class names in case of creating a Binary or a multiclass custom model.",
                "items": {
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array",
                "x-versionadded": "v2.36"
              },
              "readme": {
                "description": "Content of README.md file of the template.",
                "maxLength": 1048576,
                "type": [
                  "string",
                  "null"
                ]
              },
              "resourceBundleIds": {
                "description": "Custom template resource bundle IDs list.",
                "items": {
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array",
                "x-versionadded": "v2.36"
              },
              "source": {
                "description": "Custom template source repo.",
                "type": "object",
                "x-versionadded": "v2.36"
              },
              "tags": {
                "description": "Custom template tags list.",
                "items": {
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array"
              },
              "templateTypeSpecificResources": {
                "description": "Specifies resources for the custom template.",
                "properties": {
                  "serviceWebRequestsOnRootPath": {
                    "default": false,
                    "description": "Whether the 'service_web_requests_on_root_path' resource should be enabled on the custom app.",
                    "type": [
                      "boolean",
                      "null"
                    ]
                  }
                },
                "type": "object",
                "x-versionadded": "v2.36"
              }
            },
            "type": "object",
            "x-versionadded": "v2.36"
          },
          "templateSubType": {
            "description": "Defines the type of the custom template.",
            "maxLength": 255,
            "type": [
              "string",
              "null"
            ]
          },
          "templateType": {
            "description": "Defines the type of the custom template.",
            "maxLength": 255,
            "type": "string"
          }
        },
        "required": [
          "defaultEnvironment",
          "defaultResourceBundleId",
          "description",
          "enabled",
          "id",
          "items",
          "name",
          "templateMetadata",
          "templateSubType",
          "templateType"
        ],
        "type": "object",
        "x-versionadded": "v2.36"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [CustomTemplateEntity] | true | maxItems: 100 | A list of custom templates. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## CustomTemplateUpdatePayload

```
{
  "properties": {
    "defaultEnvironment": {
      "description": "Specifies the default environment for the custom template.",
      "type": "string"
    },
    "defaultResourceBundleId": {
      "description": "Specifies the default resource bundle for the custom metric template.",
      "enum": [
        "cpu.nano",
        "cpu.micro",
        "cpu.small",
        "cpu.medium",
        "cpu.large",
        "cpu.xlarge",
        "cpu.2xlarge",
        "cpu.3xlarge",
        "cpu.4xlarge",
        "cpu.5xlarge",
        "cpu.6xlarge",
        "cpu.7xlarge",
        "cpu.8xlarge",
        "cpu.16xlarge",
        "DRAWSR6i.4xlargeFrac8Regular",
        "DRAWSR6i.4xlargeFrac4Regular",
        "DRAWSG4dn.xlargeFrac1Regular",
        "DRAWSG4dn.2xlargeFrac1Regular",
        "DRAWSG5.2xlargeFrac1Regular",
        "DRAWSG5.12xlargeFrac1Regular",
        "DRAWSG5.48xlargeFrac1Regular",
        "DRAWSG6e.xlargeFrac1Regular",
        "DRAWSG6e.12xlargeFrac1Regular",
        "DRAWSG6e.48xlargeFrac1Regular",
        "gpu.small",
        "gpu.medium",
        "gpu.large",
        "gpu.xlarge",
        "gpu.2xlarge",
        "gpu.3xlarge",
        "gpu.5xlarge",
        "gpu.7xlarge",
        "starter",
        "basic",
        "basic.8x",
        "train.l",
        "infer.s",
        "infer.m",
        "infer.l"
      ],
      "type": "string"
    },
    "description": {
      "description": "A description of the custom template.",
      "maxLength": 10000,
      "type": "string"
    },
    "enabled": {
      "default": true,
      "description": "Disabled templates remain visible in the UI but cannot be used.",
      "type": "boolean",
      "x-versionadded": "v2.36"
    },
    "file": {
      "description": "The file to be used to create the custom template.",
      "format": "binary",
      "type": "string"
    },
    "isHidden": {
      "default": false,
      "description": "Hidden templates are not visible in the UI.",
      "type": "boolean",
      "x-versionadded": "v2.37"
    },
    "name": {
      "description": "The name of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateMetadata": {
      "description": "Specifies permanent metadata for the custom template.",
      "type": [
        "string",
        "null"
      ]
    },
    "templateSubType": {
      "description": "Defines the sub-type of the custom template.",
      "maxLength": 255,
      "type": "string"
    },
    "templateType": {
      "description": "Defines the type of the custom template.",
      "maxLength": 255,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.36"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| defaultEnvironment | string | false |  | Specifies the default environment for the custom template. |
| defaultResourceBundleId | string | false |  | Specifies the default resource bundle for the custom metric template. |
| description | string | false | maxLength: 10000 | A description of the custom template. |
| enabled | boolean | false |  | Disabled templates remain visible in the UI but cannot be used. |
| file | string(binary) | false |  | The file to be used to create the custom template. |
| isHidden | boolean | false |  | Hidden templates are not visible in the UI. |
| name | string | false | maxLength: 255 | The name of the custom template. |
| templateMetadata | string,null | false |  | Specifies permanent metadata for the custom template. |
| templateSubType | string | false | maxLength: 255 | Defines the sub-type of the custom template. |
| templateType | string | false | maxLength: 255 | Defines the type of the custom template. |

### Enumerated Values

| Property | Value |
| --- | --- |
| defaultResourceBundleId | [cpu.nano, cpu.micro, cpu.small, cpu.medium, cpu.large, cpu.xlarge, cpu.2xlarge, cpu.3xlarge, cpu.4xlarge, cpu.5xlarge, cpu.6xlarge, cpu.7xlarge, cpu.8xlarge, cpu.16xlarge, DRAWSR6i.4xlargeFrac8Regular, DRAWSR6i.4xlargeFrac4Regular, DRAWSG4dn.xlargeFrac1Regular, DRAWSG4dn.2xlargeFrac1Regular, DRAWSG5.2xlargeFrac1Regular, DRAWSG5.12xlargeFrac1Regular, DRAWSG5.48xlargeFrac1Regular, DRAWSG6e.xlargeFrac1Regular, DRAWSG6e.12xlargeFrac1Regular, DRAWSG6e.48xlargeFrac1Regular, gpu.small, gpu.medium, gpu.large, gpu.xlarge, gpu.2xlarge, gpu.3xlarge, gpu.5xlarge, gpu.7xlarge, starter, basic, basic.8x, train.l, infer.s, infer.m, infer.l] |

## DefaultEnvironment

```
{
  "description": "Specifies the default environment for the custom template.",
  "properties": {
    "environmentId": {
      "description": "The ID the environment to use for the public custom metric image.",
      "type": "string"
    },
    "environmentVersionId": {
      "description": "The ID of the specific environment version to use with the public custom metric image.",
      "type": "string"
    }
  },
  "required": [
    "environmentId",
    "environmentVersionId"
  ],
  "type": "object",
  "x-versionadded": "v2.36"
}
```

Specifies the default environment for the custom template.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| environmentId | string | true |  | The ID the environment to use for the public custom metric image. |
| environmentVersionId | string | true |  | The ID of the specific environment version to use with the public custom metric image. |

## GrantAccessControlWithId

```
{
  "properties": {
    "id": {
      "description": "The ID of the recipient.",
      "type": "string"
    },
    "role": {
      "description": "The role of the recipient on this entity.",
      "enum": [
        "ADMIN",
        "CONSUMER",
        "DATA_SCIENTIST",
        "EDITOR",
        "NO_ROLE",
        "OBSERVER",
        "OWNER",
        "READ_ONLY",
        "READ_WRITE",
        "USER"
      ],
      "type": "string"
    },
    "shareRecipientType": {
      "description": "Describes the recipient type, either user, group, or organization.",
      "enum": [
        "user",
        "group",
        "organization"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "role",
    "shareRecipientType"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| id | string | true |  | The ID of the recipient. |
| role | string | true |  | The role of the recipient on this entity. |
| shareRecipientType | string | true |  | Describes the recipient type, either user, group, or organization. |

### Enumerated Values

| Property | Value |
| --- | --- |
| role | [ADMIN, CONSUMER, DATA_SCIENTIST, EDITOR, NO_ROLE, OBSERVER, OWNER, READ_ONLY, READ_WRITE, USER] |
| shareRecipientType | [user, group, organization] |

## GrantAccessControlWithUsername

```
{
  "properties": {
    "role": {
      "description": "The role of the recipient on this entity.",
      "enum": [
        "ADMIN",
        "CONSUMER",
        "DATA_SCIENTIST",
        "EDITOR",
        "NO_ROLE",
        "OBSERVER",
        "OWNER",
        "READ_ONLY",
        "READ_WRITE",
        "USER"
      ],
      "type": "string"
    },
    "shareRecipientType": {
      "description": "Describes the recipient type, either user, group, or organization.",
      "enum": [
        "user",
        "group",
        "organization"
      ],
      "type": "string"
    },
    "username": {
      "description": "Username of the user to update the access role for.",
      "type": "string"
    }
  },
  "required": [
    "role",
    "shareRecipientType",
    "username"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| role | string | true |  | The role of the recipient on this entity. |
| shareRecipientType | string | true |  | Describes the recipient type, either user, group, or organization. |
| username | string | true |  | Username of the user to update the access role for. |

### Enumerated Values

| Property | Value |
| --- | --- |
| role | [ADMIN, CONSUMER, DATA_SCIENTIST, EDITOR, NO_ROLE, OBSERVER, OWNER, READ_ONLY, READ_WRITE, USER] |
| shareRecipientType | [user, group, organization] |

## SharingListV2Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned.",
      "type": "integer"
    },
    "data": {
      "description": "The access control list.",
      "items": {
        "properties": {
          "id": {
            "description": "The identifier of the recipient.",
            "type": "string"
          },
          "name": {
            "description": "The name of the recipient.",
            "type": "string"
          },
          "role": {
            "description": "The role of the recipient on this entity.",
            "enum": [
              "ADMIN",
              "CONSUMER",
              "DATA_SCIENTIST",
              "EDITOR",
              "OBSERVER",
              "OWNER",
              "READ_ONLY",
              "READ_WRITE",
              "USER"
            ],
            "type": "string"
          },
          "shareRecipientType": {
            "description": "The type of the recipient.",
            "enum": [
              "user",
              "group",
              "organization"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "role",
          "shareRecipientType"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "next": {
      "description": "The URL pointing to the next page.",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL pointing to the previous page.",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items matching the condition.",
      "type": "integer"
    }
  },
  "required": [
    "count",
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | true |  | The number of items returned. |
| data | [AccessControlV2] | true | maxItems: 1000 | The access control list. |
| next | string,null | true |  | The URL pointing to the next page. |
| previous | string,null | true |  | The URL pointing to the previous page. |
| totalCount | integer | true |  | The total number of items matching the condition. |

## TemplateMetadata

```
{
  "description": "Specifies permanent metadata for the custom template.",
  "properties": {
    "classLabels": {
      "description": "List of class names in case of creating a Binary or a multiclass custom model.",
      "items": {
        "type": "string"
      },
      "maxItems": 1000,
      "type": "array",
      "x-versionadded": "v2.36"
    },
    "readme": {
      "description": "Content of README.md file of the template.",
      "maxLength": 1048576,
      "type": [
        "string",
        "null"
      ]
    },
    "resourceBundleIds": {
      "description": "Custom template resource bundle IDs list.",
      "items": {
        "type": "string"
      },
      "maxItems": 1000,
      "type": "array",
      "x-versionadded": "v2.36"
    },
    "source": {
      "description": "Custom template source repo.",
      "type": "object",
      "x-versionadded": "v2.36"
    },
    "tags": {
      "description": "Custom template tags list.",
      "items": {
        "type": "string"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "templateTypeSpecificResources": {
      "description": "Specifies resources for the custom template.",
      "properties": {
        "serviceWebRequestsOnRootPath": {
          "default": false,
          "description": "Whether the 'service_web_requests_on_root_path' resource should be enabled on the custom app.",
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "type": "object",
      "x-versionadded": "v2.36"
    }
  },
  "type": "object",
  "x-versionadded": "v2.36"
}
```

Specifies permanent metadata for the custom template.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| classLabels | [string] | false | maxItems: 1000 | List of class names in case of creating a Binary or a multiclass custom model. |
| readme | string,null | false | maxLength: 1048576 | Content of README.md file of the template. |
| resourceBundleIds | [string] | false | maxItems: 1000 | Custom template resource bundle IDs list. |
| source | TemplateSource | false |  | Custom template source repo. |
| tags | [string] | false | maxItems: 1000 | Custom template tags list. |
| templateTypeSpecificResources | TemplateTypeSpecificResources | false |  | Specifies resources for the custom template. |

## TemplateSource

```
{
  "description": "Custom template source repo.",
  "type": "object",
  "x-versionadded": "v2.36"
}
```

Custom template source repo.

### Properties

None

## TemplateTypeSpecificResources

```
{
  "description": "Specifies resources for the custom template.",
  "properties": {
    "serviceWebRequestsOnRootPath": {
      "default": false,
      "description": "Whether the 'service_web_requests_on_root_path' resource should be enabled on the custom app.",
      "type": [
        "boolean",
        "null"
      ]
    }
  },
  "type": "object",
  "x-versionadded": "v2.36"
}
```

Specifies resources for the custom template.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| serviceWebRequestsOnRootPath | boolean,null | false |  | Whether the 'service_web_requests_on_root_path' resource should be enabled on the custom app. |

## WorkspaceItemResponse

```
{
  "properties": {
    "commitSha": {
      "description": "SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories).",
      "type": [
        "string",
        "null"
      ]
    },
    "created": {
      "description": "ISO-8601 timestamp of when the file item was created.",
      "type": "string"
    },
    "fileName": {
      "description": "The name of the file item.",
      "type": "string"
    },
    "filePath": {
      "description": "The path of the file item.",
      "type": "string"
    },
    "fileSource": {
      "description": "The source of the file item.",
      "type": "string"
    },
    "id": {
      "description": "ID of the file item.",
      "type": "string"
    },
    "ref": {
      "description": "Remote reference (branch, commit, tag). Branch \"master\", if not specified.",
      "type": [
        "string",
        "null"
      ]
    },
    "repositoryFilePath": {
      "description": "Full path to the file in the remote repository.",
      "type": [
        "string",
        "null"
      ]
    },
    "repositoryLocation": {
      "description": "URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name).",
      "type": [
        "string",
        "null"
      ]
    },
    "repositoryName": {
      "description": "Name of the repository from which the file was pulled.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "created",
    "fileName",
    "filePath",
    "fileSource",
    "id"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| commitSha | string,null | false |  | SHA1 hash pointing to the original file revision (set only for files pulled from Git-like repositories). |
| created | string | true |  | ISO-8601 timestamp of when the file item was created. |
| fileName | string | true |  | The name of the file item. |
| filePath | string | true |  | The path of the file item. |
| fileSource | string | true |  | The source of the file item. |
| id | string | true |  | ID of the file item. |
| ref | string,null | false |  | Remote reference (branch, commit, tag). Branch "master", if not specified. |
| repositoryFilePath | string,null | false |  | Full path to the file in the remote repository. |
| repositoryLocation | string,null | false |  | URL to remote repository from which the file was pulled (e.g. Git server or S3 Bucket name). |
| repositoryName | string,null | false |  | Name of the repository from which the file was pulled. |

---
