Skip to main content

iam

Pydantic models for IAM (Identity and Access Management) service.

class LoginRequest(*, handle: str | None = None, password: str | None = None, token: str | None = None) -> None

Login request model.

class ProxyRequest(*, request_method: str, request_url: str, request_token: str, request_body: Dict[str, Any] | None = None) -> None

Proxy request model.

class JoinRequest(*, handle: str, email: pydantic.networks.EmailStr, firstName: str, lastName: str, password: str, passwordConfirm: str) -> None

Request to join platform.

class JoinWithInviteRequest(*, invite_token: str, handle: str, email: pydantic.networks.EmailStr, firstName: str, lastName: str, password: str, passwordConfirm: str) -> None

Join with invite token request.

class PasswordResetRequest(*, handle: str, password: str, passwordConfirm: str) -> None

Password reset request model.

class PasswordResetConfirm(*, new_password: str, confirm_password: str) -> None

Password reset confirmation model.

class EmailUpdateRequest(*, new_email: pydantic.networks.EmailStr) -> None

Email update request model.

class EmailUpdateConfirm(*, confirmation_token: str) -> None

Email update confirmation model.

class UserModel(*, id: str, uid: str, handle_s: str, email_s: pydantic.networks.EmailStr | None = None, first_name_t: str, last_name_t: str, type_s: str, origin_s: str | None = None, creation_ts_dt: str | datetime.datetime | None = None, join_request_ts_dt: str | datetime.datetime | None = None, join_ts_dt: str | datetime.datetime | None = None, last_update_ts_dt: str | datetime.datetime | None = None, roles_ss: List[str] | None = <factory>, avatar_url_s: str | None = None, linked_contact_uid: str | None = None, onboarding_s: str | None = None, mfa_secret_s: str | None = None, mfa_url_s: str | None = None, unsubscribed_from_outbounds_b: bool | None = None, email_token_s: str | None = None, email_update_s: str | None = None, events: List[Dict[str, Any]] | None = None, settings: Dict[str, Any] | None = None) -> None

User data model that combines IAM user information with profile functionality.

handle

Get user handle for profile compatibility.

Returns

  • str

    The user's handle.

email

Get user email for profile compatibility.

Returns

  • Optional[str]

    The user's email address or None if not set.

first_name

Get user first name for profile compatibility.

Returns

  • str

    The user's first name.

last_name

Get user last name for profile compatibility.

Returns

  • str

    The user's last name.

display_name

Get display name (defaults to handle).

Returns

  • str

    The user's display name.

roles

Get user roles for profile compatibility.

Returns

  • List[str]

    List of user roles.

from_data(data: Dict[str, Any]) -> 'UserModel'

Create a UserData instance from raw data dictionary.

Parameters

  • data : Dict[str, Any]

    Raw data dictionary containing user information.

Returns

  • UserModel

    A UserModel instance created from the provided data.

class ProfileRequest(*, firstName: str | None = None, lastName: str | None = None, display_name: str | None = None) -> None

User profile update model.

class UserOnboardingModel(*, completed_steps: List[str] = <factory>, current_step: str | None = None, metadata: Dict[str, Any] | None = <factory>) -> None

User onboarding data model.

class UserSettingsModel(*, preferences: Dict[str, Any] | None = <factory>, notifications: Dict[str, bool] | None = <factory>, theme: str | None = None) -> None

User settings model.

class UserSearchRequest(*, namingPattern: str | None = None, email: pydantic.networks.EmailStr | None = None, handle: str | None = None, roles: List[str] | None = None, limit: Annotated[int, Ge(ge=1), Le(le=100)] = 10, offset: Annotated[int, Ge(ge=0)] = 0) -> None

User search request model.

class OrganizationMember(*, id: str, uid: str, type_s: str, handle_s: str, first_name_t: str, last_name_t: str, email_s: pydantic.networks.EmailStr, roles_ss: List[str] = <factory>) -> None

Organization member model.

