artifacts¶
Manage artifact definitions and container specifications.
Get Artifact Repositories¶
Operation path: GET /artifactRepositories
Returns the list of artifact repositories.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| offset | query | integer | false | Skip the specified number of values. |
| limit | query | integer | false | Retrieve only the specified number of values. |
| createdBy | query | any | false | Filters by those created by the given user. |
| ids | query | any | false | Filter by specific IDs |
| search | query | any | false | Case insensitive search against name, description and partial ID. |
| tagKeys | query | any | false | List of tag keys to filter for. If multiple values are specified, results with tags that match any of the values will be returned. |
| tagValues | query | any | false | List of tag values to filter for. If multiple values are specified, results with tags that match any of the values will be returned. |
| orderBy | query | any | false | Select a sorting strategy from the list. |
| type | query | any | false | Filters artifacts by their type (e.g., service, nim). |
Example responses¶
200 Response
{
"additionalProperties": false,
"properties": {
"count": {
"description": "The number of records on this page.",
"title": "Count",
"type": "integer"
},
"data": {
"description": "The list of records.",
"items": {
"additionalProperties": false,
"properties": {
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"lastVersionNumber": {
"default": 0,
"description": "Last version number.",
"title": "Lastversionnumber",
"type": "integer"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"numArtifacts": {
"default": 0,
"description": "Number of artifacts in this repository.",
"minimum": 0,
"title": "Numartifacts",
"type": "integer"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt"
],
"title": "ArtifactRepositoryFormatted",
"type": "object"
},
"title": "Data",
"type": "array"
},
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the next page, or `null` if there is no such page.",
"title": "Next"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the previous page, or `null` if there is no such page.",
"title": "Previous"
},
"totalCount": {
"description": "The total number of records.",
"title": "Totalcount",
"type": "integer"
}
},
"required": [
"totalCount",
"count",
"next",
"previous",
"data"
],
"title": "ArtifactRepositoryListResponse",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | ArtifactRepositoryListResponse |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Delete Artifact Repository By Artifact_repository_ Id by artifact_repository_ ID¶
Operation path: DELETE /artifactRepositories/{artifact_repository_id}
Delete an artifact repository. Artifacts within the repository are cascade-deleted unless they are locked or still in use by workloads.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_repository_id | path | string | true | Artifact Repository ID |
Example responses¶
422 Response
{
"properties": {
"detail": {
"items": {
"properties": {
"ctx": {
"title": "Context",
"type": "object"
},
"input": {
"title": "Input"
},
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"title": "Location",
"type": "array"
},
"msg": {
"title": "Message",
"type": "string"
},
"type": {
"title": "Error Type",
"type": "string"
}
},
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError",
"type": "object"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Successful Response | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact repository not found | None |
| 409 | Conflict | Repository contains locked artifacts or artifacts in use by workloads | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Artifact Repository By Artifact_repository_ Id by artifact_repository_ ID¶
Operation path: GET /artifactRepositories/{artifact_repository_id}
Get a specific artifact repository by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_repository_id | path | string | true | Artifact Repository ID |
Example responses¶
200 Response
{
"additionalProperties": false,
"properties": {
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"lastVersionNumber": {
"default": 0,
"description": "Last version number.",
"title": "Lastversionnumber",
"type": "integer"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"numArtifacts": {
"default": 0,
"description": "Number of artifacts in this repository.",
"minimum": 0,
"title": "Numartifacts",
"type": "integer"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt"
],
"title": "ArtifactRepositoryFormatted",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | ArtifactRepositoryFormatted |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact repository not found | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Artifact Repository Shared Roles By Artifact_repository_ Id by artifact_repository_ ID¶
Operation path: GET /artifactRepositories/{artifact_repository_id}/sharedRoles
Get artifact repository shared roles. Returns the list of roles shared for this artifact repository.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_repository_id | path | string | true | Artifact Repository ID |
| offset | query | integer | false | Skip the specified number of values. |
| limit | query | integer | false | Retrieve only the specified number of values. |
Example responses¶
200 Response
{
"additionalProperties": false,
"properties": {
"count": {
"description": "The number of records on this page.",
"title": "Count",
"type": "integer"
},
"data": {
"description": "The list of records.",
"items": {
"additionalProperties": false,
"description": "Represents a recipient (user, group, or organization) with access to an entity. this model is used for listing and managing access control on shared resources, providing information about who has access and what role they have.",
"properties": {
"id": {
"description": "The identifier of the recipient.",
"title": "Id",
"type": "string"
},
"name": {
"description": "The name of the recipient.",
"title": "Name",
"type": "string"
},
"role": {
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
},
"shareRecipientType": {
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
}
},
"required": [
"id",
"name",
"shareRecipientType",
"role"
],
"title": "SharedRole",
"type": "object"
},
"title": "Data",
"type": "array"
},
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the next page, or `null` if there is no such page.",
"title": "Next"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the previous page, or `null` if there is no such page.",
"title": "Previous"
},
"totalCount": {
"description": "The total number of records.",
"title": "Totalcount",
"type": "integer"
}
},
"required": [
"totalCount",
"count",
"next",
"previous",
"data"
],
"title": "SharedRoleListResponse",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | SharedRoleListResponse |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact repository not found | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Update Artifact Repository Shared Roles By Artifact_repository_ Id by artifact_repository_ ID¶
Operation path: PATCH /artifactRepositories/{artifact_repository_id}/sharedRoles
Update artifact repository shared roles. Replaces the current shared roles with the provided list.
Body parameter¶
{
"additionalProperties": false,
"description": "Request model for updating shared roles on an entity. used to grant access, remove access, or update roles for organizations, groups, or users. up to 100 roles may be set in a single request.",
"properties": {
"operation": {
"const": "updateRoles",
"description": "Name of the action being taken. the only operation is 'updateroles'.",
"title": "Operation",
"type": "string"
},
"roles": {
"description": "Array of grantaccesscontrol objects, up to maximum 100 objects.",
"items": {
"anyOf": [
{
"additionalProperties": false,
"description": "Grant access control request using username for user identification.",
"properties": {
"role": {
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
},
"shareRecipientType": {
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
},
"username": {
"description": "Username of the user to update the access role for.",
"title": "Username",
"type": "string"
}
},
"required": [
"shareRecipientType",
"role",
"username"
],
"title": "GrantAccessControlWithUsername",
"type": "object"
},
{
"additionalProperties": false,
"description": "Grant access control request using id for recipient identification. can be used for users, groups, or organizations.",
"properties": {
"id": {
"description": "The id of the recipient.",
"title": "Id",
"type": "string"
},
"role": {
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
},
"shareRecipientType": {
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
}
},
"required": [
"shareRecipientType",
"role",
"id"
],
"title": "GrantAccessControlWithId",
"type": "object"
}
]
},
"maxItems": 100,
"minItems": 1,
"title": "Roles",
"type": "array"
}
},
"required": [
"operation",
"roles"
],
"title": "SharedRolesUpdateRequest",
"type": "object"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_repository_id | path | string | true | Artifact Repository ID |
| body | body | SharedRolesUpdateRequest | true | none |
Example responses¶
422 Response
{
"properties": {
"detail": {
"items": {
"properties": {
"ctx": {
"title": "Context",
"type": "object"
},
"input": {
"title": "Input"
},
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"title": "Location",
"type": "array"
},
"msg": {
"title": "Message",
"type": "string"
},
"type": {
"title": "Error Type",
"type": "string"
}
},
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError",
"type": "object"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Successful Response | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact repository not found | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get artifacts¶
Operation path: GET /artifacts
List all artifacts accessible to the authenticated user.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| offset | query | integer | false | Skip the specified number of values. |
| limit | query | integer | false | Retrieve only the specified number of values. |
| createdBy | query | any | false | Filters by those created by the given user. |
| ids | query | any | false | Filter by specific IDs |
| search | query | any | false | Case insensitive search against name, description and partial ID. |
| tagKeys | query | any | false | List of tag keys to filter for. If multiple values are specified, results with tags that match any of the values will be returned. |
| tagValues | query | any | false | List of tag values to filter for. If multiple values are specified, results with tags that match any of the values will be returned. |
| orderBy | query | any | false | The order to sort the results. |
| type | query | any | false | Filters artifacts by their type (e.g., service, nim). |
| status | query | any | false | Filters artifacts by their status. |
| repositoryId | query | any | false | Filter artifacts by their artifact repository ID |
Example responses¶
200 Response
{
"additionalProperties": false,
"properties": {
"count": {
"description": "The number of records on this page.",
"title": "Count",
"type": "integer"
},
"data": {
"description": "The list of records.",
"items": {
"additionalProperties": false,
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifact Repository ID"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Version number of the artifact (set only for locked artifacts).",
"title": "Version"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"spec",
"artifactRepositoryId"
],
"title": "ArtifactFormatted",
"type": "object"
},
"title": "Data",
"type": "array"
},
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the next page, or `null` if there is no such page.",
"title": "Next"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the previous page, or `null` if there is no such page.",
"title": "Previous"
},
"totalCount": {
"description": "The total number of records.",
"title": "Totalcount",
"type": "integer"
}
},
"required": [
"totalCount",
"count",
"next",
"previous",
"data"
],
"title": "ArtifactListResponse",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | ArtifactListResponse |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Create Artifact¶
Operation path: POST /artifacts
Create a new artifact from the provided container specification. Artifacts are always created as drafts.
Body parameter¶
{
"additionalProperties": false,
"description": "Request to create an artifact. an artifact is always created as a draft.",
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifactrepositoryid"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"name": {
"description": "Name of the artifact.",
"maxLength": 5000,
"minLength": 1,
"title": "Name",
"type": "string"
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
}
},
"required": [
"name",
"spec"
],
"title": "InputArtifact",
"type": "object"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | InputArtifact | true | none |
Example responses¶
201 Response
{
"additionalProperties": false,
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifact Repository ID"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Version number of the artifact (set only for locked artifacts).",
"title": "Version"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"spec",
"artifactRepositoryId"
],
"title": "ArtifactFormatted",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Successful Response | ArtifactFormatted |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Delete Artifact By Artifact_ Id by artifact_ ID¶
Operation path: DELETE /artifacts/{artifact_id}
Delete an artifact. Locked artifacts and artifacts with associated protons cannot be deleted.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
Example responses¶
422 Response
{
"properties": {
"detail": {
"items": {
"properties": {
"ctx": {
"title": "Context",
"type": "object"
},
"input": {
"title": "Input"
},
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"title": "Location",
"type": "array"
},
"msg": {
"title": "Message",
"type": "string"
},
"type": {
"title": "Error Type",
"type": "string"
}
},
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError",
"type": "object"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Successful Response | None |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 409 | Conflict | Artifact is locked or currently in use by a workload | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Artifact By Artifact_ Id by artifact_ ID¶
Operation path: GET /artifacts/{artifact_id}
Get a specific artifact by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
Example responses¶
200 Response
{
"additionalProperties": false,
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifact Repository ID"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Version number of the artifact (set only for locked artifacts).",
"title": "Version"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"spec",
"artifactRepositoryId"
],
"title": "ArtifactFormatted",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | ArtifactFormatted |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Patch Artifact By Artifact_ Id by artifact_ ID¶
Operation path: PATCH /artifacts/{artifact_id}
Partially update an artifact. Only the provided fields will be updated.
Body parameter¶
{
"additionalProperties": false,
"description": "Request to update an artifact. when updating an artifact, the user_id and tenant_id cannot be changed. currently transferring of ownership of an artifact is not supported.",
"properties": {
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Description of the artifact.",
"title": "Description"
},
"name": {
"anyOf": [
{
"maxLength": 5000,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the artifact.",
"title": "Name"
},
"spec": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
}
},
"title": "MultiContainerArtifactSpec",
"type": "object"
},
{
"type": "null"
}
],
"description": "Artifact specification."
},
"status": {
"anyOf": [
{
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
{
"type": "null"
}
],
"description": "Artifact status."
}
},
"title": "UpdateArtifactRequest",
"type": "object"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
| body | body | UpdateArtifactRequest | true | none |
Example responses¶
200 Response
{
"additionalProperties": false,
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifact Repository ID"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Version number of the artifact (set only for locked artifacts).",
"title": "Version"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"spec",
"artifactRepositoryId"
],
"title": "ArtifactFormatted",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | ArtifactFormatted |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Update Artifact By Artifact_ Id by artifact_ ID¶
Operation path: PUT /artifacts/{artifact_id}
Update an existing artifact.
Replaces all artifact fields with the provided values. For partial updates, use the PATCH endpoint instead.
Body parameter¶
{
"additionalProperties": false,
"description": "Request to create an artifact. an artifact is always created as a draft.",
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifactrepositoryid"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"name": {
"description": "Name of the artifact.",
"maxLength": 5000,
"minLength": 1,
"title": "Name",
"type": "string"
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
}
},
"required": [
"name",
"spec"
],
"title": "InputArtifact",
"type": "object"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
| body | body | InputArtifact | true | none |
Example responses¶
200 Response
{
"additionalProperties": false,
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifact Repository ID"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Version number of the artifact (set only for locked artifacts).",
"title": "Version"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"spec",
"artifactRepositoryId"
],
"title": "ArtifactFormatted",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | ArtifactFormatted |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Get Artifact Build List By Artifact_ Id by artifact_ ID¶
Operation path: GET /artifacts/{artifact_id}/builds
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
| offset | query | integer | false | Skip the specified number of values. |
| limit | query | integer | false | Retrieve only the specified number of values. |
Example responses¶
200 Response
{
"additionalProperties": false,
"description": "Paginated list of formatted artifact image builds for get …/builds.",
"properties": {
"count": {
"description": "The number of records on this page.",
"title": "Count",
"type": "integer"
},
"data": {
"description": "The list of records.",
"items": {
"additionalProperties": false,
"description": "Build row formatted for get …/builds (same base fields as other `*formatted` API models).",
"properties": {
"artifactId": {
"description": "Parent artifact id.",
"title": "Artifact Id",
"type": "string"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"status": {
"description": "Client-facing artifact image build status.",
"enum": [
"PENDING",
"IN_PROGRESS",
"BUILT",
"COMPLETED",
"CANCELLED",
"FAILED",
"UNKNOWN"
],
"title": "ImageBuildExternalStatus",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"artifactId"
],
"title": "ImageBuildFormatted",
"type": "object"
},
"title": "Data",
"type": "array"
},
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the next page, or `null` if there is no such page.",
"title": "Next"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the previous page, or `null` if there is no such page.",
"title": "Previous"
},
"totalCount": {
"description": "The total number of records.",
"title": "Totalcount",
"type": "integer"
}
},
"required": [
"totalCount",
"count",
"next",
"previous",
"data"
],
"title": "ImageBuildFormattedList",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | ImageBuildFormattedList |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 422 | Unprocessable Entity | Bad request | None |
Trigger Artifact Build By Artifact_ Id by artifact_ ID¶
Operation path: POST /artifacts/{artifact_id}/builds
Start image build(s) for a draft service artifact (codeRef). Locked artifacts are rejected.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
Example responses¶
202 Response
{
"additionalProperties": false,
"description": "Response after requesting image build(s) for a draft artifact.",
"properties": {
"buildIds": {
"description": "Workload API artifact image build document ids (same strings returned as `build_id` on get/delete build routes), one per distinct files API catalog/version pair. internal image build ids are not returned.",
"items": {
"type": "string"
},
"title": "Buildids",
"type": "array"
}
},
"required": [
"buildIds"
],
"title": "ImageBuildTriggerResponse",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 202 | Accepted | Successful Response | ImageBuildTriggerResponse |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 422 | Unprocessable Entity | Invalid state, missing files, or other services error | None |
Delete Artifact Build By Artifact_ Id by artifact_ ID¶
Operation path: DELETE /artifacts/{artifact_id}/builds/{build_id}
Request cancellation/deletion of an image build for a draft artifact (immutable when locked).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
| build_id | path | string | true | Workload API artifact image build id, same id returned by trigger build |
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Successful Response | None |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 422 | Unprocessable Entity | Artifact not draft or internal error | None |
Get Artifact Build By Artifact_ Id by artifact_ ID¶
Operation path: GET /artifacts/{artifact_id}/builds/{build_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
| build_id | path | string | true | Workload API artifact image build id, same id returned by trigger build |
Example responses¶
200 Response
{
"additionalProperties": false,
"description": "Build row formatted for get …/builds (same base fields as other `*formatted` API models).",
"properties": {
"artifactId": {
"description": "Parent artifact id.",
"title": "Artifact Id",
"type": "string"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"status": {
"description": "Client-facing artifact image build status.",
"enum": [
"PENDING",
"IN_PROGRESS",
"BUILT",
"COMPLETED",
"CANCELLED",
"FAILED",
"UNKNOWN"
],
"title": "ImageBuildExternalStatus",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"artifactId"
],
"title": "ImageBuildFormatted",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | ImageBuildFormatted |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 422 | Unprocessable Entity | Invalid build id or bad request | None |
Get Artifact Build logs By Artifact_ Id by artifact_ ID¶
Operation path: GET /artifacts/{artifact_id}/builds/{build_id}/logs
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
| build_id | path | string | true | Workload API artifact image build id, same id returned by trigger build |
Example responses¶
200 Response
{"type":"string"}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | string |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 422 | Unprocessable Entity | Invalid build id or bad request | None |
Clone Artifact By Artifact_ Id by artifact_ ID¶
Operation path: POST /artifacts/{artifact_id}/clone
Clone an existing artifact. Creates a new artifact with the same fields as the original.
Body parameter¶
{
"additionalProperties": false,
"properties": {
"name": {
"description": "The name of the cloned artifact.",
"maxLength": 5000,
"minLength": 1,
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "ArtifactCloneRequest",
"type": "object"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| artifact_id | path | string | true | Artifact ID |
| body | body | ArtifactCloneRequest | true | none |
Example responses¶
200 Response
{
"additionalProperties": false,
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifact Repository ID"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Version number of the artifact (set only for locked artifacts).",
"title": "Version"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"spec",
"artifactRepositoryId"
],
"title": "ArtifactFormatted",
"type": "object"
}
Responses¶
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful Response | ArtifactFormatted |
| 400 | Bad Request | Bad request | None |
| 401 | Unauthorized | Unauthenticated | None |
| 403 | Forbidden | Insufficient permissions | None |
| 404 | Not Found | Artifact not found | None |
| 422 | Unprocessable Entity | Validation Error | HTTPValidationError |
Schemas¶
ANY_PERMISSION
{
"const": "*",
"type": "string"
}
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none |
ArtifactCloneRequest
{
"additionalProperties": false,
"properties": {
"name": {
"description": "The name of the cloned artifact.",
"maxLength": 5000,
"minLength": 1,
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "ArtifactCloneRequest",
"type": "object"
}
ArtifactCloneRequest
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | maxLength: 5000 minLength: 1 minLength: 1 |
The name of the cloned artifact. |
ArtifactFormatted
{
"additionalProperties": false,
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifact Repository ID"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Version number of the artifact (set only for locked artifacts).",
"title": "Version"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"spec",
"artifactRepositoryId"
],
"title": "ArtifactFormatted",
"type": "object"
}
ArtifactFormatted
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| artifactRepositoryId | any | true | Id of the artifact repository this artifact belongs to (for versioning support). |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| createdAt | string(date-time) | true | Timestamp of when the entity was created. | |
| creator | any | false | Owner user details including id, username and email. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | UserData | false | User information embedded in API responses. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string | false | Description of the artifact. | |
| id | string | true | Unique identifier of the entity. | |
| name | string | true | Name of the entity. | |
| permissions | ResourcePermissions | false | User permissions for this artifact. | |
| spec | any | true | Artifact specification. |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ServiceArtifactSpec | false | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NimArtifactSpec | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | ArtifactStatus | false | Artifact status. | |
| tags | Tags | false | Tags associated with this artifact. | |
| type | ArtifactType | false | Artifact type. | |
| updatedAt | string(date-time) | true | Timestamp of when the entity was last updated. | |
| version | any | false | Version number of the artifact (set only for locked artifacts). |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | integer | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
ArtifactListResponse
{
"additionalProperties": false,
"properties": {
"count": {
"description": "The number of records on this page.",
"title": "Count",
"type": "integer"
},
"data": {
"description": "The list of records.",
"items": {
"additionalProperties": false,
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifact Repository ID"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"version": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Version number of the artifact (set only for locked artifacts).",
"title": "Version"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"spec",
"artifactRepositoryId"
],
"title": "ArtifactFormatted",
"type": "object"
},
"title": "Data",
"type": "array"
},
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the next page, or `null` if there is no such page.",
"title": "Next"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the previous page, or `null` if there is no such page.",
"title": "Previous"
},
"totalCount": {
"description": "The total number of records.",
"title": "Totalcount",
"type": "integer"
}
},
"required": [
"totalCount",
"count",
"next",
"previous",
"data"
],
"title": "ArtifactListResponse",
"type": "object"
}
ArtifactListResponse
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | The number of records on this page. | |
| data | [ArtifactFormatted] | true | The list of records. | |
| next | any | true | The url to the next page, or null if there is no such page. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| previous | any | true | The url to the previous page, or null if there is no such page. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| totalCount | integer | true | The total number of records. |
ArtifactRepositoryFormatted
{
"additionalProperties": false,
"properties": {
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"lastVersionNumber": {
"default": 0,
"description": "Last version number.",
"title": "Lastversionnumber",
"type": "integer"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"numArtifacts": {
"default": 0,
"description": "Number of artifacts in this repository.",
"minimum": 0,
"title": "Numartifacts",
"type": "integer"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt"
],
"title": "ArtifactRepositoryFormatted",
"type": "object"
}
ArtifactRepositoryFormatted
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| createdAt | string(date-time) | true | Timestamp of when the entity was created. | |
| creator | any | false | Owner user details including id, username and email. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | UserData | false | User information embedded in API responses. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | Unique identifier of the entity. | |
| lastVersionNumber | integer | false | Last version number. | |
| name | string | true | Name of the entity. | |
| numArtifacts | integer | false | minimum: 0 |
Number of artifacts in this repository. |
| permissions | ResourcePermissions | false | User permissions for this artifact repository. | |
| tags | Tags | false | Tags for this repository. | |
| type | ArtifactType | false | Repository type (inherited from the first originating artifact). | |
| updatedAt | string(date-time) | true | Timestamp of when the entity was last updated. |
ArtifactRepositoryListResponse
{
"additionalProperties": false,
"properties": {
"count": {
"description": "The number of records on this page.",
"title": "Count",
"type": "integer"
},
"data": {
"description": "The list of records.",
"items": {
"additionalProperties": false,
"properties": {
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"lastVersionNumber": {
"default": 0,
"description": "Last version number.",
"title": "Lastversionnumber",
"type": "integer"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"numArtifacts": {
"default": 0,
"description": "Number of artifacts in this repository.",
"minimum": 0,
"title": "Numartifacts",
"type": "integer"
},
"permissions": {
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt"
],
"title": "ArtifactRepositoryFormatted",
"type": "object"
},
"title": "Data",
"type": "array"
},
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the next page, or `null` if there is no such page.",
"title": "Next"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the previous page, or `null` if there is no such page.",
"title": "Previous"
},
"totalCount": {
"description": "The total number of records.",
"title": "Totalcount",
"type": "integer"
}
},
"required": [
"totalCount",
"count",
"next",
"previous",
"data"
],
"title": "ArtifactRepositoryListResponse",
"type": "object"
}
ArtifactRepositoryListResponse
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | The number of records on this page. | |
| data | [ArtifactRepositoryFormatted] | true | The list of records. | |
| next | any | true | The url to the next page, or null if there is no such page. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| previous | any | true | The url to the previous page, or null if there is no such page. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| totalCount | integer | true | The total number of records. |
ArtifactSortQueryParams
{
"anyOf": [
{
"anyOf": [
{
"const": "name",
"description": "Sort by name in ascending order (A-Z)",
"title": "Name Ascending",
"type": "string"
},
{
"const": "-name",
"description": "Sort by name in descending order (Z-A)",
"title": "Name Descending",
"type": "string"
},
{
"const": "createdAt",
"description": "Sort by creation date in ascending order (oldest first)",
"title": "Creation Date Ascending",
"type": "string"
},
{
"const": "-createdAt",
"description": "Sort by creation date in descending order (newest first)",
"title": "Creation Date Descending",
"type": "string"
},
{
"const": "updatedAt",
"description": "Sort by update date in ascending order (oldest first)",
"title": "Update Date Ascending",
"type": "string"
},
{
"const": "-updatedAt",
"description": "Sort by update date in descending order (newest first)",
"title": "Update Date Descending",
"type": "string"
}
]
},
{
"const": "status",
"description": "Sort by status in ascending order (e.g., STOPPED before RUNNING)",
"title": "Status Ascending",
"type": "string"
},
{
"const": "-status",
"description": "Sort by status in descending order (e.g., RUNNING before STOPPED)",
"title": "Status Descending",
"type": "string"
}
]
}
Properties¶
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | CommonSortQueryParams | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | Sort by status in ascending order (e.g., STOPPED before RUNNING) |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | Sort by status in descending order (e.g., RUNNING before STOPPED) |
ArtifactStatus
{
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
}
ArtifactStatus
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ArtifactStatus | string | false | none |
Enumerated Values¶
| Property | Value |
|---|---|
| ArtifactStatus | [draft, locked] |
ArtifactType
{
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
}
ArtifactType
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ArtifactType | string | false | Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to service when omitted. - service: generic service artifact. - nim: nvidia nim model artifact. |
Enumerated Values¶
| Property | Value |
|---|---|
| ArtifactType | [service, nim] |
Capabilities
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
}
Capabilities
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| add | any | false | Capabilities to add. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | [string] | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| drop | any | false | Capabilities to drop. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | [string] | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
CodeRef
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
}
CodeRef
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| datarobot | DataRobotCodeRef | true | none | |
| provider | string | false | none | |
| type | string | false | none |
CommonSortQueryParams
{
"anyOf": [
{
"const": "name",
"description": "Sort by name in ascending order (A-Z)",
"title": "Name Ascending",
"type": "string"
},
{
"const": "-name",
"description": "Sort by name in descending order (Z-A)",
"title": "Name Descending",
"type": "string"
},
{
"const": "createdAt",
"description": "Sort by creation date in ascending order (oldest first)",
"title": "Creation Date Ascending",
"type": "string"
},
{
"const": "-createdAt",
"description": "Sort by creation date in descending order (newest first)",
"title": "Creation Date Descending",
"type": "string"
},
{
"const": "updatedAt",
"description": "Sort by update date in ascending order (oldest first)",
"title": "Update Date Ascending",
"type": "string"
},
{
"const": "-updatedAt",
"description": "Sort by update date in descending order (newest first)",
"title": "Update Date Descending",
"type": "string"
}
]
}
Properties¶
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | Sort by name in ascending order (A-Z) |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | Sort by name in descending order (Z-A) |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | Sort by creation date in ascending order (oldest first) |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | Sort by creation date in descending order (newest first) |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | Sort by update date in ascending order (oldest first) |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | Sort by update date in descending order (newest first) |
Container
{
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
}
Container
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| build | any | false | Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ContainerBuildInfo | false | Build reference embedded in a container spec when an image build is triggered. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string | false | Description of the container. | |
| entrypoint | any | false | Runtime entrypoint override for the container command. independent of build entrypoint. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | [string] | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| environmentVars | [anyOf] | false | Environment variables. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | StringEnvironmentVariable | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | CredentialEnvironmentVariable | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | DrApiTokenEnvironmentVariable | false | A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload workload <workloadid> API key scoped to the invoking user); no value or id is supplied by the user. |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| imageBuildConfig | any | false | Configuration for server-side image builds from source code. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ImageBuildConfig | false | User-provided configuration for server-side image builds from source code. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| imageUri | any | false | Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| livenessProbe | any | false | Container liveness check configuration. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProbeConfig | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | any | false | Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| port | any | false | Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | integer | false | maximum: 65535 minimum: 1024 |
none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| primary | any | false | Whether this is the primary container. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | boolean | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| readinessProbe | any | false | Container readiness check configuration. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProbeConfig | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| securityContext | any | false | Container security context. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | SecurityContext | false | Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| startupProbe | any | false | Container startup check configuration. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProbeConfig | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
ContainerBuildInfo
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
}
ContainerBuildInfo
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| artifactImageBuildId | string | true | Artifact image build id. | |
| createdAt | string(date-time) | true | Build creation timestamp (utc). | |
| status | string | true | Image build reported status at submit time. |
ContainerGroup
{
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
}
ContainerGroup
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| containers | [Container] | false | List of containers making this container group. | |
| name | string | false | Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters. |
CredentialEnvironmentVariable
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
}
CredentialEnvironmentVariable
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| drCredentialId | string | true | Id of the datarobot credential to use. | |
| key | string | true | Key within the credential. | |
| name | string | true | Name of the environment variable. | |
| source | string | true | none |
DataRobotCodeRef
{
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
}
DataRobotCodeRef
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| catalogId | string | true | none | |
| catalogVersionId | string | true | none |
DrApiTokenEnvironmentVariable
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
DrApiTokenEnvironmentVariable
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | Name of the environment variable. | |
| source | string | true | none |
GeneratedDockerfile
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
GeneratedDockerfile
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| entrypoint | [string] | true | minItems: 1 |
Entrypoint baked into the generated dockerfile cmd (e.g. ["python", "app.py"]). |
| executionEnvironmentId | string | true | Execution environment id used to resolve the base Docker image. | |
| executionEnvironmentVersionId | string | true | Execution environment version id that pins the exact base image tag. | |
| source | string | false | none |
GrantAccessControlWithId
{
"additionalProperties": false,
"description": "Grant access control request using id for recipient identification. can be used for users, groups, or organizations.",
"properties": {
"id": {
"description": "The id of the recipient.",
"title": "Id",
"type": "string"
},
"role": {
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
},
"shareRecipientType": {
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
}
},
"required": [
"shareRecipientType",
"role",
"id"
],
"title": "GrantAccessControlWithId",
"type": "object"
}
GrantAccessControlWithId
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | The id of the recipient. | |
| role | SharingRole | true | The role of the recipient on this entity. | |
| shareRecipientType | SubjectType | true | The type of the recipient. |
GrantAccessControlWithUsername
{
"additionalProperties": false,
"description": "Grant access control request using username for user identification.",
"properties": {
"role": {
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
},
"shareRecipientType": {
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
},
"username": {
"description": "Username of the user to update the access role for.",
"title": "Username",
"type": "string"
}
},
"required": [
"shareRecipientType",
"role",
"username"
],
"title": "GrantAccessControlWithUsername",
"type": "object"
}
GrantAccessControlWithUsername
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| role | SharingRole | true | The role of the recipient on this entity. | |
| shareRecipientType | SubjectType | true | The type of the recipient. | |
| username | string | true | Username of the user to update the access role for. |
HTTPValidationError
{
"properties": {
"detail": {
"items": {
"properties": {
"ctx": {
"title": "Context",
"type": "object"
},
"input": {
"title": "Input"
},
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"title": "Location",
"type": "array"
},
"msg": {
"title": "Message",
"type": "string"
},
"type": {
"title": "Error Type",
"type": "string"
}
},
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError",
"type": "object"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
HTTPValidationError
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| detail | [ValidationError] | false | none |
ImageBuildConfig
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
}
ImageBuildConfig
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| codeRef | any | false | Reference to source code (e.g. files API catalog). optional at create time; required before build or lock. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | CodeRef | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| dockerfile | any | false | How the dockerfile is obtained. defaults to using ./dockerfile from the source code. |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProvidedDockerfile | false | User supplies a dockerfile in the uploaded source code. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | GeneratedDockerfile | false | System generates a dockerfile from execution environment metadata. |
ImageBuildExternalStatus
{
"description": "Client-facing artifact image build status.",
"enum": [
"PENDING",
"IN_PROGRESS",
"BUILT",
"COMPLETED",
"CANCELLED",
"FAILED",
"UNKNOWN"
],
"title": "ImageBuildExternalStatus",
"type": "string"
}
ImageBuildExternalStatus
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ImageBuildExternalStatus | string | false | Client-facing artifact image build status. |
Enumerated Values¶
| Property | Value |
|---|---|
| ImageBuildExternalStatus | [PENDING, IN_PROGRESS, BUILT, COMPLETED, CANCELLED, FAILED, UNKNOWN] |
ImageBuildFormatted
{
"additionalProperties": false,
"description": "Build row formatted for get …/builds (same base fields as other `*formatted` API models).",
"properties": {
"artifactId": {
"description": "Parent artifact id.",
"title": "Artifact Id",
"type": "string"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"status": {
"description": "Client-facing artifact image build status.",
"enum": [
"PENDING",
"IN_PROGRESS",
"BUILT",
"COMPLETED",
"CANCELLED",
"FAILED",
"UNKNOWN"
],
"title": "ImageBuildExternalStatus",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"artifactId"
],
"title": "ImageBuildFormatted",
"type": "object"
}
ImageBuildFormatted
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| artifactId | string | true | Parent artifact id. | |
| createdAt | string(date-time) | true | Timestamp of when the entity was created. | |
| creator | any | false | Owner user details including id, username and email. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | UserData | false | User information embedded in API responses. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | Unique identifier of the entity. | |
| name | string | true | Name of the entity. | |
| status | ImageBuildExternalStatus | false | Reported build status. | |
| updatedAt | string(date-time) | true | Timestamp of when the entity was last updated. |
ImageBuildFormattedList
{
"additionalProperties": false,
"description": "Paginated list of formatted artifact image builds for get …/builds.",
"properties": {
"count": {
"description": "The number of records on this page.",
"title": "Count",
"type": "integer"
},
"data": {
"description": "The list of records.",
"items": {
"additionalProperties": false,
"description": "Build row formatted for get …/builds (same base fields as other `*formatted` API models).",
"properties": {
"artifactId": {
"description": "Parent artifact id.",
"title": "Artifact Id",
"type": "string"
},
"createdAt": {
"description": "Timestamp of when the entity was created.",
"format": "date-time",
"title": "Created At",
"type": "string"
},
"creator": {
"anyOf": [
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
},
{
"type": "null"
}
],
"description": "Owner user details including id, username and email.",
"title": "Creator"
},
"id": {
"description": "Unique identifier of the entity.",
"title": "ID",
"type": "string"
},
"name": {
"description": "Name of the entity.",
"title": "Name",
"type": "string"
},
"status": {
"description": "Client-facing artifact image build status.",
"enum": [
"PENDING",
"IN_PROGRESS",
"BUILT",
"COMPLETED",
"CANCELLED",
"FAILED",
"UNKNOWN"
],
"title": "ImageBuildExternalStatus",
"type": "string"
},
"updatedAt": {
"description": "Timestamp of when the entity was last updated.",
"format": "date-time",
"title": "Updated At",
"type": "string"
}
},
"required": [
"id",
"name",
"createdAt",
"updatedAt",
"artifactId"
],
"title": "ImageBuildFormatted",
"type": "object"
},
"title": "Data",
"type": "array"
},
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the next page, or `null` if there is no such page.",
"title": "Next"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the previous page, or `null` if there is no such page.",
"title": "Previous"
},
"totalCount": {
"description": "The total number of records.",
"title": "Totalcount",
"type": "integer"
}
},
"required": [
"totalCount",
"count",
"next",
"previous",
"data"
],
"title": "ImageBuildFormattedList",
"type": "object"
}
ImageBuildFormattedList
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | The number of records on this page. | |
| data | [ImageBuildFormatted] | true | The list of records. | |
| next | any | true | The url to the next page, or null if there is no such page. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| previous | any | true | The url to the previous page, or null if there is no such page. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| totalCount | integer | true | The total number of records. |
ImageBuildTriggerResponse
{
"additionalProperties": false,
"description": "Response after requesting image build(s) for a draft artifact.",
"properties": {
"buildIds": {
"description": "Workload API artifact image build document ids (same strings returned as `build_id` on get/delete build routes), one per distinct files API catalog/version pair. internal image build ids are not returned.",
"items": {
"type": "string"
},
"title": "Buildids",
"type": "array"
}
},
"required": [
"buildIds"
],
"title": "ImageBuildTriggerResponse",
"type": "object"
}
ImageBuildTriggerResponse
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| buildIds | [string] | true | Workload API artifact image build document ids (same strings returned as build_id on get/delete build routes), one per distinct files API catalog/version pair. internal image build ids are not returned. |
InputArtifact
{
"additionalProperties": false,
"description": "Request to create an artifact. an artifact is always created as a draft.",
"properties": {
"artifactRepositoryId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the artifact repository this artifact belongs to (for versioning support).",
"title": "Artifactrepositoryid"
},
"description": {
"default": "",
"description": "Description of the artifact.",
"title": "Description",
"type": "string"
},
"name": {
"description": "Name of the artifact.",
"maxLength": 5000,
"minLength": 1,
"title": "Name",
"type": "string"
},
"spec": {
"description": "Artifact specification.",
"discriminator": {
"mapping": {
"nim": "#/components/schemas/NimArtifactSpec",
"service": "#/components/schemas/ServiceArtifactSpec"
},
"propertyName": "type"
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
],
"title": "Spec"
},
"status": {
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
"type": {
"description": "Discriminator for the artifact spec variant. used to label the workload, which may be used to prioritize the best matching operator available in the cluster for scheduling. defaults to ``service`` when omitted. - ``service``: generic service artifact. - ``nim``: nvidia nim model artifact.",
"enum": [
"service",
"nim"
],
"title": "ArtifactType",
"type": "string"
}
},
"required": [
"name",
"spec"
],
"title": "InputArtifact",
"type": "object"
}
InputArtifact
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| artifactRepositoryId | any | false | Id of the artifact repository this artifact belongs to (for versioning support). |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string | false | Description of the artifact. | |
| name | string | true | maxLength: 5000 minLength: 1 minLength: 1 |
Name of the artifact. |
| spec | any | true | Artifact specification. |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ServiceArtifactSpec | false | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NimArtifactSpec | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | ArtifactStatus | false | Artifact status. | |
| type | ArtifactType | false | Artifact type. |
MultiContainerArtifactSpec
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
}
},
"title": "MultiContainerArtifactSpec",
"type": "object"
}
MultiContainerArtifactSpec
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| containerGroups | [ContainerGroup] | false | List of container groups. |
NimArtifactSpec
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"storage": {
"anyOf": [
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload."
},
"templateId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Id of the template used to create this nim artifact.",
"title": "Templateid"
},
"type": {
"const": "nim",
"default": "nim",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "NimArtifactSpec",
"type": "object"
}
NimArtifactSpec
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| containerGroups | [ContainerGroup] | false | List of container groups. | |
| storage | any | false | Model weight storage configuration. when omitted, defaults to a dedicated per-workload pvc provisioned exclusively for this workload. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | NimStorageConfig | false | Model weight storage configuration for nim artifacts. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| templateId | any | false | Id of the template used to create this nim artifact. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| type | string | false | Artifact type discriminator. injected automatically from the top-level type field — do not set this directly. |
NimStorageConfig
{
"additionalProperties": false,
"description": "Model weight storage configuration for nim artifacts.",
"properties": {
"mode": {
"default": "dedicatedPvc",
"description": "Storage mode for model weights. `dedicatedpvc` (default) provisions a separate pvc owned exclusively by this workload. `nimcache` reuses a single cluster-wide pvc per model image, shared across all workloads using the same model.",
"enum": [
"dedicatedPvc",
"nimCache"
],
"title": "Mode",
"type": "string"
},
"pvcSize": {
"anyOf": [
{
"pattern": "^\\d+(\\.\\d+)?(Gi|Mi|Ti)$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is `dedicatedpvc`. when omitted, the platform-configured default is used.",
"title": "Pvcsize"
}
},
"title": "NimStorageConfig",
"type": "object"
}
NimStorageConfig
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| mode | string | false | Storage mode for model weights. dedicatedpvc (default) provisions a separate pvc owned exclusively by this workload. nimcache reuses a single cluster-wide pvc per model image, shared across all workloads using the same model. |
|
| pvcSize | any | false | Pvc size for dedicated storage (e.g. '150gi'). only applies when mode is dedicatedpvc. when omitted, the platform-configured default is used. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
Enumerated Values¶
| Property | Value |
|---|---|
| mode | [dedicatedPvc, nimCache] |
ProbeConfig
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
}
ProbeConfig
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| failureThreshold | integer | false | Minimum consecutive failures for the probe to be considered failed. | |
| host | any | false | Host name to connect to, defaults to the pod ip. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| httpHeaders | object | false | HTTP headers for probe. | |
| » additionalProperties | string | false | none | |
| initialDelaySeconds | integer | false | Number of seconds to wait before the first probe is executed. | |
| path | string | true | Url path to query for health check. | |
| periodSeconds | integer | false | How often (in seconds) to perform the probe. | |
| port | integer | false | maximum: 65535 minimum: 1 |
Port number to access on the container. |
| scheme | string | false | Scheme to use for connecting to the host. | |
| timeoutSeconds | integer | false | Number of seconds after which the probe times out. |
Enumerated Values¶
| Property | Value |
|---|---|
| scheme | [HTTP, HTTPS] |
ProvidedDockerfile
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
}
ProvidedDockerfile
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| path | string | false | Relative path to the dockerfile in the source code. defaults to ./dockerfile. | |
| source | string | false | none |
ResourcePermission
{
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
}
ResourcePermission
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ResourcePermission | string | false | Represents the particular role a user, group or organization holds on an entity. |
Enumerated Values¶
| Property | Value |
|---|---|
| ResourcePermission | [CAN_VIEW, CAN_UPDATE, CAN_DELETE, CAN_SHARE, CAN_MAKE_PREDICTIONS, CAN_SHARE_ROLE_OWNER, CAN_SHARE_ROLE_READ_WRITE, CAN_SHARE_ROLE_READ_ONLY] |
ResourcePermissions
{
"anyOf": [
{
"items": {
"description": "Represents the particular role a user, group or organization holds on an entity.",
"enum": [
"CAN_VIEW",
"CAN_UPDATE",
"CAN_DELETE",
"CAN_SHARE",
"CAN_MAKE_PREDICTIONS",
"CAN_SHARE_ROLE_OWNER",
"CAN_SHARE_ROLE_READ_WRITE",
"CAN_SHARE_ROLE_READ_ONLY"
],
"title": "ResourcePermission",
"type": "string"
},
"type": "array"
},
{
"items": {
"const": "*",
"type": "string"
},
"type": "array"
}
]
}
Properties¶
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [ResourcePermission] | false | [Represents the particular role a user, group or organization holds on an entity.] |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [ANY_PERMISSION] | false | none |
SeccompProfile
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
}
SeccompProfile
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| localhostProfile | any | false | Path to a seccomp profile on the node. only valid when type is localhost. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| type | SeccompProfileType | true | Seccomp profile type. |
SeccompProfileType
{
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
SeccompProfileType
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| SeccompProfileType | string | false | Allowed seccomp profile types. |
Enumerated Values¶
| Property | Value |
|---|---|
| SeccompProfileType | [RuntimeDefault, Unconfined, Localhost] |
SecurityContext
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
}
SecurityContext
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| allowPrivilegeEscalation | any | false | Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | boolean | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| capabilities | any | false | Linux capabilities to add or drop. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | Capabilities | false | Linux capabilities to add or drop from the container. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| readOnlyRootFilesystem | any | false | Whether the root filesystem is read-only. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | boolean | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| seccompProfile | any | false | Seccomp profile for the container. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | SeccompProfile | false | Seccomp profile configuration. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
ServiceArtifactSpec
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
},
"type": {
"const": "service",
"default": "service",
"description": "Artifact type discriminator. injected automatically from the top-level `type` field — do not set this directly.",
"title": "Type",
"type": "string"
}
},
"title": "ServiceArtifactSpec",
"type": "object"
}
ServiceArtifactSpec
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| containerGroups | [ContainerGroup] | false | List of container groups. | |
| type | string | false | Artifact type discriminator. injected automatically from the top-level type field — do not set this directly. |
SharedRole
{
"additionalProperties": false,
"description": "Represents a recipient (user, group, or organization) with access to an entity. this model is used for listing and managing access control on shared resources, providing information about who has access and what role they have.",
"properties": {
"id": {
"description": "The identifier of the recipient.",
"title": "Id",
"type": "string"
},
"name": {
"description": "The name of the recipient.",
"title": "Name",
"type": "string"
},
"role": {
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
},
"shareRecipientType": {
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
}
},
"required": [
"id",
"name",
"shareRecipientType",
"role"
],
"title": "SharedRole",
"type": "object"
}
SharedRole
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | The identifier of the recipient. | |
| name | string | true | The name of the recipient. | |
| role | SharingRole | true | The role of the recipient on this entity. | |
| shareRecipientType | SubjectType | true | The type of the recipient. |
SharedRoleListResponse
{
"additionalProperties": false,
"properties": {
"count": {
"description": "The number of records on this page.",
"title": "Count",
"type": "integer"
},
"data": {
"description": "The list of records.",
"items": {
"additionalProperties": false,
"description": "Represents a recipient (user, group, or organization) with access to an entity. this model is used for listing and managing access control on shared resources, providing information about who has access and what role they have.",
"properties": {
"id": {
"description": "The identifier of the recipient.",
"title": "Id",
"type": "string"
},
"name": {
"description": "The name of the recipient.",
"title": "Name",
"type": "string"
},
"role": {
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
},
"shareRecipientType": {
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
}
},
"required": [
"id",
"name",
"shareRecipientType",
"role"
],
"title": "SharedRole",
"type": "object"
},
"title": "Data",
"type": "array"
},
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the next page, or `null` if there is no such page.",
"title": "Next"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The url to the previous page, or `null` if there is no such page.",
"title": "Previous"
},
"totalCount": {
"description": "The total number of records.",
"title": "Totalcount",
"type": "integer"
}
},
"required": [
"totalCount",
"count",
"next",
"previous",
"data"
],
"title": "SharedRoleListResponse",
"type": "object"
}
SharedRoleListResponse
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | The number of records on this page. | |
| data | [SharedRole] | true | The list of records. | |
| next | any | true | The url to the next page, or null if there is no such page. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| previous | any | true | The url to the previous page, or null if there is no such page. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| totalCount | integer | true | The total number of records. |
SharedRolesUpdateRequest
{
"additionalProperties": false,
"description": "Request model for updating shared roles on an entity. used to grant access, remove access, or update roles for organizations, groups, or users. up to 100 roles may be set in a single request.",
"properties": {
"operation": {
"const": "updateRoles",
"description": "Name of the action being taken. the only operation is 'updateroles'.",
"title": "Operation",
"type": "string"
},
"roles": {
"description": "Array of grantaccesscontrol objects, up to maximum 100 objects.",
"items": {
"anyOf": [
{
"additionalProperties": false,
"description": "Grant access control request using username for user identification.",
"properties": {
"role": {
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
},
"shareRecipientType": {
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
},
"username": {
"description": "Username of the user to update the access role for.",
"title": "Username",
"type": "string"
}
},
"required": [
"shareRecipientType",
"role",
"username"
],
"title": "GrantAccessControlWithUsername",
"type": "object"
},
{
"additionalProperties": false,
"description": "Grant access control request using id for recipient identification. can be used for users, groups, or organizations.",
"properties": {
"id": {
"description": "The id of the recipient.",
"title": "Id",
"type": "string"
},
"role": {
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
},
"shareRecipientType": {
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
}
},
"required": [
"shareRecipientType",
"role",
"id"
],
"title": "GrantAccessControlWithId",
"type": "object"
}
]
},
"maxItems": 100,
"minItems": 1,
"title": "Roles",
"type": "array"
}
},
"required": [
"operation",
"roles"
],
"title": "SharedRolesUpdateRequest",
"type": "object"
}
SharedRolesUpdateRequest
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| operation | string | true | Name of the action being taken. the only operation is 'updateroles'. | |
| roles | [anyOf] | true | maxItems: 100 minItems: 1 |
Array of grantaccesscontrol objects, up to maximum 100 objects. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | GrantAccessControlWithUsername | false | Grant access control request using username for user identification. |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | GrantAccessControlWithId | false | Grant access control request using id for recipient identification. can be used for users, groups, or organizations. |
SharingRole
{
"description": "External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis.",
"enum": [
"NO_ROLE",
"OWNER",
"READ_WRITE",
"EDITOR",
"USER",
"DATA_SCIENTIST",
"ADMIN",
"READ_ONLY",
"CONSUMER",
"OBSERVER"
],
"title": "SharingRole",
"type": "string"
}
SharingRole
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| SharingRole | string | false | External sharing roles representing the permission level a user, group or organization holds on an entity. these roles map to internal permissions and are used in sharing apis. |
Enumerated Values¶
| Property | Value |
|---|---|
| SharingRole | [NO_ROLE, OWNER, READ_WRITE, EDITOR, USER, DATA_SCIENTIST, ADMIN, READ_ONLY, CONSUMER, OBSERVER] |
StringEnvironmentVariable
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
}
StringEnvironmentVariable
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | Name of the environment variable. | |
| source | string | false | none | |
| value | string | true | Value of the environment variable. |
SubjectType
{
"description": "Enum of possible subject types.",
"enum": [
"user",
"group",
"organization",
"role"
],
"title": "SubjectType",
"type": "string"
}
SubjectType
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| SubjectType | string | false | Enum of possible subject types. |
Enumerated Values¶
| Property | Value |
|---|---|
| SubjectType | [user, group, organization, role] |
TagInfo
{
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
}
TagInfo
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | Unique identifier of the tag. | |
| name | string | true | Name of the tag. | |
| value | string | true | Value of the tag. |
Tags
{
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Unique identifier of the tag.",
"title": "Id",
"type": "string"
},
"name": {
"description": "Name of the tag.",
"title": "Name",
"type": "string"
},
"value": {
"description": "Value of the tag.",
"title": "Value",
"type": "string"
}
},
"required": [
"id",
"name",
"value"
],
"title": "TagInfo",
"type": "object"
},
"type": "array"
}
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [TagInfo] | false | none |
UpdateArtifactRequest
{
"additionalProperties": false,
"description": "Request to update an artifact. when updating an artifact, the user_id and tenant_id cannot be changed. currently transferring of ownership of an artifact is not supported.",
"properties": {
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Description of the artifact.",
"title": "Description"
},
"name": {
"anyOf": [
{
"maxLength": 5000,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the artifact.",
"title": "Name"
},
"spec": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"containerGroups": {
"default": [],
"description": "List of container groups.",
"items": {
"additionalProperties": false,
"properties": {
"containers": {
"default": [],
"description": "List of containers making this container group.",
"items": {
"additionalProperties": false,
"properties": {
"build": {
"anyOf": [
{
"additionalProperties": false,
"description": "Build reference embedded in a container spec when an image build is triggered.",
"properties": {
"artifactImageBuildId": {
"description": "Artifact image build id.",
"title": "Artifactimagebuildid",
"type": "string"
},
"createdAt": {
"description": "Build creation timestamp (utc).",
"format": "date-time",
"title": "Createdat",
"type": "string"
},
"status": {
"description": "Image build reported status at submit time.",
"title": "Status",
"type": "string"
}
},
"required": [
"artifactImageBuildId",
"status",
"createdAt"
],
"title": "ContainerBuildInfo",
"type": "object"
},
{
"type": "null"
}
],
"description": "Server-set image build metadata (e.g. after lock or draft build trigger). workload API clears this on artifact create/update before persistence; clients must not rely on sending it."
},
"description": {
"default": "",
"description": "Description of the container.",
"title": "Description",
"type": "string"
},
"entrypoint": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Runtime entrypoint override for the container command. independent of build entrypoint.",
"title": "Entrypoint"
},
"environmentVars": {
"default": [],
"description": "Environment variables.",
"items": {
"anyOf": [
{
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "string",
"default": "string",
"title": "Source",
"type": "string"
},
"value": {
"description": "Value of the environment variable.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "StringEnvironmentVariable",
"type": "object"
},
{
"properties": {
"drCredentialId": {
"description": "Id of the datarobot credential to use.",
"title": "DR Credential ID",
"type": "string"
},
"key": {
"description": "Key within the credential.",
"title": "Key",
"type": "string"
},
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-credential",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name",
"drCredentialId",
"key"
],
"title": "CredentialEnvironmentVariable",
"type": "object"
},
{
"description": "A platform-managed datarobot API token injected as an environment variable. the token value is resolved at proton creation (find-or-create a per-workload ``workload <workloadid>`` API key scoped to the invoking user); no value or id is supplied by the user.",
"properties": {
"name": {
"description": "Name of the environment variable.",
"title": "Name",
"type": "string"
},
"source": {
"const": "dr-api-token",
"title": "Source",
"type": "string"
}
},
"required": [
"source",
"name"
],
"title": "DrApiTokenEnvironmentVariable",
"type": "object"
}
]
},
"title": "Environmentvars",
"type": "array"
},
"imageBuildConfig": {
"anyOf": [
{
"additionalProperties": false,
"description": "User-provided configuration for server-side image builds from source code.",
"properties": {
"codeRef": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"datarobot": {
"additionalProperties": false,
"properties": {
"catalogId": {
"title": "Catalogid",
"type": "string"
},
"catalogVersionId": {
"title": "Catalogversionid",
"type": "string"
}
},
"required": [
"catalogId",
"catalogVersionId"
],
"title": "DataRobotCodeRef",
"type": "object"
},
"provider": {
"const": "datarobot",
"default": "datarobot",
"title": "Provider",
"type": "string"
},
"type": {
"const": "datarobot",
"default": "datarobot",
"title": "Type",
"type": "string"
}
},
"required": [
"datarobot"
],
"title": "CodeRef",
"type": "object"
},
{
"type": "null"
}
],
"description": "Reference to source code (e.g. files API catalog). optional at create time; required before build or lock."
},
"dockerfile": {
"description": "How the dockerfile is obtained. defaults to using ./dockerfile from the source code.",
"discriminator": {
"mapping": {
"generated": "#/components/schemas/GeneratedDockerfile",
"provided": "#/components/schemas/ProvidedDockerfile"
},
"propertyName": "source"
},
"oneOf": [
{
"additionalProperties": false,
"description": "User supplies a dockerfile in the uploaded source code.",
"properties": {
"path": {
"default": "./Dockerfile",
"description": "Relative path to the dockerfile in the source code. defaults to ./dockerfile.",
"title": "Path",
"type": "string"
},
"source": {
"const": "provided",
"default": "provided",
"title": "Source",
"type": "string"
}
},
"title": "ProvidedDockerfile",
"type": "object"
},
{
"additionalProperties": false,
"description": "System generates a dockerfile from execution environment metadata.",
"properties": {
"entrypoint": {
"description": "Entrypoint baked into the generated dockerfile cmd (e.g. [\"python\", \"app.py\"]).",
"items": {
"type": "string"
},
"minItems": 1,
"title": "Entrypoint",
"type": "array"
},
"executionEnvironmentId": {
"description": "Execution environment id used to resolve the base Docker image.",
"title": "Execution Environment ID",
"type": "string"
},
"executionEnvironmentVersionId": {
"description": "Execution environment version id that pins the exact base image tag.",
"title": "Execution Environment Version ID",
"type": "string"
},
"source": {
"const": "generated",
"default": "generated",
"title": "Source",
"type": "string"
}
},
"required": [
"executionEnvironmentId",
"executionEnvironmentVersionId",
"entrypoint"
],
"title": "GeneratedDockerfile",
"type": "object"
}
],
"title": "Dockerfile"
}
},
"title": "ImageBuildConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Configuration for server-side image builds from source code."
},
"imageUri": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Docker image uri. required when imagebuildconfig is not set; server-populated after a successful image build.",
"title": "Imageuri"
},
"livenessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container liveness check configuration."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the container. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name"
},
"port": {
"anyOf": [
{
"maximum": 65535,
"minimum": 1024,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Container access port. when set, must be >= 1024 for security and platform compatibility reasons. primary containers must define a port; non-primary containers must omit it.",
"title": "Port"
},
"primary": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Whether this is the primary container.",
"title": "Primary"
},
"readinessProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container readiness check configuration."
},
"securityContext": {
"anyOf": [
{
"additionalProperties": false,
"description": "Container-level security context. lets workload creators tighten security constraints beyond the platform defaults. runasnonroot and runasuser are enforced by the platform and are not user-settable. elevated fields (capabilities.add, allowprivilegeescalation=true, seccompprofile.type=unconfined) require the mlops admin role; regular users may only tighten defaults — drop capabilities, enable read-only rootfs, or set a runtimedefault/localhost seccomp profile.",
"properties": {
"allowPrivilegeEscalation": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether a process can gain more privileges than its parent. requires the mlops admin role to set to true.",
"title": "Allowprivilegeescalation"
},
"capabilities": {
"anyOf": [
{
"additionalProperties": false,
"description": "Linux capabilities to add or drop from the container.",
"properties": {
"add": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to add.",
"title": "Add"
},
"drop": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Capabilities to drop.",
"title": "Drop"
}
},
"title": "Capabilities",
"type": "object"
},
{
"type": "null"
}
],
"description": "Linux capabilities to add or drop."
},
"readOnlyRootFilesystem": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Whether the root filesystem is read-only.",
"title": "Readonlyrootfilesystem"
},
"seccompProfile": {
"anyOf": [
{
"additionalProperties": false,
"description": "Seccomp profile configuration.",
"properties": {
"localhostProfile": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to a seccomp profile on the node. only valid when type is localhost.",
"title": "Localhostprofile"
},
"type": {
"description": "Allowed seccomp profile types.",
"enum": [
"RuntimeDefault",
"Unconfined",
"Localhost"
],
"title": "SeccompProfileType",
"type": "string"
}
},
"required": [
"type"
],
"title": "SeccompProfile",
"type": "object"
},
{
"type": "null"
}
],
"description": "Seccomp profile for the container."
}
},
"title": "SecurityContext",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container security context."
},
"startupProbe": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"failureThreshold": {
"default": 3,
"description": "Minimum consecutive failures for the probe to be considered failed.",
"title": "Failurethreshold",
"type": "integer"
},
"host": {
"anyOf": [
{
"minLength": 0,
"type": "string"
},
{
"type": "null"
}
],
"description": "Host name to connect to, defaults to the pod ip.",
"title": "Host"
},
"httpHeaders": {
"additionalProperties": {
"type": "string"
},
"description": "HTTP headers for probe.",
"title": "Httpheaders",
"type": "object"
},
"initialDelaySeconds": {
"default": 30,
"description": "Number of seconds to wait before the first probe is executed.",
"title": "Initialdelayseconds",
"type": "integer"
},
"path": {
"description": "Url path to query for health check.",
"title": "Path",
"type": "string"
},
"periodSeconds": {
"default": 30,
"description": "How often (in seconds) to perform the probe.",
"title": "Periodseconds",
"type": "integer"
},
"port": {
"default": 8080,
"description": "Port number to access on the container.",
"maximum": 65535,
"minimum": 1,
"title": "Port",
"type": "integer"
},
"scheme": {
"default": "HTTP",
"description": "Scheme to use for connecting to the host.",
"enum": [
"HTTP",
"HTTPS"
],
"title": "Scheme",
"type": "string"
},
"timeoutSeconds": {
"default": 30,
"description": "Number of seconds after which the probe times out.",
"title": "Timeoutseconds",
"type": "integer"
}
},
"required": [
"path"
],
"title": "ProbeConfig",
"type": "object"
},
{
"type": "null"
}
],
"description": "Container startup check configuration."
}
},
"title": "Container",
"type": "object"
},
"title": "Containers",
"type": "array"
},
"name": {
"default": "default",
"description": "Name of the container group. used as the lookup key for runtime overrides. lowercase letters, digits, and hyphens only; must start with a lowercase letter and end with a letter or digit; max 63 characters.",
"title": "Name",
"type": "string"
}
},
"title": "ContainerGroup",
"type": "object"
},
"title": "Containergroups",
"type": "array"
}
},
"title": "MultiContainerArtifactSpec",
"type": "object"
},
{
"type": "null"
}
],
"description": "Artifact specification."
},
"status": {
"anyOf": [
{
"enum": [
"draft",
"locked"
],
"title": "ArtifactStatus",
"type": "string"
},
{
"type": "null"
}
],
"description": "Artifact status."
}
},
"title": "UpdateArtifactRequest",
"type": "object"
}
UpdateArtifactRequest
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | any | false | Description of the artifact. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | any | false | Name of the artifact. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | maxLength: 5000 minLength: 1 minLength: 1 |
none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| spec | any | false | Artifact specification. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | MultiContainerArtifactSpec | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | any | false | Artifact status. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ArtifactStatus | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
UserData
{
"additionalProperties": false,
"description": "User information embedded in API responses.",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User email address.",
"title": "Email"
},
"fullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's full name.",
"title": "Full Name"
},
"id": {
"description": "User id associated with this resource.",
"title": "User ID",
"type": "string"
},
"userhash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "User's gravatar hash.",
"title": "Userhash"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Username.",
"title": "Username"
}
},
"required": [
"id"
],
"title": "UserData",
"type": "object"
}
UserData
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| any | false | User email address. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| fullName | any | false | User's full name. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | User id associated with this resource. | |
| userhash | any | false | User's gravatar hash. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| username | any | false | Username. |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none |
ValidationError
{
"properties": {
"ctx": {
"title": "Context",
"type": "object"
},
"input": {
"title": "Input"
},
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"title": "Location",
"type": "array"
},
"msg": {
"title": "Message",
"type": "string"
},
"type": {
"title": "Error Type",
"type": "string"
}
},
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError",
"type": "object"
}
ValidationError
Properties¶
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| ctx | object | false | none | |
| input | any | false | none | |
| loc | [anyOf] | true | none |
anyOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | string | false | none |
or
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | integer | false | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| msg | string | true | none | |
| type | string | true | none |