datamasque-python 1.1.2__py3-none-any.whl → 1.1.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,6 +33,7 @@ from datamasque.client.models.connection import (
33
33
  DatabaseConnectionConfig,
34
34
  DatabaseType,
35
35
  DatabricksConnectionConfig,
36
+ DocumentDbConnectionConfig,
36
37
  DynamoConnectionConfig,
37
38
  FileConnectionConfig,
38
39
  MongoConnectionConfig,
@@ -150,6 +151,7 @@ __all__ = [
150
151
  "DiscoveryConfigNotFoundError",
151
152
  "DiscoveryConfigType",
152
153
  "DiscoveryMatch",
154
+ "DocumentDbConnectionConfig",
153
155
  "DynamoConnectionConfig",
154
156
  "FailedToStartError",
155
157
  "FileConnectionConfig",
@@ -44,9 +44,11 @@ class DatabaseType(Enum):
44
44
  mssql_linked = "mssql_linked"
45
45
  snowflake = "snowflake"
46
46
  mongodb = "mongodb"
47
+ documentdb = "documentdb"
47
48
  databricks_lakebase = "databricks_lakebase"
48
49
  databricks = "databricks"
49
50
  informix = "informix"
51
+ saphana = "saphana"
50
52
 
51
53
 
52
54
  class SnowflakeStageLocation(str, Enum):
@@ -160,6 +162,8 @@ class MongoConnectionConfig(ConnectionConfig):
160
162
  password: Optional[str] = None
161
163
  auth_source: str = "admin"
162
164
  tls: bool = False
165
+ tls_ca_file: str = ""
166
+ tls_allow_invalid_certificates: bool = False
163
167
  direct_connection: bool = False
164
168
  replica_set: str = ""
165
169
  is_read_only: bool = False
@@ -180,6 +184,13 @@ class MongoConnectionConfig(ConnectionConfig):
180
184
  d["dbpassword"] = password
181
185
  if not d.get("tls"):
182
186
  d.pop("tls", None)
187
+ d.pop("tls_ca_file", None)
188
+ d.pop("tls_allow_invalid_certificates", None)
189
+ else:
190
+ if not d.get("tls_ca_file"):
191
+ d.pop("tls_ca_file", None)
192
+ if not d.get("tls_allow_invalid_certificates"):
193
+ d.pop("tls_allow_invalid_certificates", None)
183
194
  if not d.get("direct_connection"):
184
195
  d.pop("direct_connection", None)
185
196
  if not d.get("replica_set"):
@@ -197,6 +208,23 @@ class MongoConnectionConfig(ConnectionConfig):
197
208
  return data
198
209
 
199
210
 
211
+ class DocumentDbConnectionConfig(MongoConnectionConfig):
212
+ """
213
+ Connection configuration for an AWS DocumentDB cluster.
214
+
215
+ DocumentDB is MongoDB wire-compatible,
216
+ so it reuses `MongoConnectionConfig` (including the TLS handling)
217
+ and only differs by `db_type`/`database_type`.
218
+ """
219
+
220
+ # Narrowing the inherited Literal is a deliberate Pydantic discriminator override.
221
+ db_type: Literal["documentdb"] = "documentdb" # type: ignore[assignment]
222
+
223
+ @property
224
+ def database_type(self) -> DatabaseType:
225
+ return DatabaseType.documentdb
226
+
227
+
200
228
  class SnowflakeConnectionConfig(ConnectionConfig):
201
229
  """
202
230
  Connection configuration for a Snowflake database.
@@ -430,6 +458,7 @@ FILE_TYPE_MAP: dict[str, type[FileConnectionConfig]] = {
430
458
  DB_TYPE_MAP: dict[str, type[ConnectionConfig]] = {
431
459
  DatabaseType.dynamodb.value: DynamoConnectionConfig,
432
460
  DatabaseType.mongodb.value: MongoConnectionConfig,
461
+ DatabaseType.documentdb.value: DocumentDbConnectionConfig,
433
462
  DatabaseType.snowflake.value: SnowflakeConnectionConfig,
434
463
  DatabaseType.mssql_linked.value: MssqlLinkedServerConnectionConfig,
435
464
  DatabaseType.databricks.value: DatabricksConnectionConfig,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datamasque-python
3
- Version: 1.1.2
3
+ Version: 1.1.4
4
4
  Summary: Official Python client for the DataMasque data-masking API.
5
5
  Project-URL: Homepage, https://datamasque.com/
6
6
  Project-URL: Documentation, https://datamasque-python.readthedocs.io/
@@ -1,4 +1,4 @@
1
- datamasque/client/__init__.py,sha256=GmpVFNWZPu6jyadhY6SOZp4hLR1wUc4cgzwLcqoEA5o,6312
1
+ datamasque/client/__init__.py,sha256=bW7Iy-iNxpaYgc_X035KAL-hmOVgr8YcYh5s398zawo,6378
2
2
  datamasque/client/base.py,sha256=vP1LuYbqq6U8NAEJWnwNrdt_Fa2wjQTJXHf0gSFO79c,14115
3
3
  datamasque/client/connections.py,sha256=EFinx8fJRme0mTxuWY3d29UnmUFbsQhMaUQT0Ma2PK4,2885
4
4
  datamasque/client/discovery.py,sha256=MTDiif6YWkv64hHXZ8YJxtRhoeKIvQVfjNYvjCIZCXE,21261
@@ -15,7 +15,7 @@ datamasque/client/runs.py,sha256=l_JpYgelqsDKW_O6LtsHC60IMXHG9ak_RwVnuvJKE1I,770
15
15
  datamasque/client/settings.py,sha256=Ui8AyR2XdoW8MZ9FIrGn2jm8DLzUGWIL8i2DOTvu7hc,2898
16
16
  datamasque/client/users.py,sha256=VCUo2CJyOw4-aO_3mp_w_0BcSoa6-h1HcReMcAMyumw,3701
17
17
  datamasque/client/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- datamasque/client/models/connection.py,sha256=TSv-bbOFlYCRBZHJiRgiwNuN0es_GdJd-_L3LUsQ-dI,15773
18
+ datamasque/client/models/connection.py,sha256=XBu5VZZvS3Ubwk8sY4KxuDuE4WMQMZ3wv0EjAEGB07w,16847
19
19
  datamasque/client/models/data_selection.py,sha256=406yyUZ5NmLBSql2lYM1gsTWY5GWmnutmF-DjznAoLc,1904
20
20
  datamasque/client/models/discovery.py,sha256=WHSIkFebQ5m47K_BdxY1lvCeeF23q_BbZan7Ryuh5vY,13198
21
21
  datamasque/client/models/discovery_config.py,sha256=1CHMgSxMXuarPGfRcz9wX7jeZLn1SDw0UEe-L5naE54,1917
@@ -30,7 +30,7 @@ datamasque/client/models/ruleset_library.py,sha256=5UbL_M47mgPedo8xt4q5crUh4aeOV
30
30
  datamasque/client/models/runs.py,sha256=UtPMGCJFLFP1f2nyVGAbl3A5_wAONrRNJ63y43Hbpi0,6213
31
31
  datamasque/client/models/status.py,sha256=UUEDHd3CQZA1Mf-1LyhAiE4COuCWvAz5oJx5ECVIwp4,2868
32
32
  datamasque/client/models/user.py,sha256=UGAUzgJkf78m24_zFXXoA99zdut48BXkX_ivV8yq1Vc,2043
33
- datamasque_python-1.1.2.dist-info/METADATA,sha256=0S1FrNnn9ZEVX8or5A2WcTz3t-ewccuy9O7jx2vY1TY,4187
34
- datamasque_python-1.1.2.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
35
- datamasque_python-1.1.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
36
- datamasque_python-1.1.2.dist-info/RECORD,,
33
+ datamasque_python-1.1.4.dist-info/METADATA,sha256=UdB8yab_S7aUPS10sVYhtRftZlkXHFY-o02oSjOOURI,4187
34
+ datamasque_python-1.1.4.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
35
+ datamasque_python-1.1.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
36
+ datamasque_python-1.1.4.dist-info/RECORD,,