databricks-sdk 0.63.0__py3-none-any.whl → 0.65.0__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.
Potentially problematic release.
This version of databricks-sdk might be problematic. Click here for more details.
- databricks/sdk/__init__.py +45 -3
- databricks/sdk/mixins/open_ai_client.py +55 -6
- databricks/sdk/service/agentbricks.py +3 -3
- databricks/sdk/service/apps.py +519 -0
- databricks/sdk/service/catalog.py +712 -45
- databricks/sdk/service/cleanrooms.py +7 -6
- databricks/sdk/service/dashboards.py +155 -6
- databricks/sdk/service/database.py +20 -0
- databricks/sdk/service/iam.py +3 -1
- databricks/sdk/service/jobs.py +57 -5
- databricks/sdk/service/ml.py +47 -47
- databricks/sdk/service/pipelines.py +130 -0
- databricks/sdk/service/serving.py +16 -0
- databricks/sdk/service/settings.py +69 -2
- databricks/sdk/service/settingsv2.py +937 -0
- databricks/sdk/service/sharing.py +1 -28
- databricks/sdk/service/sql.py +64 -1
- databricks/sdk/service/tags.py +232 -0
- databricks/sdk/service/vectorsearch.py +82 -5
- databricks/sdk/version.py +1 -1
- {databricks_sdk-0.63.0.dist-info → databricks_sdk-0.65.0.dist-info}/METADATA +2 -2
- {databricks_sdk-0.63.0.dist-info → databricks_sdk-0.65.0.dist-info}/RECORD +26 -24
- {databricks_sdk-0.63.0.dist-info → databricks_sdk-0.65.0.dist-info}/WHEEL +0 -0
- {databricks_sdk-0.63.0.dist-info → databricks_sdk-0.65.0.dist-info}/licenses/LICENSE +0 -0
- {databricks_sdk-0.63.0.dist-info → databricks_sdk-0.65.0.dist-info}/licenses/NOTICE +0 -0
- {databricks_sdk-0.63.0.dist-info → databricks_sdk-0.65.0.dist-info}/top_level.txt +0 -0
databricks/sdk/service/ml.py
CHANGED
|
@@ -1210,51 +1210,6 @@ class ExperimentTag:
|
|
|
1210
1210
|
return cls(key=d.get("key", None), value=d.get("value", None))
|
|
1211
1211
|
|
|
1212
1212
|
|
|
1213
|
-
@dataclass
|
|
1214
|
-
class Feature:
|
|
1215
|
-
"""Feature for model version."""
|
|
1216
|
-
|
|
1217
|
-
feature_name: Optional[str] = None
|
|
1218
|
-
"""Feature name"""
|
|
1219
|
-
|
|
1220
|
-
feature_table_id: Optional[str] = None
|
|
1221
|
-
"""Feature table id"""
|
|
1222
|
-
|
|
1223
|
-
feature_table_name: Optional[str] = None
|
|
1224
|
-
"""Feature table name"""
|
|
1225
|
-
|
|
1226
|
-
def as_dict(self) -> dict:
|
|
1227
|
-
"""Serializes the Feature into a dictionary suitable for use as a JSON request body."""
|
|
1228
|
-
body = {}
|
|
1229
|
-
if self.feature_name is not None:
|
|
1230
|
-
body["feature_name"] = self.feature_name
|
|
1231
|
-
if self.feature_table_id is not None:
|
|
1232
|
-
body["feature_table_id"] = self.feature_table_id
|
|
1233
|
-
if self.feature_table_name is not None:
|
|
1234
|
-
body["feature_table_name"] = self.feature_table_name
|
|
1235
|
-
return body
|
|
1236
|
-
|
|
1237
|
-
def as_shallow_dict(self) -> dict:
|
|
1238
|
-
"""Serializes the Feature into a shallow dictionary of its immediate attributes."""
|
|
1239
|
-
body = {}
|
|
1240
|
-
if self.feature_name is not None:
|
|
1241
|
-
body["feature_name"] = self.feature_name
|
|
1242
|
-
if self.feature_table_id is not None:
|
|
1243
|
-
body["feature_table_id"] = self.feature_table_id
|
|
1244
|
-
if self.feature_table_name is not None:
|
|
1245
|
-
body["feature_table_name"] = self.feature_table_name
|
|
1246
|
-
return body
|
|
1247
|
-
|
|
1248
|
-
@classmethod
|
|
1249
|
-
def from_dict(cls, d: Dict[str, Any]) -> Feature:
|
|
1250
|
-
"""Deserializes the Feature from a dictionary."""
|
|
1251
|
-
return cls(
|
|
1252
|
-
feature_name=d.get("feature_name", None),
|
|
1253
|
-
feature_table_id=d.get("feature_table_id", None),
|
|
1254
|
-
feature_table_name=d.get("feature_table_name", None),
|
|
1255
|
-
)
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
1213
|
@dataclass
|
|
1259
1214
|
class FeatureLineage:
|
|
1260
1215
|
feature_specs: Optional[List[FeatureLineageFeatureSpec]] = None
|
|
@@ -1391,7 +1346,7 @@ class FeatureLineageOnlineFeature:
|
|
|
1391
1346
|
class FeatureList:
|
|
1392
1347
|
"""Feature list wrap all the features for a model version"""
|
|
1393
1348
|
|
|
1394
|
-
features: Optional[List[
|
|
1349
|
+
features: Optional[List[LinkedFeature]] = None
|
|
1395
1350
|
|
|
1396
1351
|
def as_dict(self) -> dict:
|
|
1397
1352
|
"""Serializes the FeatureList into a dictionary suitable for use as a JSON request body."""
|
|
@@ -1410,7 +1365,7 @@ class FeatureList:
|
|
|
1410
1365
|
@classmethod
|
|
1411
1366
|
def from_dict(cls, d: Dict[str, Any]) -> FeatureList:
|
|
1412
1367
|
"""Deserializes the FeatureList from a dictionary."""
|
|
1413
|
-
return cls(features=_repeated_dict(d, "features",
|
|
1368
|
+
return cls(features=_repeated_dict(d, "features", LinkedFeature))
|
|
1414
1369
|
|
|
1415
1370
|
|
|
1416
1371
|
@dataclass
|
|
@@ -2054,6 +2009,51 @@ class JobSpecWithoutSecret:
|
|
|
2054
2009
|
return cls(job_id=d.get("job_id", None), workspace_url=d.get("workspace_url", None))
|
|
2055
2010
|
|
|
2056
2011
|
|
|
2012
|
+
@dataclass
|
|
2013
|
+
class LinkedFeature:
|
|
2014
|
+
"""Feature for model version. ([ML-57150] Renamed from Feature to LinkedFeature)"""
|
|
2015
|
+
|
|
2016
|
+
feature_name: Optional[str] = None
|
|
2017
|
+
"""Feature name"""
|
|
2018
|
+
|
|
2019
|
+
feature_table_id: Optional[str] = None
|
|
2020
|
+
"""Feature table id"""
|
|
2021
|
+
|
|
2022
|
+
feature_table_name: Optional[str] = None
|
|
2023
|
+
"""Feature table name"""
|
|
2024
|
+
|
|
2025
|
+
def as_dict(self) -> dict:
|
|
2026
|
+
"""Serializes the LinkedFeature into a dictionary suitable for use as a JSON request body."""
|
|
2027
|
+
body = {}
|
|
2028
|
+
if self.feature_name is not None:
|
|
2029
|
+
body["feature_name"] = self.feature_name
|
|
2030
|
+
if self.feature_table_id is not None:
|
|
2031
|
+
body["feature_table_id"] = self.feature_table_id
|
|
2032
|
+
if self.feature_table_name is not None:
|
|
2033
|
+
body["feature_table_name"] = self.feature_table_name
|
|
2034
|
+
return body
|
|
2035
|
+
|
|
2036
|
+
def as_shallow_dict(self) -> dict:
|
|
2037
|
+
"""Serializes the LinkedFeature into a shallow dictionary of its immediate attributes."""
|
|
2038
|
+
body = {}
|
|
2039
|
+
if self.feature_name is not None:
|
|
2040
|
+
body["feature_name"] = self.feature_name
|
|
2041
|
+
if self.feature_table_id is not None:
|
|
2042
|
+
body["feature_table_id"] = self.feature_table_id
|
|
2043
|
+
if self.feature_table_name is not None:
|
|
2044
|
+
body["feature_table_name"] = self.feature_table_name
|
|
2045
|
+
return body
|
|
2046
|
+
|
|
2047
|
+
@classmethod
|
|
2048
|
+
def from_dict(cls, d: Dict[str, Any]) -> LinkedFeature:
|
|
2049
|
+
"""Deserializes the LinkedFeature from a dictionary."""
|
|
2050
|
+
return cls(
|
|
2051
|
+
feature_name=d.get("feature_name", None),
|
|
2052
|
+
feature_table_id=d.get("feature_table_id", None),
|
|
2053
|
+
feature_table_name=d.get("feature_table_name", None),
|
|
2054
|
+
)
|
|
2055
|
+
|
|
2056
|
+
|
|
2057
2057
|
@dataclass
|
|
2058
2058
|
class ListArtifactsResponse:
|
|
2059
2059
|
files: Optional[List[FileInfo]] = None
|
|
@@ -613,6 +613,9 @@ class IngestionPipelineDefinition:
|
|
|
613
613
|
objects: Optional[List[IngestionConfig]] = None
|
|
614
614
|
"""Required. Settings specifying tables to replicate and the destination for the replicated tables."""
|
|
615
615
|
|
|
616
|
+
source_configurations: Optional[List[SourceConfig]] = None
|
|
617
|
+
"""Top-level source configurations"""
|
|
618
|
+
|
|
616
619
|
source_type: Optional[IngestionSourceType] = None
|
|
617
620
|
"""The type of the foreign source. The source type will be inferred from the source connection or
|
|
618
621
|
ingestion gateway. This field is output only and will be ignored if provided."""
|
|
@@ -630,6 +633,8 @@ class IngestionPipelineDefinition:
|
|
|
630
633
|
body["ingestion_gateway_id"] = self.ingestion_gateway_id
|
|
631
634
|
if self.objects:
|
|
632
635
|
body["objects"] = [v.as_dict() for v in self.objects]
|
|
636
|
+
if self.source_configurations:
|
|
637
|
+
body["source_configurations"] = [v.as_dict() for v in self.source_configurations]
|
|
633
638
|
if self.source_type is not None:
|
|
634
639
|
body["source_type"] = self.source_type.value
|
|
635
640
|
if self.table_configuration:
|
|
@@ -645,6 +650,8 @@ class IngestionPipelineDefinition:
|
|
|
645
650
|
body["ingestion_gateway_id"] = self.ingestion_gateway_id
|
|
646
651
|
if self.objects:
|
|
647
652
|
body["objects"] = self.objects
|
|
653
|
+
if self.source_configurations:
|
|
654
|
+
body["source_configurations"] = self.source_configurations
|
|
648
655
|
if self.source_type is not None:
|
|
649
656
|
body["source_type"] = self.source_type
|
|
650
657
|
if self.table_configuration:
|
|
@@ -658,6 +665,7 @@ class IngestionPipelineDefinition:
|
|
|
658
665
|
connection_name=d.get("connection_name", None),
|
|
659
666
|
ingestion_gateway_id=d.get("ingestion_gateway_id", None),
|
|
660
667
|
objects=_repeated_dict(d, "objects", IngestionConfig),
|
|
668
|
+
source_configurations=_repeated_dict(d, "source_configurations", SourceConfig),
|
|
661
669
|
source_type=_enum(d, "source_type", IngestionSourceType),
|
|
662
670
|
table_configuration=_from_dict(d, "table_configuration", TableSpecificConfig),
|
|
663
671
|
)
|
|
@@ -2239,6 +2247,67 @@ class PipelinesEnvironment:
|
|
|
2239
2247
|
return cls(dependencies=d.get("dependencies", None))
|
|
2240
2248
|
|
|
2241
2249
|
|
|
2250
|
+
@dataclass
|
|
2251
|
+
class PostgresCatalogConfig:
|
|
2252
|
+
"""PG-specific catalog-level configuration parameters"""
|
|
2253
|
+
|
|
2254
|
+
slot_config: Optional[PostgresSlotConfig] = None
|
|
2255
|
+
"""Optional. The Postgres slot configuration to use for logical replication"""
|
|
2256
|
+
|
|
2257
|
+
def as_dict(self) -> dict:
|
|
2258
|
+
"""Serializes the PostgresCatalogConfig into a dictionary suitable for use as a JSON request body."""
|
|
2259
|
+
body = {}
|
|
2260
|
+
if self.slot_config:
|
|
2261
|
+
body["slot_config"] = self.slot_config.as_dict()
|
|
2262
|
+
return body
|
|
2263
|
+
|
|
2264
|
+
def as_shallow_dict(self) -> dict:
|
|
2265
|
+
"""Serializes the PostgresCatalogConfig into a shallow dictionary of its immediate attributes."""
|
|
2266
|
+
body = {}
|
|
2267
|
+
if self.slot_config:
|
|
2268
|
+
body["slot_config"] = self.slot_config
|
|
2269
|
+
return body
|
|
2270
|
+
|
|
2271
|
+
@classmethod
|
|
2272
|
+
def from_dict(cls, d: Dict[str, Any]) -> PostgresCatalogConfig:
|
|
2273
|
+
"""Deserializes the PostgresCatalogConfig from a dictionary."""
|
|
2274
|
+
return cls(slot_config=_from_dict(d, "slot_config", PostgresSlotConfig))
|
|
2275
|
+
|
|
2276
|
+
|
|
2277
|
+
@dataclass
|
|
2278
|
+
class PostgresSlotConfig:
|
|
2279
|
+
"""PostgresSlotConfig contains the configuration for a Postgres logical replication slot"""
|
|
2280
|
+
|
|
2281
|
+
publication_name: Optional[str] = None
|
|
2282
|
+
"""The name of the publication to use for the Postgres source"""
|
|
2283
|
+
|
|
2284
|
+
slot_name: Optional[str] = None
|
|
2285
|
+
"""The name of the logical replication slot to use for the Postgres source"""
|
|
2286
|
+
|
|
2287
|
+
def as_dict(self) -> dict:
|
|
2288
|
+
"""Serializes the PostgresSlotConfig into a dictionary suitable for use as a JSON request body."""
|
|
2289
|
+
body = {}
|
|
2290
|
+
if self.publication_name is not None:
|
|
2291
|
+
body["publication_name"] = self.publication_name
|
|
2292
|
+
if self.slot_name is not None:
|
|
2293
|
+
body["slot_name"] = self.slot_name
|
|
2294
|
+
return body
|
|
2295
|
+
|
|
2296
|
+
def as_shallow_dict(self) -> dict:
|
|
2297
|
+
"""Serializes the PostgresSlotConfig into a shallow dictionary of its immediate attributes."""
|
|
2298
|
+
body = {}
|
|
2299
|
+
if self.publication_name is not None:
|
|
2300
|
+
body["publication_name"] = self.publication_name
|
|
2301
|
+
if self.slot_name is not None:
|
|
2302
|
+
body["slot_name"] = self.slot_name
|
|
2303
|
+
return body
|
|
2304
|
+
|
|
2305
|
+
@classmethod
|
|
2306
|
+
def from_dict(cls, d: Dict[str, Any]) -> PostgresSlotConfig:
|
|
2307
|
+
"""Deserializes the PostgresSlotConfig from a dictionary."""
|
|
2308
|
+
return cls(publication_name=d.get("publication_name", None), slot_name=d.get("slot_name", None))
|
|
2309
|
+
|
|
2310
|
+
|
|
2242
2311
|
@dataclass
|
|
2243
2312
|
class ReportSpec:
|
|
2244
2313
|
source_url: str
|
|
@@ -2527,6 +2596,67 @@ class SerializedException:
|
|
|
2527
2596
|
)
|
|
2528
2597
|
|
|
2529
2598
|
|
|
2599
|
+
@dataclass
|
|
2600
|
+
class SourceCatalogConfig:
|
|
2601
|
+
"""SourceCatalogConfig contains catalog-level custom configuration parameters for each source"""
|
|
2602
|
+
|
|
2603
|
+
postgres: Optional[PostgresCatalogConfig] = None
|
|
2604
|
+
"""Postgres-specific catalog-level configuration parameters"""
|
|
2605
|
+
|
|
2606
|
+
source_catalog: Optional[str] = None
|
|
2607
|
+
"""Source catalog name"""
|
|
2608
|
+
|
|
2609
|
+
def as_dict(self) -> dict:
|
|
2610
|
+
"""Serializes the SourceCatalogConfig into a dictionary suitable for use as a JSON request body."""
|
|
2611
|
+
body = {}
|
|
2612
|
+
if self.postgres:
|
|
2613
|
+
body["postgres"] = self.postgres.as_dict()
|
|
2614
|
+
if self.source_catalog is not None:
|
|
2615
|
+
body["source_catalog"] = self.source_catalog
|
|
2616
|
+
return body
|
|
2617
|
+
|
|
2618
|
+
def as_shallow_dict(self) -> dict:
|
|
2619
|
+
"""Serializes the SourceCatalogConfig into a shallow dictionary of its immediate attributes."""
|
|
2620
|
+
body = {}
|
|
2621
|
+
if self.postgres:
|
|
2622
|
+
body["postgres"] = self.postgres
|
|
2623
|
+
if self.source_catalog is not None:
|
|
2624
|
+
body["source_catalog"] = self.source_catalog
|
|
2625
|
+
return body
|
|
2626
|
+
|
|
2627
|
+
@classmethod
|
|
2628
|
+
def from_dict(cls, d: Dict[str, Any]) -> SourceCatalogConfig:
|
|
2629
|
+
"""Deserializes the SourceCatalogConfig from a dictionary."""
|
|
2630
|
+
return cls(
|
|
2631
|
+
postgres=_from_dict(d, "postgres", PostgresCatalogConfig), source_catalog=d.get("source_catalog", None)
|
|
2632
|
+
)
|
|
2633
|
+
|
|
2634
|
+
|
|
2635
|
+
@dataclass
|
|
2636
|
+
class SourceConfig:
|
|
2637
|
+
catalog: Optional[SourceCatalogConfig] = None
|
|
2638
|
+
"""Catalog-level source configuration parameters"""
|
|
2639
|
+
|
|
2640
|
+
def as_dict(self) -> dict:
|
|
2641
|
+
"""Serializes the SourceConfig into a dictionary suitable for use as a JSON request body."""
|
|
2642
|
+
body = {}
|
|
2643
|
+
if self.catalog:
|
|
2644
|
+
body["catalog"] = self.catalog.as_dict()
|
|
2645
|
+
return body
|
|
2646
|
+
|
|
2647
|
+
def as_shallow_dict(self) -> dict:
|
|
2648
|
+
"""Serializes the SourceConfig into a shallow dictionary of its immediate attributes."""
|
|
2649
|
+
body = {}
|
|
2650
|
+
if self.catalog:
|
|
2651
|
+
body["catalog"] = self.catalog
|
|
2652
|
+
return body
|
|
2653
|
+
|
|
2654
|
+
@classmethod
|
|
2655
|
+
def from_dict(cls, d: Dict[str, Any]) -> SourceConfig:
|
|
2656
|
+
"""Deserializes the SourceConfig from a dictionary."""
|
|
2657
|
+
return cls(catalog=_from_dict(d, "catalog", SourceCatalogConfig))
|
|
2658
|
+
|
|
2659
|
+
|
|
2530
2660
|
@dataclass
|
|
2531
2661
|
class StackFrame:
|
|
2532
2662
|
declaring_class: Optional[str] = None
|
|
@@ -314,6 +314,9 @@ class AiGatewayRateLimit:
|
|
|
314
314
|
"""Principal field for a user, user group, or service principal to apply rate limiting to. Accepts
|
|
315
315
|
a user email, group name, or service principal application ID."""
|
|
316
316
|
|
|
317
|
+
tokens: Optional[int] = None
|
|
318
|
+
"""Used to specify how many tokens are allowed for a key within the renewal_period."""
|
|
319
|
+
|
|
317
320
|
def as_dict(self) -> dict:
|
|
318
321
|
"""Serializes the AiGatewayRateLimit into a dictionary suitable for use as a JSON request body."""
|
|
319
322
|
body = {}
|
|
@@ -325,6 +328,8 @@ class AiGatewayRateLimit:
|
|
|
325
328
|
body["principal"] = self.principal
|
|
326
329
|
if self.renewal_period is not None:
|
|
327
330
|
body["renewal_period"] = self.renewal_period.value
|
|
331
|
+
if self.tokens is not None:
|
|
332
|
+
body["tokens"] = self.tokens
|
|
328
333
|
return body
|
|
329
334
|
|
|
330
335
|
def as_shallow_dict(self) -> dict:
|
|
@@ -338,6 +343,8 @@ class AiGatewayRateLimit:
|
|
|
338
343
|
body["principal"] = self.principal
|
|
339
344
|
if self.renewal_period is not None:
|
|
340
345
|
body["renewal_period"] = self.renewal_period
|
|
346
|
+
if self.tokens is not None:
|
|
347
|
+
body["tokens"] = self.tokens
|
|
341
348
|
return body
|
|
342
349
|
|
|
343
350
|
@classmethod
|
|
@@ -348,6 +355,7 @@ class AiGatewayRateLimit:
|
|
|
348
355
|
key=_enum(d, "key", AiGatewayRateLimitKey),
|
|
349
356
|
principal=d.get("principal", None),
|
|
350
357
|
renewal_period=_enum(d, "renewal_period", AiGatewayRateLimitRenewalPeriod),
|
|
358
|
+
tokens=d.get("tokens", None),
|
|
351
359
|
)
|
|
352
360
|
|
|
353
361
|
|
|
@@ -3374,6 +3382,9 @@ class ServingEndpoint:
|
|
|
3374
3382
|
task: Optional[str] = None
|
|
3375
3383
|
"""The task type of the serving endpoint."""
|
|
3376
3384
|
|
|
3385
|
+
usage_policy_id: Optional[str] = None
|
|
3386
|
+
"""The usage policy associated with serving endpoint."""
|
|
3387
|
+
|
|
3377
3388
|
def as_dict(self) -> dict:
|
|
3378
3389
|
"""Serializes the ServingEndpoint into a dictionary suitable for use as a JSON request body."""
|
|
3379
3390
|
body = {}
|
|
@@ -3401,6 +3412,8 @@ class ServingEndpoint:
|
|
|
3401
3412
|
body["tags"] = [v.as_dict() for v in self.tags]
|
|
3402
3413
|
if self.task is not None:
|
|
3403
3414
|
body["task"] = self.task
|
|
3415
|
+
if self.usage_policy_id is not None:
|
|
3416
|
+
body["usage_policy_id"] = self.usage_policy_id
|
|
3404
3417
|
return body
|
|
3405
3418
|
|
|
3406
3419
|
def as_shallow_dict(self) -> dict:
|
|
@@ -3430,6 +3443,8 @@ class ServingEndpoint:
|
|
|
3430
3443
|
body["tags"] = self.tags
|
|
3431
3444
|
if self.task is not None:
|
|
3432
3445
|
body["task"] = self.task
|
|
3446
|
+
if self.usage_policy_id is not None:
|
|
3447
|
+
body["usage_policy_id"] = self.usage_policy_id
|
|
3433
3448
|
return body
|
|
3434
3449
|
|
|
3435
3450
|
@classmethod
|
|
@@ -3448,6 +3463,7 @@ class ServingEndpoint:
|
|
|
3448
3463
|
state=_from_dict(d, "state", EndpointState),
|
|
3449
3464
|
tags=_repeated_dict(d, "tags", EndpointTag),
|
|
3450
3465
|
task=d.get("task", None),
|
|
3466
|
+
usage_policy_id=d.get("usage_policy_id", None),
|
|
3451
3467
|
)
|
|
3452
3468
|
|
|
3453
3469
|
|
|
@@ -3587,8 +3587,32 @@ class LlmProxyPartnerPoweredWorkspace:
|
|
|
3587
3587
|
|
|
3588
3588
|
@dataclass
|
|
3589
3589
|
class MicrosoftTeamsConfig:
|
|
3590
|
+
app_id: Optional[str] = None
|
|
3591
|
+
"""[Input-Only] App ID for Microsoft Teams App."""
|
|
3592
|
+
|
|
3593
|
+
app_id_set: Optional[bool] = None
|
|
3594
|
+
"""[Output-Only] Whether App ID is set."""
|
|
3595
|
+
|
|
3596
|
+
auth_secret: Optional[str] = None
|
|
3597
|
+
"""[Input-Only] Secret for Microsoft Teams App authentication."""
|
|
3598
|
+
|
|
3599
|
+
auth_secret_set: Optional[bool] = None
|
|
3600
|
+
"""[Output-Only] Whether secret is set."""
|
|
3601
|
+
|
|
3602
|
+
channel_url: Optional[str] = None
|
|
3603
|
+
"""[Input-Only] Channel URL for Microsoft Teams App."""
|
|
3604
|
+
|
|
3605
|
+
channel_url_set: Optional[bool] = None
|
|
3606
|
+
"""[Output-Only] Whether Channel URL is set."""
|
|
3607
|
+
|
|
3608
|
+
tenant_id: Optional[str] = None
|
|
3609
|
+
"""[Input-Only] Tenant ID for Microsoft Teams App."""
|
|
3610
|
+
|
|
3611
|
+
tenant_id_set: Optional[bool] = None
|
|
3612
|
+
"""[Output-Only] Whether Tenant ID is set."""
|
|
3613
|
+
|
|
3590
3614
|
url: Optional[str] = None
|
|
3591
|
-
"""[Input-Only] URL for Microsoft Teams."""
|
|
3615
|
+
"""[Input-Only] URL for Microsoft Teams webhook."""
|
|
3592
3616
|
|
|
3593
3617
|
url_set: Optional[bool] = None
|
|
3594
3618
|
"""[Output-Only] Whether URL is set."""
|
|
@@ -3596,6 +3620,22 @@ class MicrosoftTeamsConfig:
|
|
|
3596
3620
|
def as_dict(self) -> dict:
|
|
3597
3621
|
"""Serializes the MicrosoftTeamsConfig into a dictionary suitable for use as a JSON request body."""
|
|
3598
3622
|
body = {}
|
|
3623
|
+
if self.app_id is not None:
|
|
3624
|
+
body["app_id"] = self.app_id
|
|
3625
|
+
if self.app_id_set is not None:
|
|
3626
|
+
body["app_id_set"] = self.app_id_set
|
|
3627
|
+
if self.auth_secret is not None:
|
|
3628
|
+
body["auth_secret"] = self.auth_secret
|
|
3629
|
+
if self.auth_secret_set is not None:
|
|
3630
|
+
body["auth_secret_set"] = self.auth_secret_set
|
|
3631
|
+
if self.channel_url is not None:
|
|
3632
|
+
body["channel_url"] = self.channel_url
|
|
3633
|
+
if self.channel_url_set is not None:
|
|
3634
|
+
body["channel_url_set"] = self.channel_url_set
|
|
3635
|
+
if self.tenant_id is not None:
|
|
3636
|
+
body["tenant_id"] = self.tenant_id
|
|
3637
|
+
if self.tenant_id_set is not None:
|
|
3638
|
+
body["tenant_id_set"] = self.tenant_id_set
|
|
3599
3639
|
if self.url is not None:
|
|
3600
3640
|
body["url"] = self.url
|
|
3601
3641
|
if self.url_set is not None:
|
|
@@ -3605,6 +3645,22 @@ class MicrosoftTeamsConfig:
|
|
|
3605
3645
|
def as_shallow_dict(self) -> dict:
|
|
3606
3646
|
"""Serializes the MicrosoftTeamsConfig into a shallow dictionary of its immediate attributes."""
|
|
3607
3647
|
body = {}
|
|
3648
|
+
if self.app_id is not None:
|
|
3649
|
+
body["app_id"] = self.app_id
|
|
3650
|
+
if self.app_id_set is not None:
|
|
3651
|
+
body["app_id_set"] = self.app_id_set
|
|
3652
|
+
if self.auth_secret is not None:
|
|
3653
|
+
body["auth_secret"] = self.auth_secret
|
|
3654
|
+
if self.auth_secret_set is not None:
|
|
3655
|
+
body["auth_secret_set"] = self.auth_secret_set
|
|
3656
|
+
if self.channel_url is not None:
|
|
3657
|
+
body["channel_url"] = self.channel_url
|
|
3658
|
+
if self.channel_url_set is not None:
|
|
3659
|
+
body["channel_url_set"] = self.channel_url_set
|
|
3660
|
+
if self.tenant_id is not None:
|
|
3661
|
+
body["tenant_id"] = self.tenant_id
|
|
3662
|
+
if self.tenant_id_set is not None:
|
|
3663
|
+
body["tenant_id_set"] = self.tenant_id_set
|
|
3608
3664
|
if self.url is not None:
|
|
3609
3665
|
body["url"] = self.url
|
|
3610
3666
|
if self.url_set is not None:
|
|
@@ -3614,7 +3670,18 @@ class MicrosoftTeamsConfig:
|
|
|
3614
3670
|
@classmethod
|
|
3615
3671
|
def from_dict(cls, d: Dict[str, Any]) -> MicrosoftTeamsConfig:
|
|
3616
3672
|
"""Deserializes the MicrosoftTeamsConfig from a dictionary."""
|
|
3617
|
-
return cls(
|
|
3673
|
+
return cls(
|
|
3674
|
+
app_id=d.get("app_id", None),
|
|
3675
|
+
app_id_set=d.get("app_id_set", None),
|
|
3676
|
+
auth_secret=d.get("auth_secret", None),
|
|
3677
|
+
auth_secret_set=d.get("auth_secret_set", None),
|
|
3678
|
+
channel_url=d.get("channel_url", None),
|
|
3679
|
+
channel_url_set=d.get("channel_url_set", None),
|
|
3680
|
+
tenant_id=d.get("tenant_id", None),
|
|
3681
|
+
tenant_id_set=d.get("tenant_id_set", None),
|
|
3682
|
+
url=d.get("url", None),
|
|
3683
|
+
url_set=d.get("url_set", None),
|
|
3684
|
+
)
|
|
3618
3685
|
|
|
3619
3686
|
|
|
3620
3687
|
@dataclass
|