18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137 | class Destination(BaseModel):
"""The service receiving your data (e.g. Salesforce, Hubspot, Customer.io, or a
SFTP server)
Attributes:
configuration (DestinationConfiguration): The destination's configuration. This specifies general metadata about
destination, like hostname and username.
Hightouch will be using this configuration to connect to destination.
The schema depends on the destination.
Consumers should NOT make assumptions on the contents of the
configuration. It may change as Hightouch updates its internal code.
created_at (datetime.datetime): The timestamp when the destination was created
id (str): The destination's id
name (str): The destination's name
slug (str): The destination's slug
syncs (List[str]): A list of syncs that sync to this destination.
type (str): The destination's type (e.g. salesforce or hubspot).
updated_at (datetime.datetime): The timestamp when the destination was last updated
workspace_id (str): The id of the workspace that the destination belongs to
"""
configuration: DestinationConfiguration = None
created_at: datetime.datetime = None
id: str = None
name: str = None
slug: str = None
syncs: List[str] = None
type: str = None
updated_at: datetime.datetime = None
workspace_id: str = None
additional_properties: Dict[str, Any] = Field(default_factory=dict)
def to_dict(self) -> Dict[str, Any]:
configuration = self.configuration.to_dict()
created_at = self.created_at.isoformat()
id = self.id
name = self.name
slug = self.slug
syncs = self.syncs
type = self.type
updated_at = self.updated_at.isoformat()
workspace_id = self.workspace_id
field_dict: Dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update(
{
"configuration": configuration,
"createdAt": created_at,
"id": id,
"name": name,
"slug": slug,
"syncs": syncs,
"type": type,
"updatedAt": updated_at,
"workspaceId": workspace_id,
}
)
return field_dict
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
if src_dict is None or src_dict is UNSET:
return {}
d = {k: v if v is not None else UNSET for k, v in src_dict.items()}
configuration = DestinationConfiguration.from_dict(d.pop("configuration"))
created_at = isoparse(d.pop("createdAt"))
id = d.pop("id")
name = d.pop("name")
slug = d.pop("slug")
syncs = cast(List[str], d.pop("syncs"))
type = d.pop("type")
updated_at = isoparse(d.pop("updatedAt"))
workspace_id = d.pop("workspaceId")
destination = cls(
configuration=configuration,
created_at=created_at,
id=id,
name=name,
slug=slug,
syncs=syncs,
type=type,
updated_at=updated_at,
workspace_id=workspace_id,
)
destination.additional_properties = d
return destination
@property
def additional_keys(self) -> List[str]:
return list(self.additional_properties.keys())
def __getitem__(self, key: str) -> Any:
return self.additional_properties.get(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
|