models.py•6.04 kB
# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-29T07:57:41+00:00
from __future__ import annotations
from datetime import date
from enum import Enum
from typing import List, Optional, Union
from pydantic import BaseModel, Field, RootModel
class FigiResult(BaseModel):
compositeFIGI: Optional[str] = None
exchCode: Optional[str] = None
figi: Optional[str] = None
marketSector: Optional[str] = None
metadata: Optional[str] = Field(
None, description='Exists when API is unable to show non-FIGI fields.'
)
name: Optional[str] = None
securityDescription: Optional[str] = None
securityType: Optional[str] = None
securityType2: Optional[str] = None
shareClassFIGI: Optional[str] = None
ticker: Optional[str] = None
class IdType(Enum):
ID_ISIN = 'ID_ISIN'
ID_BB_UNIQUE = 'ID_BB_UNIQUE'
ID_SEDOL = 'ID_SEDOL'
ID_COMMON = 'ID_COMMON'
ID_WERTPAPIER = 'ID_WERTPAPIER'
ID_CUSIP = 'ID_CUSIP'
ID_BB = 'ID_BB'
ID_ITALY = 'ID_ITALY'
ID_EXCH_SYMBOL = 'ID_EXCH_SYMBOL'
ID_FULL_EXCHANGE_SYMBOL = 'ID_FULL_EXCHANGE_SYMBOL'
COMPOSITE_ID_BB_GLOBAL = 'COMPOSITE_ID_BB_GLOBAL'
ID_BB_GLOBAL_SHARE_CLASS_LEVEL = 'ID_BB_GLOBAL_SHARE_CLASS_LEVEL'
ID_BB_SEC_NUM_DES = 'ID_BB_SEC_NUM_DES'
ID_BB_GLOBAL = 'ID_BB_GLOBAL'
TICKER = 'TICKER'
ID_CUSIP_8_CHR = 'ID_CUSIP_8_CHR'
OCC_SYMBOL = 'OCC_SYMBOL'
UNIQUE_ID_FUT_OPT = 'UNIQUE_ID_FUT_OPT'
OPRA_SYMBOL = 'OPRA_SYMBOL'
TRADING_SYSTEM_IDENTIFIER = 'TRADING_SYSTEM_IDENTIFIER'
ID_CINS = 'ID_CINS'
ID_SHORT_CODE = 'ID_SHORT_CODE'
BASE_TICKER = 'BASE_TICKER'
VENDOR_INDEX_CODE = 'VENDOR_INDEX_CODE'
class OptionType(Enum):
Put = 'Put'
Call = 'Call'
class StateCode(Enum):
AB = 'AB'
AC = 'AC'
AC_1 = 'AC'
AH = 'AH'
AK = 'AK'
AL = 'AL'
AM = 'AM'
AR = 'AR'
AS = 'AS'
AT = 'AT'
AZ = 'AZ'
BC = 'BC'
BJ = 'BJ'
CA = 'CA'
CB = 'CB'
CO = 'CO'
CQ = 'CQ'
CT = 'CT'
CZ = 'CZ'
DC = 'DC'
DE = 'DE'
EH = 'EH'
FH = 'FH'
FI = 'FI'
FJ = 'FJ'
FL = 'FL'
FO = 'FO'
FS = 'FS'
GA = 'GA'
GD = 'GD'
GF = 'GF'
GM = 'GM'
GS = 'GS'
GU = 'GU'
GX = 'GX'
GZ = 'GZ'
HA = 'HA'
HB = 'HB'
HE = 'HE'
HG = 'HG'
HI = 'HI'
HI_1 = 'HI'
HL = 'HL'
HN = 'HN'
HO = 'HO'
HS = 'HS'
IA = 'IA'
ID = 'ID'
IG = 'IG'
IK = 'IK'
IL = 'IL'
IN = 'IN'
IT = 'IT'
JL = 'JL'
JS = 'JS'
JX = 'JX'
KA = 'KA'
KC = 'KC'
KN = 'KN'
KO = 'KO'
KS = 'KS'
KT = 'KT'
KU = 'KU'
KY = 'KY'
LA = 'LA'
LN = 'LN'
MA = 'MA'
MB = 'MB'
MD = 'MD'
ME = 'ME'
ME_1 = 'ME'
MG = 'MG'
MI = 'MI'
MN = 'MN'
MO = 'MO'
MS = 'MS'
MT = 'MT'
MZ = 'MZ'
NB = 'NB'
NC = 'NC'
ND = 'ND'
NE = 'NE'
NG = 'NG'
NH = 'NH'
NJ = 'NJ'
NL = 'NL'
NM = 'NM'
NM_1 = 'NM'
NN = 'NN'
NR = 'NR'
NS = 'NS'
NS_1 = 'NS'
NS_2 = 'NS'
NT = 'NT'
NU = 'NU'
NV = 'NV'
NW = 'NW'
NX = 'NX'
NY = 'NY'
OH = 'OH'
OK = 'OK'
ON = 'ON'
ON_1 = 'ON'
OR = 'OR'
OS = 'OS'
OT = 'OT'
OT_1 = 'OT'
OY = 'OY'
PA = 'PA'
PE = 'PE'
PR = 'PR'
QC = 'QC'
QH = 'QH'
QL = 'QL'
RI = 'RI'
SA = 'SA'
SA_1 = 'SA'
SC = 'SC'
SC_1 = 'SC'
SD = 'SD'
SD_1 = 'SD'
SH = 'SH'
SI = 'SI'
SK = 'SK'
SN = 'SN'
SN_1 = 'SN'
ST = 'ST'
SX = 'SX'
SZ = 'SZ'
TA = 'TA'
TG = 'TG'
TJ = 'TJ'
TK = 'TK'
TN = 'TN'
TS = 'TS'
TT = 'TT'
TT_1 = 'TT'
TX = 'TX'
TY = 'TY'
UT = 'UT'
VA = 'VA'
VI = 'VI'
VI_1 = 'VI'
VT = 'VT'
WA = 'WA'
WA_1 = 'WA'
WI = 'WI'
WK = 'WK'
WV = 'WV'
WY = 'WY'
XJ = 'XJ'
XZ = 'XZ'
YA = 'YA'
YN = 'YN'
YN_1 = 'YN'
YT = 'YT'
YU = 'YU'
ZJ = 'ZJ'
class MappingJobResultFigiList(BaseModel):
data: Optional[List[FigiResult]] = None
class MappingJobResultFigiNotFound(BaseModel):
warning: Optional[str] = None
class NullableDateInterval(RootModel[Optional[List[date]]]):
root: Optional[List[date]] = Field(
None,
description='At least one entry should be non-null.',
max_length=2,
min_length=2,
)
class NullableNumberInterval(RootModel[Optional[List[float]]]):
root: Optional[List[float]] = Field(
None,
description='At least one entry should be non-null.',
max_length=2,
min_length=2,
)
class MappingValuesKeyGetResponse(BaseModel):
values: Optional[List[str]] = None
class Key(Enum):
idType = 'idType'
exchCode = 'exchCode'
micCode = 'micCode'
currency = 'currency'
marketSecDes = 'marketSecDes'
securityType = 'securityType'
securityType2 = 'securityType2'
class MappingJob(BaseModel):
contractSize: Optional[NullableNumberInterval] = None
coupon: Optional[NullableNumberInterval] = None
currency: Optional[str] = None
exchCode: Optional[str] = None
expiration: Optional[NullableDateInterval] = None
idType: IdType
idValue: Union[str, int]
includeUnlistedEquities: Optional[bool] = None
marketSecDes: Optional[str] = None
maturity: Optional[NullableDateInterval] = None
micCode: Optional[str] = None
optionType: Optional[OptionType] = None
securityType: Optional[str] = None
securityType2: Optional[str] = None
stateCode: Optional[StateCode] = None
strike: Optional[NullableNumberInterval] = None
class MappingJobResult(
RootModel[Union[MappingJobResultFigiList, MappingJobResultFigiNotFound]]
):
root: Union[MappingJobResultFigiList, MappingJobResultFigiNotFound]
class BulkMappingJob(RootModel[List[MappingJob]]):
root: List[MappingJob]
class BulkMappingJobResult(RootModel[List[MappingJobResult]]):
root: List[MappingJobResult]