models.py•22.6 kB
# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-28T15:31:02+00:00
from __future__ import annotations
from datetime import datetime
from enum import Enum
from typing import Any, Dict, 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 DrivingLicense(BaseModel):
abbreviation: str = Field(..., examples=['MCWG'])
code: constr(min_length=1) = Field(..., examples=['NT'])
description: str = Field(..., examples=['Motor Cycle with Gear(Non Transport)'])
endorseDate: str = Field(..., examples=['01-01-1990'])
issueDate: str
class CertificateData1(BaseModel):
DrivingLicense_1: Optional[DrivingLicense] = Field(None, alias='DrivingLicense')
class Address2(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=['present'])
vtc: str = Field(..., examples=[''])
class Organization1(BaseModel):
Address: Address2
code: str = Field(..., examples=[''])
name: constr(min_length=1) = Field(..., examples=[''])
tin: str = Field(..., examples=[''])
type: constr(min_length=1) = Field(..., examples=['CG'])
uid: str = Field(..., examples=[''])
class IssuedBy1(BaseModel):
Organization: Organization1
class Address3(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 Person1(BaseModel):
Address: Address3
Photo_1: Photo = Field(..., alias='Photo')
dob: constr(min_length=1) = Field(..., examples=['01-10-1988'])
email: str = Field(..., examples=[''])
gender: str = Field(..., examples=['M'])
maritalStatus: str = Field(..., examples=[''])
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 IssuedTo1(BaseModel):
Person: Person1
class DrivingLicenseSchema(BaseModel):
CertificateData: CertificateData1
IssuedBy: IssuedBy1
IssuedTo: IssuedTo1
expiryDate: Optional[str] = Field(None, examples=['31-12-2010'])
issueDate: str = Field(..., examples=['01-01-1990'])
issuedAt: str = Field(..., examples=['New Delhi'])
language: constr(min_length=1) = Field(..., examples=[99])
name: constr(min_length=1) = Field(..., examples=['Driving License'])
number: int = Field(..., examples=['DL012345678'])
prevNumber: Optional[int] = Field(None, examples=[1234])
status: constr(min_length=1) = Field(..., examples=['A'])
type: str = Field(..., examples=['DRVLC'])
validFromDate: str = Field(..., examples=['01-01-1990'])
class Insurance(BaseModel):
companyName: Optional[str] = Field(None, examples=[''])
policyNo: Optional[constr(min_length=1)] = None
validTill: Optional[str] = Field(None, examples=[''])
class Vehicle(BaseModel):
chasisNo: Optional[constr(min_length=1)] = None
class_: Optional[Dict[str, Any]] = Field(None, alias='class')
color: Optional[str] = Field(None, examples=[''])
cubicCapacity: Optional[Dict[str, Any]] = None
cylinder: Optional[Dict[str, Any]] = None
engineNo: Optional[str] = Field(None, examples=[''])
fitTill: Optional[Dict[str, Any]] = None
fuelDesc: Optional[Dict[str, Any]] = None
make: Optional[Dict[str, Any]] = None
mfgDate: Optional[Dict[str, Any]] = None
model: Optional[constr(min_length=1)] = None
seatCapacity: Optional[constr(min_length=1)] = None
sleeperCapacity: Optional[constr(min_length=1)] = None
standingCapacity: Optional[Dict[str, Any]] = None
unladenWeight: Optional[constr(min_length=1)] = None
wheelbase: Optional[Dict[str, Any]] = None
class VehicleRegistration(BaseModel):
Insurance_1: Optional[Insurance] = Field(None, alias='Insurance')
Vehicle_1: Optional[Vehicle] = Field(None, alias='Vehicle')
financer: constr(min_length=1)
normsDesc: str = Field(..., examples=['SSCER'])
statusDate: constr(min_length=1)
class CertificateData2(BaseModel):
VehicleRegistration_1: Optional[VehicleRegistration] = Field(
None, alias='VehicleRegistration'
)
class Address4(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 Organization2(BaseModel):
Address: Address4
code: str = Field(..., examples=[''])
name: constr(min_length=1) = Field(..., examples=[''])
tin: str = Field(..., examples=[''])
type: constr(min_length=1) = Field(..., examples=['CG'])
uid: str = Field(..., examples=[''])
class IssuedBy2(BaseModel):
Organization: Organization2
class Address5(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 Person2(BaseModel):
Address: Address5
Photo_1: Photo = Field(..., alias='Photo')
dob: constr(min_length=1) = Field(..., examples=['01-10-1988'])
email: str = Field(..., examples=[''])
gender: str = Field(..., examples=[''])
maritalStatus: str = Field(..., examples=[''])
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 IssuedTo2(BaseModel):
Person: Person2
class VehicleRegistrationSchema(BaseModel):
CertificateData: CertificateData2
IssuedBy: IssuedBy2
IssuedTo: IssuedTo2
expiryDate: Optional[str] = Field(None, examples=[' '])
issueDate: str = Field(..., examples=['01-01-1980'])
issuedAt: str = Field(..., examples=['New Delhi'])
language: constr(min_length=1) = Field(..., examples=[99])
name: constr(min_length=1) = Field(..., examples=['Vehicle Registration'])
number: int = Field(..., examples=['DL01AB1234'])
status: constr(min_length=1) = Field(..., examples=['A'])
type: str = Field(..., examples=['RVCER'])
validFromDate: str = Field(..., examples=[' '])
class CertificateParameters(BaseModel):
DOB: str = Field(
..., description='Date of birth in DD-MM-YYYY format', examples=['31-12-1980']
)
FullName: str = Field(..., description='Full name', examples=['Sunil Kumar'])
UID: str = Field(..., description='Aadhaar number', examples=['123412341234'])
dlno: str = Field(
...,
description='Driving License No',
examples=['TN0119920009646. As per your Driving License.'],
)
class Format(Enum):
xml = 'xml'
pdf = 'pdf'
class DrvlcCertificatePostRequest(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 DrvlcCertificatePostResponse(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 DrvlcCertificatePostResponse1(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 DrvlcCertificatePostResponse2(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 DrvlcCertificatePostResponse3(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 DrvlcCertificatePostResponse4(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 DrvlcCertificatePostResponse5(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 DrvlcCertificatePostResponse6(BaseModel):
error: Optional[Error6] = None
errorDescription: Optional[ErrorDescription6] = None
class CertificateParameters1(BaseModel):
FullName: str = Field(..., description='Full name', examples=['Sunil Kumar'])
UID: str = Field(..., description='Aadhaar number', examples=['123412341234'])
chasis_no: str = Field(
..., description='Chassis No', examples=['MBLKC12EFBGJ08420']
)
reg_no: str = Field(
...,
description='Vehicle Registration No',
examples=['DL01AA0101 As per your Vehicle Registration Certificate'],
)
class RvcerCertificatePostRequest(BaseModel):
certificateParameters: Optional[CertificateParameters1] = 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 Error7(Enum):
missing_parameter = 'missing_parameter'
invalid_parameter = 'invalid_parameter'
invalid_format = 'invalid_format'
invalid_txnid = 'invalid_txnid'
invalid_consentid = 'invalid_consentid'
class ErrorDescription7(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 RvcerCertificatePostResponse(BaseModel):
error: Optional[Error7] = None
errorDescription: Optional[ErrorDescription7] = None
class Error8(Enum):
invalid_authentication = 'invalid_authentication'
invalid_authorization = 'invalid_authorization'
class ErrorDescription8(Enum):
Authentication_failed = 'Authentication failed'
You_are_not_authorized_to_use_this_API = 'You are not authorized to use this API'
class RvcerCertificatePostResponse1(BaseModel):
error: Optional[Error8] = None
errorDescription: Optional[ErrorDescription8] = None
class Error9(Enum):
record_not_found = 'record_not_found'
url_not_found = 'url_not_found'
class ErrorDescription9(Enum):
No_record_found = 'No record found'
Your_API_url_or_path_is_incorrect = 'Your API url or path is incorrect'
class RvcerCertificatePostResponse2(BaseModel):
error: Optional[Error9] = None
errorDescription: Optional[ErrorDescription9] = None
class Error10(Enum):
internal_server_error = 'internal_server_error'
class ErrorDescription10(Enum):
Internal_server_error = 'Internal server error'
class RvcerCertificatePostResponse3(BaseModel):
error: Optional[Error10] = None
errorDescription: Optional[ErrorDescription10] = None
class Error11(Enum):
bad_gatewy = 'bad_gatewy'
class ErrorDescription11(Enum):
Publisher_service_returned_an_invalid_response = (
'Publisher service returned an invalid response'
)
class RvcerCertificatePostResponse4(BaseModel):
error: Optional[Error11] = None
errorDescription: Optional[ErrorDescription11] = None
class Error12(Enum):
service_unavailable = 'service_unavailable'
class ErrorDescription12(Enum):
Publisher_service_is_temporarily_unavailable = (
'Publisher service is temporarily unavailable'
)
class RvcerCertificatePostResponse5(BaseModel):
error: Optional[Error12] = None
errorDescription: Optional[ErrorDescription12] = None
class Error13(Enum):
gateway_timeout = 'gateway_timeout'
class ErrorDescription13(Enum):
Publisher_service_did_not_respond_in_time = (
'Publisher service did not respond in time'
)
class RvcerCertificatePostResponse6(BaseModel):
error: Optional[Error13] = None
errorDescription: Optional[ErrorDescription13] = None