from typing import Optional from pydantic import Field from pydantic_settings import BaseSettings class S3StorageConfig(BaseSettings): """ S3 storage configs """ S3_ENDPOINT: Optional[str] = Field( description="S3 storage endpoint", default=None, ) S3_REGION: Optional[str] = Field( description="S3 storage region", default=None, ) S3_BUCKET_NAME: Optional[str] = Field( description="S3 storage bucket name", default=None, ) S3_ACCESS_KEY: Optional[str] = Field( description="S3 storage access key", default=None, ) S3_SECRET_KEY: Optional[str] = Field( description="S3 storage secret key", default=None, ) S3_ADDRESS_STYLE: str = Field( description="S3 storage address style", default="auto", ) S3_USE_AWS_MANAGED_IAM: bool = Field( description="whether to use aws managed IAM for S3", default=False, )