from typing import ( TYPE_CHECKING, Any, BinaryIO, Dict, List, Optional, TextIO, Tuple, Type, TypeVar, Union, ) import attr from ..models.campaign_status import CampaignStatus from ..types import UNSET, Unset T = TypeVar("T", bound="CreateTestMetaCampaignInput") @attr.s(auto_attribs=True) class CreateTestMetaCampaignInput: """ Attributes: name (Union[Unset, None, str]): status (Union[Unset, None, CampaignStatus]): An enumeration. vendor_id (Union[Unset, None, int]): subaccount_id (Union[Unset, None, int]): global_participant_id (Union[Unset, None, str]): created_by (Union[Unset, None, str]): """ name: Union[Unset, None, str] = UNSET status: Union[Unset, None, CampaignStatus] = UNSET vendor_id: Union[Unset, None, int] = UNSET subaccount_id: Union[Unset, None, int] = UNSET global_participant_id: Union[Unset, None, str] = UNSET created_by: Union[Unset, None, str] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: name = self.name status: Union[Unset, None, str] = UNSET if not isinstance(self.status, Unset): status = self.status.value if self.status else None vendor_id = self.vendor_id subaccount_id = self.subaccount_id global_participant_id = self.global_participant_id created_by = self.created_by field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if name is not UNSET: field_dict["name"] = name if status is not UNSET: field_dict["status"] = status if vendor_id is not UNSET: field_dict["vendorId"] = vendor_id if subaccount_id is not UNSET: field_dict["subaccountId"] = subaccount_id if global_participant_id is not UNSET: field_dict["globalParticipantId"] = global_participant_id if created_by is not UNSET: field_dict["createdBy"] = created_by return field_dict @classmethod def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: d = src_dict.copy() name = d.pop("name", UNSET) _status = d.pop("status", UNSET) status: Union[Unset, None, CampaignStatus] if _status is None: status = None elif isinstance(_status, Unset): status = UNSET else: status = CampaignStatus(_status) vendor_id = d.pop("vendorId", UNSET) subaccount_id = d.pop("subaccountId", UNSET) global_participant_id = d.pop("globalParticipantId", UNSET) created_by = d.pop("createdBy", UNSET) create_test_meta_campaign_input = cls( name=name, status=status, vendor_id=vendor_id, subaccount_id=subaccount_id, global_participant_id=global_participant_id, created_by=created_by, ) create_test_meta_campaign_input.additional_properties = d return create_test_meta_campaign_input @property def additional_keys(self) -> List[str]: return list(self.additional_properties.keys()) def __getitem__(self, key: str) -> Any: return self.additional_properties[key] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value def __delitem__(self, key: str) -> None: del self.additional_properties[key] def __contains__(self, key: str) -> bool: return key in self.additional_properties