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 | class Source(BaseModel):
"""The database or warehouse where your data is stored. The starting point for
a Hightouch data pipeline.
Attributes:
configuration (SourceConfiguration): The source's configuration. This specifies general metadata about sources,
like connection details
Hightouch will use this configuration to connect to underlying source.
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 source was created
id (str): The source's id
name (str): The source's name
slug (str): The source's slug
type (str): The source's type (e.g. snowflake or postgres).
updated_at (datetime.datetime): The timestamp when the source was last updated
workspace_id (str): The id of the workspace that the source belongs to
"""
configuration: SourceConfiguration = None
created_at: datetime.datetime = None
id: str = None
name: str = None
slug: 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
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,
"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 = SourceConfiguration.from_dict(d.pop("configuration"))
created_at = isoparse(d.pop("createdAt"))
id = d.pop("id")
name = d.pop("name")
slug = d.pop("slug")
type = d.pop("type")
updated_at = isoparse(d.pop("updatedAt"))
workspace_id = d.pop("workspaceId")
source = cls(
configuration=configuration,
created_at=created_at,
id=id,
name=name,
slug=slug,
type=type,
updated_at=updated_at,
workspace_id=workspace_id,
)
source.additional_properties = d
return source
@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
|