Skip to main content

models

Pydantic models for Datalayer API endpoints.

This module contains Pydantic models for all request bodies and responses from the IAM and Runtimes APIs. Uses Pydantic v2 syntax.

class BaseResponse(*, success: bool, message: str) -> None

Base response model for all API endpoints.

class RuntimeType(*values)

Runtime type enumeration.

class ProviderType(*values)

OAuth provider type enumeration.

class SecretVariant(*values)

Secret variant enumeration.

class TokenVariant(*values)

Token variant enumeration.

class RuntimeSnapshotStatus(*values)

Runtime snapshot status enumeration.

class User(*, uid: str, email: str, firstName: str, lastName: str, handle: str, avatar: Optional[str] = None, created_at: Optional[datetime.datetime] = None, updated_at: Optional[datetime.datetime] = None, verified: Optional[bool] = None) -> None

User model.

class Organization(*, uid: str, handle: str, name: str, description: Optional[str] = None, avatar: Optional[str] = None, created_at: Optional[datetime.datetime] = None, updated_at: Optional[datetime.datetime] = None, members: Optional[List[str]] = None) -> None

Organization model.

class Team(*, uid: str, handle: str, name: str, description: Optional[str] = None, organization_uid: str, created_at: Optional[datetime.datetime] = None, updated_at: Optional[datetime.datetime] = None, members: Optional[List[str]] = None) -> None

Team model.

class Secret(*, uid: str, name_s: str, description_t: Optional[str] = None, variant_s: datalayer_core.models.SecretVariant, account_uid: str, created_at: Optional[datetime.datetime] = None, updated_at: Optional[datetime.datetime] = None) -> None

Secret model.

class Token(*, uid: str, name_s: str, description_t: Optional[str] = None, variant_s: datalayer_core.models.TokenVariant, account_uid: str, expires_at: Optional[datetime.datetime] = None, created_at: Optional[datetime.datetime] = None, updated_at: Optional[datetime.datetime] = None) -> None

Token model.

class Datasource(*, uid: str, name: str, variant: str, database: Optional[str] = None, account_uid: str, created_at: Optional[datetime.datetime] = None, updated_at: Optional[datetime.datetime] = None) -> None

Datasource model.

class Credits(*, credits: float, quota: float, last_update: datetime.datetime) -> None

Credits model.

class Reservation(*, id: str, account_uid: Optional[str] = None, credits: float, resource: str, resource_type: str, last_update: datetime.datetime, burning_rate: Annotated[float, Ge(ge=0)], start_date: datetime.datetime) -> None

Reservation model.

class Usage(*, account_uid: str, resource_uid: str, resource_type: str, resource_given_name: str, start_date: datetime.datetime, end_date: Optional[datetime.datetime] = None, updated_at: datetime.datetime, pod_resources: Optional[Dict[str, Any]] = None, burning_rate: Annotated[float, Ge(ge=0)], credits_limit: Annotated[float, Ge(ge=0)], credits: Optional[float] = None, metadata: Optional[Dict[str, Any]] = None) -> None

Usage model.

class OrganizationMember(*, id: str, uid: str, type_s: str, handle_s: str, first_name_t: str, last_name_t: str, email_s: str, roles_ss: List[str]) -> None

Organization member model.

class TeamMember(*, id: str, uid: str, type_s: str, handle_s: str, first_name_t: str, last_name_t: str, email_s: str, roles_ss: List[str]) -> None

Team member model.

class CheckoutPortal(*, url: str, route: str, is_modal: bool = False, metadata: Dict[str, Any]) -> None

Checkout portal model.

class Resources(*, cpu: str, memory: str, nvidia_com_gpu: Optional[str] = None) -> None

Resource specifications model.

class ResourcesRanges(*, requests: Optional[datalayer_core.models.Resources] = None, limits: datalayer_core.models.Resources) -> None

Resource ranges model.

class Content(*, name: str, mount: str) -> None

Content model for runtime content.

