models.py•10.7 kB
# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-28T15:24:32+00:00
from __future__ import annotations
from datetime import datetime
from enum import Enum
from typing import List, Optional
from uuid import UUID
from pydantic import BaseModel, Field, constr
class Examination(BaseModel):
month: constr(min_length=1) = Field(..., examples=['MARCH'])
name: constr(min_length=1) = Field(
..., examples=['SENION SCHOOL CERTIFICATE EXAMINATION']
)
year: constr(min_length=1) = Field(..., examples=[2019])
class Subject(BaseModel):
code: constr(min_length=1) = Field(..., examples=[30])
gp: str = Field(..., examples=[''])
gpMax: str = Field(..., examples=[''])
grade: constr(min_length=1) = Field(..., examples=['A2'])
marksMax: int = Field(..., examples=[''])
marksMaxPractical: int = Field(..., examples=[''])
marksMaxTheory: int = Field(..., examples=[''])
marksPractical: int = Field(..., examples=[17])
marksTheory: int = Field(..., examples=[70])
marksTotal: int = Field(..., examples=[87])
name: constr(min_length=1) = Field(..., examples=['ECONOMICS'])
class Performance(BaseModel):
Subjects: List[Subject]
cgpa: str = Field(..., examples=[''])
cgpaMax: str = Field(..., examples=[''])
grade: str = Field(..., examples=[''])
marksMax: str = Field(..., examples=[''])
marksTotal: str = Field(..., examples=[''])
percentage: str = Field(..., examples=[''])
result: constr(min_length=1) = Field(..., examples=['PASS'])
resultDate: constr(min_length=1) = Field(..., examples=['02-05-2019'])
updateDate: str = Field(..., examples=[''])
class School(BaseModel):
code: constr(min_length=1) = Field(..., examples=[20020])
name: constr(min_length=1) = Field(..., examples=['DELHI PUBLIC SCHOOL GURGAON'])
class CertificateData(BaseModel):
Examination_1: Examination = Field(..., alias='Examination')
Performance_1: Performance = Field(..., alias='Performance')
School_1: School = Field(..., alias='School')
class Address(BaseModel):
country: constr(min_length=1) = Field(..., examples=['IN'])
district: str = Field(..., examples=[''])
house: str = Field(..., examples=[''])
landmark: str = Field(..., examples=[''])
line1: str = Field(..., examples=[''])
line2: str = Field(..., examples=[''])
locality: str = Field(..., examples=[''])
pin: str = Field(..., examples=[''])
state: str = Field(..., examples=[''])
type: str = Field(..., examples=[''])
vtc: str = Field(..., examples=[''])
class Organization(BaseModel):
Address_1: Address = Field(..., alias='Address')
code: str = Field(..., examples=[''])
name: constr(min_length=1) = Field(
..., examples=['Central Board of Secondary Education']
)
tin: str = Field(..., examples=[''])
type: constr(min_length=1) = Field(..., examples=['CG'])
uid: str = Field(..., examples=[''])
class IssuedBy(BaseModel):
Organization_1: Organization = Field(..., alias='Organization')
class Address1(BaseModel):
country: constr(min_length=1) = Field(..., examples=['IN'])
district: str = Field(..., examples=[''])
house: str = Field(..., examples=[''])
landmark: str = Field(..., examples=[None])
line1: str = Field(..., examples=[''])
line2: str = Field(..., examples=[''])
locality: str = Field(..., examples=[''])
pin: str = Field(..., examples=[''])
state: str = Field(..., examples=[''])
type: constr(min_length=1) = Field(..., examples=['permanent'])
vtc: str = Field(..., examples=[''])
class Photo(BaseModel):
format: str
class Person(BaseModel):
Address: Address1
Photo_1: Photo = Field(..., alias='Photo')
category: constr(min_length=1) = Field(..., examples=['SC'])
disabilityStatus: str = Field(..., examples=[''])
dob: constr(min_length=1) = Field(..., examples=['01-10-1988'])
email: str = Field(..., examples=[''])
gender: str = Field(..., examples=[''])
maritalStatus: str = Field(..., examples=[''])
motherName: constr(min_length=1) = Field(..., examples=['SUNITA DEVI'])
name: constr(min_length=1) = Field(..., examples=['ANAND KUMAR'])
phone: str = Field(..., examples=[''])
religion: str = Field(..., examples=[''])
swd: constr(min_length=1) = Field(..., examples=['PRAMOD KUMAR'])
swdIndicator: constr(min_length=1) = Field(..., examples=['S'])
title: str = Field(..., examples=[''])
uid: str = Field(..., examples=[''])
class IssuedTo(BaseModel):
Person_1: Person = Field(..., alias='Person')
class AcademicCertificateSchema(BaseModel):
CertificateData_1: CertificateData = Field(..., alias='CertificateData')
IssuedBy_1: IssuedBy = Field(..., alias='IssuedBy')
IssuedTo_1: IssuedTo = Field(..., alias='IssuedTo')
issueDate: str = Field(..., examples=[' '])
issuedAt: str = Field(..., examples=[''])
language: constr(min_length=1) = Field(..., examples=[99])
name: constr(min_length=1) = Field(..., examples=['Secondary School Certificate'])
number: int = Field(..., examples=[1100044])
status: constr(min_length=1) = Field(..., examples=['A'])
type: str = Field(..., examples=['SSCER'])
validFromDate: str = Field(..., examples=[' '])
class Data(BaseModel):
id: constr(min_length=1)
class DataConsumer(BaseModel):
id: constr(min_length=1)
class DataProvider(BaseModel):
id: constr(min_length=1)
class DateRange(BaseModel):
from_: datetime = Field(
...,
alias='from',
description='Date time format in UTC, includes miliseconds YYYY-MM-DDThh:mm:ss.vZ',
)
to: datetime = Field(
...,
description='Date time format in UTC, includes miliseconds YYYY-MM-DDThh:mm:ss.vZ',
)
class Frequency(BaseModel):
repeats: float
unit: constr(min_length=1)
value: float
class Permission(BaseModel):
access: constr(min_length=1)
dateRange: DateRange
frequency: Frequency
class Purpose(BaseModel):
description: constr(min_length=1)
class User(BaseModel):
email: constr(min_length=1)
idNumber: constr(min_length=1)
idType: constr(min_length=1)
mobile: constr(min_length=1)
class Consent(BaseModel):
consentId: UUID = Field(
...,
description='A unique consent id in UUID format.',
examples=['ea9c43aa-7f5a-4bf3-a0be-e1caa24737ba'],
)
data: Data
dataConsumer: DataConsumer
dataProvider: DataProvider
permission: Permission
purpose: Purpose
timestamp: datetime = Field(
...,
description='Date time format in UTC, includes miliseconds YYYY-MM-DDThh:mm:ss.vZ',
)
user: User
class Signature(BaseModel):
signature: str
class ConsentArtifactSchema(BaseModel):
consent: Consent
signature: Signature
class CertificateParameters(BaseModel):
FullName: str = Field(..., description='Full name', examples=['Sunil Kumar'])
RROLL: str = Field(..., description='Roll No.', examples=['270XX'])
YEAR: str = Field(..., description='Year', examples=['2017,2018,2019'])
class Format(Enum):
pdf = 'pdf'
class HscerCertificatePostRequest(BaseModel):
certificateParameters: Optional[CertificateParameters] = None
consentArtifact: Optional[ConsentArtifactSchema] = None
format: Format = Field(
..., description='The format of the certificate in response.'
)
txnId: UUID = Field(
...,
description='A unique transaction id for this request in UUID format. It is used for tracking the request.',
examples=['f7f1469c-29b0-4325-9dfc-c567200a70f7'],
)
class Error(Enum):
missing_parameter = 'missing_parameter'
invalid_parameter = 'invalid_parameter'
invalid_format = 'invalid_format'
invalid_txnid = 'invalid_txnid'
invalid_consentid = 'invalid_consentid'
class ErrorDescription(Enum):
Please_provide_all_mandatory_parameters = 'Please provide all mandatory parameters'
Bad_request = 'Bad request'
The_format_parameter_is_invalid = 'The format parameter is invalid'
The_txnId_parameter_must_be_in_UUID_format = (
'The txnId parameter must be in UUID format'
)
The_consentId_parameter_must_be_in_UUID_format = (
'The consentId parameter must be in UUID format'
)
class HscerCertificatePostResponse(BaseModel):
error: Optional[Error] = None
errorDescription: Optional[ErrorDescription] = None
class Error1(Enum):
invalid_authentication = 'invalid_authentication'
invalid_authorization = 'invalid_authorization'
class ErrorDescription1(Enum):
Authentication_failed = 'Authentication failed'
You_are_not_authorized_to_use_this_API = 'You are not authorized to use this API'
class HscerCertificatePostResponse1(BaseModel):
error: Optional[Error1] = None
errorDescription: Optional[ErrorDescription1] = None
class Error2(Enum):
record_not_found = 'record_not_found'
url_not_found = 'url_not_found'
class ErrorDescription2(Enum):
No_record_found = 'No record found'
Your_API_url_or_path_is_incorrect = 'Your API url or path is incorrect'
class HscerCertificatePostResponse2(BaseModel):
error: Optional[Error2] = None
errorDescription: Optional[ErrorDescription2] = None
class Error3(Enum):
internal_server_error = 'internal_server_error'
class ErrorDescription3(Enum):
Internal_server_error = 'Internal server error'
class HscerCertificatePostResponse3(BaseModel):
error: Optional[Error3] = None
errorDescription: Optional[ErrorDescription3] = None
class Error4(Enum):
bad_gatewy = 'bad_gatewy'
class ErrorDescription4(Enum):
Publisher_service_returned_an_invalid_response = (
'Publisher service returned an invalid response'
)
class HscerCertificatePostResponse4(BaseModel):
error: Optional[Error4] = None
errorDescription: Optional[ErrorDescription4] = None
class Error5(Enum):
service_unavailable = 'service_unavailable'
class ErrorDescription5(Enum):
Publisher_service_is_temporarily_unavailable = (
'Publisher service is temporarily unavailable'
)
class HscerCertificatePostResponse5(BaseModel):
error: Optional[Error5] = None
errorDescription: Optional[ErrorDescription5] = None
class Error6(Enum):
gateway_timeout = 'gateway_timeout'
class ErrorDescription6(Enum):
Publisher_service_did_not_respond_in_time = (
'Publisher service did not respond in time'
)
class HscerCertificatePostResponse6(BaseModel):
error: Optional[Error6] = None
errorDescription: Optional[ErrorDescription6] = None