1919import json
2020
2121
22- from typing import Any ,Dict ,Optional
23- from pydantic import BaseModel ,Field ,StrictBool ,StrictStr
24- from segment_public_api .models .id_sync_options import IDSyncOptions
22+ from typing import Any ,Dict ,List , Optional
23+ from pydantic import BaseModel ,Field ,StrictBool ,StrictStr , conlist
24+ from segment_public_api .models .id_sync_configuration_input import IDSyncConfigurationInput
2525from segment_public_api .models .metadata import Metadata
2626
2727class SimpleDestination (BaseModel ):
@@ -37,7 +37,7 @@ class SimpleDestination(BaseModel):
3737settings :Dict [str ,Any ]= Field (...,description = "The Destination settings." )
3838destination_id :StrictStr = Field (...,alias = "destinationId" ,description = "The Destination id." )
3939metadata :Optional [Metadata ]= None
40- id_sync_configuration :Optional [IDSyncOptions ]= Field (None ,alias = "idSyncConfiguration" )
40+ id_sync_configuration :Optional [conlist ( IDSyncConfigurationInput ) ]= Field (None ,alias = "idSyncConfiguration" , description = "ID Sync configuration - array of external IDs with their strategies. " )
4141__properties = ["id" ,"name" ,"sourceId" ,"enabled" ,"createdAt" ,"updatedAt" ,"settings" ,"destinationId" ,"metadata" ,"idSyncConfiguration" ]
4242
4343class Config :
@@ -67,9 +67,13 @@ def to_dict(self):
6767# override the default output from pydantic by calling `to_dict()` of metadata
6868if self .metadata :
6969_dict ['metadata' ]= self .metadata .to_dict ()
70- # override the default output from pydantic by calling `to_dict()` of id_sync_configuration
70+ # override the default output from pydantic by calling `to_dict()` of each item in id_sync_configuration (list)
71+ _items = []
7172if self .id_sync_configuration :
72- _dict ['idSyncConfiguration' ]= self .id_sync_configuration .to_dict ()
73+ for _item in self .id_sync_configuration :
74+ if _item :
75+ _items .append (_item .to_dict ())
76+ _dict ['idSyncConfiguration' ]= _items
7377return _dict
7478
7579@classmethod
@@ -91,7 +95,7 @@ def from_dict(cls, obj: dict) -> SimpleDestination:
9195"settings" :obj .get ("settings" ),
9296"destination_id" :obj .get ("destinationId" ),
9397"metadata" :Metadata .from_dict (obj .get ("metadata" ))if obj .get ("metadata" )is not None else None ,
94- "id_sync_configuration" :IDSyncOptions .from_dict (obj .get ("idSyncConfiguration" )) if obj .get ("idSyncConfiguration" )is not None else None
98+ "id_sync_configuration" :[ IDSyncConfigurationInput .from_dict (_item ) for _item in obj .get ("idSyncConfiguration" )] if obj .get ("idSyncConfiguration" )is not None else None
9599 })
96100return _obj
97101