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.