61 lines
1.5 KiB
Python
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
|