Source code for rasenmaeher_api.web.api.enrollment.schema

"""Schema for enrollment."""
from typing import List, Dict, Any

from pydantic import BaseModel, Extra, Field


[docs] class EnrollmentGenVerifiOut(BaseModel): # pylint: disable=too-few-public-methods """Enrollment gen verification code out"""
[docs] verification_code: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = {"example": {"verification_code": "[str] Generated verification code for enrollment."}}
[docs] class EnrollmentConfigTaskDone(BaseModel): # pylint: disable=too-few-public-methods """Enrollment config add manager schema out"""
[docs] success_message: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "example": { "success_message": "[str] - Task completed message", } }
[docs] class EnrollmentStatusIn(BaseModel, extra=Extra.forbid): # pylint: disable=too-few-public-methods """Enrollment status in schema"""
[docs] callsign: str
[docs] class EnrollmentStatusOut(BaseModel): # pylint: disable=too-few-public-methods """Enrollment status check schema"""
[docs] status: int
[docs] callsign: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "example": { "state": "[int] - Current state of enrollment", "callsign": "[str] User defined username/id/callsign", } }
[docs] class EnrollmentShowVerificationCodeIn(BaseModel, extra=Extra.forbid): # pylint: disable=too-few-public-methods """Enrollment status in schema"""
[docs] verification_code: str
[docs] class EnrollmentShowVerificationCodeOut(BaseModel): # pylint: disable=too-few-public-methods """Enrollment status check schema"""
[docs] state: str
[docs] callsign: str
[docs] accepted: str
[docs] locked: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "example": { "state": "[str] - Current state of enrollment", "callsign": "[str] User defined username/id/callsign", "accepted": "[str] - Has this been already accepted, empty or 'na' == not accepted", "locked": "[str] - Contain info if the enrollment is locked. For unlocked enrollment, it's empty ''", } }
[docs] class EnrollmentHaveIBeenAcceptedOut(BaseModel): # pylint: disable=too-few-public-methods """Enrollment status check schema"""
[docs] have_i_been_accepted: bool
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "example": { "have_i_been_accepted": "[bool] - Accepted status. True/False", } }
[docs] class EnrollmentInitIn(BaseModel): # pylint: disable=too-few-public-methods """Enrollment init in response schema"""
[docs] callsign: str = Field(description="Callsign to create enrollment for")
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ { "name": "with_values", "summary": "Example values", "description": "**Example** of values.", "value": { "callsign": "taikaponi", }, }, ] }
[docs] class EnrollmentInitOut(BaseModel): # pylint: disable=too-few-public-methods """Enrollment init out response schema"""
[docs] callsign: str = Field(description="Callsign for which the enrollment got initialized")
[docs] approvecode: str = Field(description="Code used to approve the enrollment, must be delivered to an admin")
[docs] jwt: str = Field( description="JWT that allows client to check enrollment approval status and fetc mTLS certs when approved" )
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "example": { "callsign": "OTTER01a", "approvecode": "12DFEE34555", "jwt": "...", } }
[docs] class EnrollmentDeliverIn(BaseModel, extra=Extra.forbid): # pylint: disable=too-few-public-methods """Enrollment promote in schema"""
[docs] callsign_hash: str
[docs] class EnrollmentDeliverOut(BaseModel): # pylint: disable=too-few-public-methods """Enrollment init out response schema"""
[docs] callsign: str
[docs] callsign_hash: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "example": { "callsign": "[str] User defined username/id/callsign", "callsign_hash": "[str] - Hash string for callsign", "cert_download_link": "[str] - Link where certificate package can be downloaded", "howto_download_link": "[str] - Link where certificate install howto can be downloaded", "mtls_test_link": "[str] - Link that can be used to test mtls connection", } }
[docs] class EnrollmentAcceptIn(BaseModel): # pylint: disable=too-few-public-methods """Enrollment init out response schema"""
[docs] callsign: str = Field(description="Callsign to approve")
[docs] approvecode: str = Field( description="Approval code for the callsign, this must have been delivered by the person to be enrolled" )
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ { "name": "with_values", "summary": "Example values", "description": "**Example** values.", "value": { "callsign": "kissa123", "approvecode": "HGRTR43267", }, }, ] }
[docs] class EnrollmentAcceptOut(BaseModel): # pylint: disable=too-few-public-methods """Enrollment init out response schema"""
[docs] callsign: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "example": { "callsign": "[str] - Username/callsign/callsign", } }
[docs] class EnrollmentPromoteIn(BaseModel): # pylint: disable=too-few-public-methods """Enrollment promote in schema"""
[docs] callsign: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ { "name": "normal", "summary": "Description text", "description": "This contains **description** of values.", "value": { "callsign": "[str] User defined username/id/callsign", }, }, { "name": "with_values", "summary": "Example values", "description": "**Example** values.", "value": { "callsign": "kissa123", }, }, ] }
[docs] class EnrollmentDemoteIn(BaseModel): # pylint: disable=too-few-public-methods """Enrollment demote in schema"""
[docs] callsign: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ { "name": "normal", "summary": "Description text", "description": "This contains **description** of values.", "value": { "callsign": "[str] User defined username/id/callsign", }, }, { "name": "with_values", "summary": "Example values", "description": "**Example** values.", "value": { "callsign": "kissa123", }, }, ] }
[docs] class EnrollmentLockIn(BaseModel): # pylint: disable=too-few-public-methods """Enrollment lock in schema"""
[docs] lock_reason: str
[docs] callsign: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ { "name": "normal", "summary": "Description text", "description": "This contains **description** of values.", "value": { "callsign": "[str] User defined username/id/callsign", }, }, { "name": "with_values", "summary": "Example values", "description": "**Example** values.", "value": { "callsign": "kissa123", }, }, ] }
[docs] class EnrollmentIsInvitecodeActiveIn(BaseModel): """Enrollment check if invitecode is still active"""
[docs] invitecode: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ {"invitecode": "[str] - Code that can be used to validate enrollment init"}, ] }
[docs] class EnrollmentIsInvitecodeActiveOut(BaseModel): # pylint: disable=too-few-public-methods """Enrollment config add manager schema out"""
[docs] invitecode_is_active: bool
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "example": { "invitecode_is_active": "[bool] - True = this code can still be used", } }
[docs] class EnrollmentListOut(BaseModel, extra=Extra.forbid): # pylint: disable=too-few-public-methods """Enrollment list out response schema"""
[docs] callsign_list: List[Dict[Any, Any]]
[docs] class EnrollmentPoolListItem(BaseModel, extra=Extra.forbid): # pylint: disable=too-few-public-methods """Items for EnrollmentPoolListOut"""
[docs] invitecode: str = Field(description="The invitation code")
[docs] active: bool = Field(description="Is this pool currently active, ie can it be used")
[docs] owner_cs: str = Field(description="Pool wwners callsign")
[docs] created: str = Field(description="ISO datetime of when this pool was created")
[docs] class EnrollmentPoolListOut(BaseModel, extra=Extra.forbid): # pylint: disable=too-few-public-methods """Enrollment pools list out response schema"""
[docs] pools: List[EnrollmentPoolListItem] = Field(description="The pools")
[docs] class EnrollmentInviteCodeCreateOut(BaseModel, extra=Extra.forbid): # pylint: disable=too-few-public-methods """Enrollment Invite code response schema"""
[docs] invite_code: str
[docs] class EnrollmentInviteCodeDeactivateIn(BaseModel): """Enrollment Invite code deactivate request schema"""
[docs] invite_code: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ {"invite_code": "[str] - Invite code that will be deactivated"}, ] }
[docs] class EnrollmentInviteCodeDeactivateOut(BaseModel, extra=Extra.forbid): # pylint: disable=too-few-public-methods """Enrollment Invite code deactivate response schema"""
[docs] invite_code: str
[docs] class EnrollmentInviteCodeActivateIn(BaseModel): """Enrollment Invite code activate request schema"""
[docs] invite_code: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ {"invite_code": "[str] - Invite code that will be reactivated"}, ] }
[docs] class EnrollmentInviteCodeActivateOut(BaseModel, extra=Extra.forbid): # pylint: disable=too-few-public-methods """Enrollment Invite code activate response schema"""
[docs] invite_code: str
[docs] class EnrollmentInviteCodeEnrollIn(BaseModel): """Enrollment Enrollment Invite code request schema"""
[docs] invite_code: str
[docs] callsign: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ { "invite_code": "[str] - Code that is used validate enrollment init for callsign", "callsign": "[str] User defined username/id/callsign", }, ] }
[docs] class EnrollmentInviteCodeDeleteIn(BaseModel): """Enrollment Invite code deactivate request schema"""
[docs] invite_code: str
[docs] class Config: # pylint: disable=too-few-public-methods """Example values for schema"""
[docs] extra = Extra.forbid
[docs] schema_extra = { "examples": [ {"invite_code": "[str] - Invite code that will be removed."}, ] }