2024-08-23 16:22:29 +02:00
# coding: utf-8
"""
Codex API
List of endpoints and interfaces available to Codex API users
The version of the OpenAPI document : 0.0 .1
Generated by OpenAPI Generator ( https : / / openapi - generator . tech )
Do not edit the class manually .
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
2025-03-31 17:52:10 +02:00
from pydantic import BaseModel , ConfigDict , Field , StrictInt , StrictStr
2024-08-23 16:22:29 +02:00
from typing import Any , ClassVar , Dict , List , Optional
2024-08-25 14:41:02 +02:00
from typing_extensions import Annotated
2024-08-23 16:22:29 +02:00
from typing import Optional , Set
from typing_extensions import Self
class SalesAvailabilityCREATE ( BaseModel ) :
"""
SalesAvailabilityCREATE
""" # noqa: E501
2024-08-25 14:41:02 +02:00
id : Optional [ Annotated [ str , Field ( min_length = 66 , strict = True , max_length = 66 ) ] ] = Field ( default = None , description = " 32bits identifier encoded in hex-decimal string. " )
2025-03-31 17:52:10 +02:00
total_size : StrictInt = Field ( description = " Total size of availability ' s storage in bytes " , alias = " totalSize " )
duration : StrictInt = Field ( description = " The duration of the request in seconds " )
2025-03-26 16:42:46 +01:00
min_price_per_byte_per_second : StrictStr = Field ( description = " Minimal price per byte per second paid (in amount of tokens) for the hosted request ' s slot for the request ' s duration as decimal string " , alias = " minPricePerBytePerSecond " )
total_collateral : StrictStr = Field ( description = " Total collateral (in amount of tokens) that can be used for matching requests " , alias = " totalCollateral " )
__properties : ClassVar [ List [ str ] ] = [ " id " , " totalSize " , " duration " , " minPricePerBytePerSecond " , " totalCollateral " ]
2024-08-23 16:22:29 +02:00
model_config = ConfigDict (
populate_by_name = True ,
validate_assignment = True ,
protected_namespaces = ( ) ,
)
def to_str ( self ) - > str :
""" Returns the string representation of the model using alias """
return pprint . pformat ( self . model_dump ( by_alias = True ) )
def to_json ( self ) - > str :
""" Returns the JSON representation of the model using alias """
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json . dumps ( self . to_dict ( ) )
@classmethod
def from_json ( cls , json_str : str ) - > Optional [ Self ] :
""" Create an instance of SalesAvailabilityCREATE from a JSON string """
return cls . from_dict ( json . loads ( json_str ) )
def to_dict ( self ) - > Dict [ str , Any ] :
""" Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic ' s
` self . model_dump ( by_alias = True ) ` :
* ` None ` is only added to the output dict for nullable fields that
were set at model initialization . Other fields with value ` None `
are ignored .
"""
excluded_fields : Set [ str ] = set ( [
] )
_dict = self . model_dump (
by_alias = True ,
exclude = excluded_fields ,
exclude_none = True ,
)
return _dict
@classmethod
def from_dict ( cls , obj : Optional [ Dict [ str , Any ] ] ) - > Optional [ Self ] :
""" Create an instance of SalesAvailabilityCREATE from a dict """
if obj is None :
return None
if not isinstance ( obj , dict ) :
return cls . model_validate ( obj )
_obj = cls . model_validate ( {
" id " : obj . get ( " id " ) ,
" totalSize " : obj . get ( " totalSize " ) ,
" duration " : obj . get ( " duration " ) ,
2025-03-26 16:42:46 +01:00
" minPricePerBytePerSecond " : obj . get ( " minPricePerBytePerSecond " ) ,
" totalCollateral " : obj . get ( " totalCollateral " )
2024-08-23 16:22:29 +02:00
} )
return _obj