2025-12-10 12:02:17 +08:00

61 lines
1.5 KiB
Python

from datetime import datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
from backend.modules.aws_accounts.models import CredentialType
class AWSCredentialBase(BaseModel):
name: str
account_id: str
credential_type: CredentialType = CredentialType.ACCESS_KEY
access_key_id: Optional[str] = None
secret_access_key: Optional[str] = None
role_arn: Optional[str] = None
external_id: Optional[str] = None
default_region: str = "ap-northeast-1"
is_active: int = 1
class AWSCredentialCreate(AWSCredentialBase):
pass
class AWSCredentialUpdate(BaseModel):
name: Optional[str] = None
account_id: Optional[str] = None
credential_type: Optional[CredentialType] = None
access_key_id: Optional[str] = None
secret_access_key: Optional[str] = None
role_arn: Optional[str] = None
external_id: Optional[str] = None
default_region: Optional[str] = None
is_active: Optional[int] = None
class AWSCredentialOut(AWSCredentialBase):
model_config = ConfigDict(from_attributes=True)
id: int
created_at: datetime
updated_at: datetime
class CustomerCredentialBase(BaseModel):
customer_id: int
credential_id: int
is_allowed: int = 1
class CustomerCredentialCreate(CustomerCredentialBase):
pass
class CustomerCredentialOut(CustomerCredentialBase):
model_config = ConfigDict(from_attributes=True)
id: int
created_at: datetime
updated_at: datetime