# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-29T06:39:44+00:00
from __future__ import annotations
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel, Field, constr
class Model(Enum):
steve = 'steve'
slim = 'slim'
class Variant(Enum):
classic = 'classic'
slim = 'slim'
class Visibility(Enum):
integer_0 = 0
integer_1 = 1
class GenerateOptions(BaseModel):
model: Optional[Model] = 'steve'
name: Optional[constr(max_length=20)] = None
variant: Optional[Variant] = Field(
None,
description='Skin variant - automatically determined based on the image if not specified',
)
visibility: Optional[Visibility] = Field(
0, description='Visibility of the generated skin. 0 for public, 1 for private'
)
class PartialSkinInfo(BaseModel):
id: int
name: str
time: int
url: str
class Model1(Enum):
slim = 'slim'
steve = 'steve'
unknown = 'unknown'
class Stats(BaseModel):
delay: Optional[float] = None
server: Optional[str] = None
class TextureInfo(BaseModel):
signature: Optional[str] = None
url: Optional[str] = None
value: Optional[str] = None
class UserValidation(BaseModel):
name: Optional[str] = None
uuid: Optional[str] = None
valid: bool
class GenerateUploadPostRequest(GenerateOptions):
file: Optional[bytes] = None
class GenerateUploadPostResponse1(BaseModel):
error: str = Field(..., description='Error message')
errorCode: Optional[str] = Field(
None,
description='Consistent error code, see [AuthError](https://github.com/MineSkin/api.mineskin.org/blob/793a926cbe4b90887ed8164c9eccfcb542fdeadb/src/generator/Authentication.ts#L580) & [GenError](https://github.com/MineSkin/api.mineskin.org/blob/47a5f51dc664e0f730b0073f70b2fc295e14ca3b/src/generator/Generator.ts#L1093)',
)
class GenerateUploadPostResponse2(BaseModel):
delay: Optional[int] = Field(None, description="The API's current delay in seconds")
error: str = Field(..., description='Error message')
nextRequest: Optional[int] = Field(
None, description='Unix timestamp when the next request is allowed'
)
class GenerateUploadPostResponse3(BaseModel):
error: str = Field(..., description='Error message')
errorCode: Optional[str] = Field(
None,
description='Consistent error code, see [AuthError](https://github.com/MineSkin/api.mineskin.org/blob/793a926cbe4b90887ed8164c9eccfcb542fdeadb/src/generator/Authentication.ts#L580) & [GenError](https://github.com/MineSkin/api.mineskin.org/blob/47a5f51dc664e0f730b0073f70b2fc295e14ca3b/src/generator/Generator.ts#L1093)',
)
class GenerateUrlPostRequest(GenerateOptions):
url: Optional[str] = None
class GenerateUrlPostResponse1(BaseModel):
error: str = Field(..., description='Error message')
errorCode: Optional[str] = Field(
None,
description='Consistent error code, see [AuthError](https://github.com/MineSkin/api.mineskin.org/blob/793a926cbe4b90887ed8164c9eccfcb542fdeadb/src/generator/Authentication.ts#L580) & [GenError](https://github.com/MineSkin/api.mineskin.org/blob/47a5f51dc664e0f730b0073f70b2fc295e14ca3b/src/generator/Generator.ts#L1093)',
)
class GenerateUrlPostResponse2(BaseModel):
delay: Optional[int] = Field(None, description="The API's current delay in seconds")
error: str = Field(..., description='Error message')
nextRequest: Optional[int] = Field(
None, description='Unix timestamp when the next request is allowed'
)
class GenerateUrlPostResponse3(BaseModel):
error: str = Field(..., description='Error message')
errorCode: Optional[str] = Field(
None,
description='Consistent error code, see [AuthError](https://github.com/MineSkin/api.mineskin.org/blob/793a926cbe4b90887ed8164c9eccfcb542fdeadb/src/generator/Authentication.ts#L580) & [GenError](https://github.com/MineSkin/api.mineskin.org/blob/47a5f51dc664e0f730b0073f70b2fc295e14ca3b/src/generator/Generator.ts#L1093)',
)
class GenerateUserPostRequest(GenerateOptions):
uuid: Optional[constr(min_length=32, max_length=36)] = None
class GenerateUserPostResponse1(BaseModel):
error: str = Field(..., description='Error message')
errorCode: Optional[str] = Field(
None,
description='Consistent error code, see [AuthError](https://github.com/MineSkin/api.mineskin.org/blob/793a926cbe4b90887ed8164c9eccfcb542fdeadb/src/generator/Authentication.ts#L580) & [GenError](https://github.com/MineSkin/api.mineskin.org/blob/47a5f51dc664e0f730b0073f70b2fc295e14ca3b/src/generator/Generator.ts#L1093)',
)
class GenerateUserPostResponse2(BaseModel):
delay: Optional[int] = Field(None, description="The API's current delay in seconds")
error: str = Field(..., description='Error message')
nextRequest: Optional[int] = Field(
None, description='Unix timestamp when the next request is allowed'
)
class GenerateUserPostResponse3(BaseModel):
error: str = Field(..., description='Error message')
errorCode: Optional[str] = Field(
None,
description='Consistent error code, see [AuthError](https://github.com/MineSkin/api.mineskin.org/blob/793a926cbe4b90887ed8164c9eccfcb542fdeadb/src/generator/Authentication.ts#L580) & [GenError](https://github.com/MineSkin/api.mineskin.org/blob/47a5f51dc664e0f730b0073f70b2fc295e14ca3b/src/generator/Generator.ts#L1093)',
)
class GetDelayGetResponse(BaseModel):
delay: Optional[int] = None
next: Optional[int] = None
nextRelative: Optional[int] = None
class Page(BaseModel):
amount: Optional[int] = None
index: Optional[int] = None
total: Optional[int] = None
class GetListPageGetResponse(BaseModel):
filter: Optional[str] = None
page: Page
skins: List[PartialSkinInfo]
class SkinData(BaseModel):
texture: Optional[TextureInfo] = None
uuid: Optional[str] = None
class SkinInfo(BaseModel):
account: Optional[int] = None
accountId: Optional[int] = None
data: SkinData
duration: Optional[float] = None
id: int
idStr: Optional[str] = None
model: Model1
name: Optional[str] = None
private: Optional[bool] = None
server: Optional[str] = None
timestamp: Optional[float] = None
uuid: Optional[str] = None
variant: Optional[Variant] = None
views: Optional[float] = None
class GenerateUploadPostResponse(SkinInfo):
duplicate: Optional[bool] = None
nextRequest: Optional[int] = None
class GenerateUrlPostResponse(SkinInfo):
duplicate: Optional[bool] = None
nextRequest: Optional[int] = None
class GenerateUserPostResponse(SkinInfo):
duplicate: Optional[bool] = None
nextRequest: Optional[int] = None