class Environment(*, name: str, title: str, description: Optional[str] = None, dockerImage: str, language: str, burning_rate: Annotated[float, Ge(ge=0)], resources: datalayer_core.models.Resources, resourcesRanges: Optional[datalayer_core.models.ResourcesRanges] = None, owner: Optional[str] = None, visibility: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> None

Environment model.

class Runtime(*, uid: str, burning_rate: Annotated[float, Ge(ge=0)], type: datalayer_core.models.RuntimeType, environment_name: str, pod_name: str, token: str, ingress: str, given_name: Optional[str] = None, reservation_id: Optional[str] = None, started_at: Optional[datetime.datetime] = None, expired_at: Optional[datetime.datetime] = None, capabilities: Optional[List[str]] = None, credits_limit: Annotated[Optional[float], Ge(ge=0)] = None, metadata: Optional[Dict[str, Any]] = None) -> None

Runtime model.

class RuntimeSnapshot(*, uid: str, name: str, description: Optional[str] = None, environment: str, metadata: Optional[Dict[str, Any]] = None, size: Annotated[Optional[float], Ge(ge=0)] = None, updated_at: Optional[datetime.datetime] = None, format: Optional[str] = None, status: Optional[datalayer_core.models.RuntimeSnapshotStatus] = None) -> None

Runtime snapshot model.

class LoginRequest(*, token: Optional[str] = None, handle: Optional[str] = None, password: Optional[str] = None) -> None

Login request model.

validate_token_or_credentials(v: Optional[str], info: Any) -> Optional[str]

Validate that either token or handle+password is provided.

Parameters

  • v : Optional[str]

    The token value to validate.

  • info : Any

    Pydantic validation info object containing field data.

Returns

  • Optional[str]

    The validated token value.

Raises

  • ValueError

    If neither token nor handle+password combination is provided.

class UserRegistrationRequest(*, handle: str, email: str, firstName: str, lastName: str, password: Annotated[str, MinLen(min_length=8)]) -> None

User registration request model.

class UserForm(*, handle: str, email: str, firstName: str, lastName: str, password: str, passwordConfirm: str) -> None

User form model for registration/signup.

class CheckoutPortalRequest(*, return_url: str) -> None

Checkout portal request model.

class OrganizationCreateRequest(*, handle: str, name: str, description: Optional[str] = None) -> None

Organization creation request model.

class TeamCreateRequest(*, handle: str, name: str, description: Optional[str] = None, organization_uid: str) -> None

Team creation request model.

class SecretCreateRequest(*, name: str, description: Optional[str] = None, value: str, secret_type: datalayer_core.models.SecretVariant = <SecretVariant.generic: 'generic'>) -> None

Secret creation request model.

class TokenCreateRequest(*, name: str, description: str, expires: Annotated[Optional[int], Gt(gt=0)] = None) -> None

Token creation request model.

class RuntimeCreateRequest(*, environment_name: str, type: datalayer_core.models.RuntimeType = <RuntimeType.notebook: 'notebook'>, given_name: Optional[str] = None, credits_limit: Annotated[float, Ge(ge=0)], capabilities: Optional[List[str]] = None, from_snapshot_uid: Optional[str] = None) -> None

Runtime creation request model.

class RuntimeSnapshotCreateRequest(*, pod_name: str, name: str, description: Optional[str] = None, stop: bool = True) -> None

Runtime snapshot creation request model.

class LoginResponse(*, success: bool, message: str, user: Optional[datalayer_core.models.User] = None, token: Optional[str] = None) -> None

Login response model.

class UserResponse(*, success: bool, message: str, user: Optional[datalayer_core.models.User] = None) -> None

User response model.

class UsersResponse(*, success: bool, message: str, users: List[datalayer_core.models.User] = <factory>) -> None

Users list response model.

class OrganizationResponse(*, success: bool, message: str, organization: Optional[datalayer_core.models.Organization] = None) -> None

Organization response model.

class OrganizationsResponse(*, success: bool, message: str, organizations: List[datalayer_core.models.Organization] = <factory>) -> None

Organizations list response model.

class TeamResponse(*, success: bool, message: str, team: Optional[datalayer_core.models.Team] = None) -> None

Team response model.

class TeamsResponse(*, success: bool, message: str, teams: List[datalayer_core.models.Team] = <factory>) -> None

Teams list response model.

class SecretResponse(*, success: bool, message: str, secret: Optional[datalayer_core.models.Secret] = None) -> None

Secret response model.

class SecretsResponse(*, success: bool, message: str, secrets: List[datalayer_core.models.Secret] = <factory>) -> None

Secrets list response model.

class TokenResponse(*, success: bool, message: str, token: Optional[datalayer_core.models.Token] = None, access_token: Optional[str] = None) -> None

Token response model.

class TokensResponse(*, success: bool, message: str, tokens: List[datalayer_core.models.Token] = <factory>) -> None

Tokens list response model.

class CreditsResponse(*, success: bool, message: str, credits: Optional[datalayer_core.models.Credits] = None) -> None

Credits response model.

class ReservationsResponse(*, success: bool, message: str, reservations: List[datalayer_core.models.Reservation] = <factory>) -> None

Reservations list response model.

class UsageResponse(*, success: bool, message: str, usage: List[datalayer_core.models.Usage] = <factory>) -> None

Usage list response model.

class EnvironmentsResponse(*, success: bool, message: str, environments: List[datalayer_core.models.Environment] = <factory>) -> None

Environments list response model.

class RuntimeResponse(*, success: bool, message: str, runtime: Optional[datalayer_core.models.Runtime] = None) -> None

Runtime response model.

class RuntimesResponse(*, success: bool, message: str, runtimes: List[datalayer_core.models.Runtime] = <factory>) -> None

Runtimes list response model.

class RuntimeSnapshotResponse(*, success: bool, message: str, snapshot: Optional[datalayer_core.models.RuntimeSnapshot] = None) -> None

Runtime snapshot response model.

class RuntimeSnapshotsResponse(*, success: bool, message: str, snapshots: List[datalayer_core.models.RuntimeSnapshot] = <factory>) -> None

Runtime snapshots list response model.

class OrganizationMemberResponse(*, success: bool, message: str, member: Optional[datalayer_core.models.OrganizationMember] = None) -> None

Organization member response model.

class OrganizationMembersResponse(*, success: bool, message: str, members: List[datalayer_core.models.OrganizationMember] = <factory>) -> None

Organization members list response model.

class TeamMemberResponse(*, success: bool, message: str, member: Optional[datalayer_core.models.TeamMember] = None) -> None

Team member response model.

class TeamMembersResponse(*, success: bool, message: str, members: List[datalayer_core.models.TeamMember] = <factory>) -> None

Team members list response model.

class CheckoutPortalResponse(*, success: bool, message: str, portal: Optional[datalayer_core.models.CheckoutPortal] = None) -> None

Checkout portal response model.

class UserFormResponse(*, success: bool, message: str, user: Optional[datalayer_core.models.User] = None) -> None

User form response model.