class OrganizationModel(*, id: str, uid: str, type_s: str, handle_s: str, name_t: str, description_t: str | None = None, public_b: bool = False, members: List[datalayer_core.models.iam.OrganizationMember] = <factory>) -> None

Organization model.

class OrganizationRequest(*, handle: str, name: str, description: str | None = None, public: bool = False, type: str = 'organization') -> None

Organization create/update request model.

class TeamMemberModel(*, id: str, uid: str, type_s: str, handle_s: str, first_name_t: str, last_name_t: str, email_s: pydantic.networks.EmailStr, roles_ss: List[str] = <factory>) -> None

Team member model.

class TeamModel(*, id: str, uid: str, handle_s: str, name_t: str, description_t: str | None = None, members: List[datalayer_core.models.iam.TeamMemberModel] = <factory>) -> None

Team data model.

class TeamRequest(*, handle: str, name: str, description: str | None = None, organizationId: str) -> None

Team create/update request model.

Config()

populate_by_name

Returns True when the argument is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.

class MembershipModel(*, type: str, id: str, uid: str, handle: str, name: str, description: str | None = None, organization_uid: str | None = None, public: bool | None = None, members: List[Dict[str, Any]] | None = None) -> None

Single membership model - either organization or team.

from_solr(solr_doc: Dict[str, Any]) -> 'MembershipModel'

Create MembershipModel from Solr document.

class MembershipsModel(*, memberships: List[datalayer_core.models.iam.MembershipModel] = <factory>) -> None

Collection of memberships (organizations and teams) for a user.

from_solr_results(solr_results: List[Dict[str, Any]]) -> 'MembershipsModel'

Create MembershipsModel from Solr search results.

class ResourceRequirements(*, cpu: str | None = None, memory: str | None = None, nvidia_gpu: str | None = None) -> None

Kubernetes pod resource requirements.

class CreditsData(*, credits: float, quota: float | None = None, last_update: str | datetime.datetime) -> None

Credits data model.

class ReservationData(*, id: str, account_uid: str, credits: float, resource: str, resource_type: str, last_update: datetime.datetime, burning_rate: float, start_date: datetime.datetime) -> None

Reservation data model.

class UsageData(*, account_uid: str, resource_uid: str, resource_type: str, resource_given_name: str, start_date: datetime.datetime, end_date: datetime.datetime | None = None, updated_at: datetime.datetime, pod_resources: datalayer_core.models.iam.ResourceRequirements | None = None, burning_rate: float, credits_limit: float, credits: float, metadata: Dict[str, Any] | None = <factory>) -> None

Usage data model.

class CreditsUpdateRequest(*, credits: float, operation: str | None = 'set') -> None

Credits update request model.

class QuotaUpdateRequest(*, quota: float, user_uid: str | None = None) -> None

Quota update request model.

class ReservationRequest(*, resource: str, resource_type: str, credits: float, account_uid: str, burning_rate: float | None = None) -> None

Reservation create request model.

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

Checkout portal request model.

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

Checkout portal response data.

class SecretModel(*, id: str, uid: str, variant_s: str, name_s: str, description_t: str | None = None, value_s: str) -> None

Secret data model.

class TokenModel(*, id: str, uid: str, variant_s: str, name_s: str, description_t: str | None = None, expiration_ts_dt: datetime.datetime | None = None) -> None

Token data model.

class DatasourceModel(*, id: str, uid: str, variant_s: str, name_s: str, description_t: str | None = None, database_s: str, output_bucket_s: str) -> None

Datasource data model.

class LoginResponseData(*, user: datalayer_core.models.iam.UserModel, token: str) -> None

Login response data model.

class UserListResponseData(*, users: List[datalayer_core.models.iam.UserModel], total: int) -> None

User list response data model.

class OrganizationListResponseData(*, organizations: List[datalayer_core.models.iam.OrganizationModel], total: int) -> None

Organization list response data model.

class TeamListResponseData(*, teams: List[datalayer_core.models.iam.TeamModel], total: int) -> None

Team list response data model.

class ReservationListResponseData(*, reservations: List[datalayer_core.models.iam.ReservationData], total: int) -> None

Reservation list response data model.