databricks-sdk 0.38.0__py3-none-any.whl → 0.39.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.

Files changed (29) hide show
  1. databricks/sdk/__init__.py +21 -0
  2. databricks/sdk/mixins/open_ai_client.py +2 -2
  3. databricks/sdk/service/apps.py +175 -0
  4. databricks/sdk/service/billing.py +247 -0
  5. databricks/sdk/service/catalog.py +1794 -61
  6. databricks/sdk/service/cleanrooms.py +1281 -0
  7. databricks/sdk/service/compute.py +1486 -8
  8. databricks/sdk/service/dashboards.py +326 -1
  9. databricks/sdk/service/files.py +162 -2
  10. databricks/sdk/service/iam.py +351 -0
  11. databricks/sdk/service/jobs.py +1264 -8
  12. databricks/sdk/service/marketplace.py +688 -0
  13. databricks/sdk/service/ml.py +1038 -2
  14. databricks/sdk/service/oauth2.py +175 -0
  15. databricks/sdk/service/pipelines.py +520 -0
  16. databricks/sdk/service/provisioning.py +387 -0
  17. databricks/sdk/service/serving.py +615 -0
  18. databricks/sdk/service/settings.py +1186 -1
  19. databricks/sdk/service/sharing.py +326 -2
  20. databricks/sdk/service/sql.py +1186 -2
  21. databricks/sdk/service/vectorsearch.py +290 -0
  22. databricks/sdk/service/workspace.py +451 -0
  23. databricks/sdk/version.py +1 -1
  24. {databricks_sdk-0.38.0.dist-info → databricks_sdk-0.39.0.dist-info}/METADATA +26 -26
  25. {databricks_sdk-0.38.0.dist-info → databricks_sdk-0.39.0.dist-info}/RECORD +29 -28
  26. {databricks_sdk-0.38.0.dist-info → databricks_sdk-0.39.0.dist-info}/WHEEL +1 -1
  27. {databricks_sdk-0.38.0.dist-info → databricks_sdk-0.39.0.dist-info}/LICENSE +0 -0
  28. {databricks_sdk-0.38.0.dist-info → databricks_sdk-0.39.0.dist-info}/NOTICE +0 -0
  29. {databricks_sdk-0.38.0.dist-info → databricks_sdk-0.39.0.dist-info}/top_level.txt +0 -0
@@ -24,6 +24,12 @@ class AibiDashboardEmbeddingAccessPolicy:
24
24
  if self.access_policy_type is not None: body['access_policy_type'] = self.access_policy_type.value
25
25
  return body
26
26
 
27
+ def as_shallow_dict(self) -> dict:
28
+ """Serializes the AibiDashboardEmbeddingAccessPolicy into a shallow dictionary of its immediate attributes."""
29
+ body = {}
30
+ if self.access_policy_type is not None: body['access_policy_type'] = self.access_policy_type
31
+ return body
32
+
27
33
  @classmethod
28
34
  def from_dict(cls, d: Dict[str, any]) -> AibiDashboardEmbeddingAccessPolicy:
29
35
  """Deserializes the AibiDashboardEmbeddingAccessPolicy from a dictionary."""
@@ -67,6 +73,15 @@ class AibiDashboardEmbeddingAccessPolicySetting:
67
73
  if self.setting_name is not None: body['setting_name'] = self.setting_name
68
74
  return body
69
75
 
76
+ def as_shallow_dict(self) -> dict:
77
+ """Serializes the AibiDashboardEmbeddingAccessPolicySetting into a shallow dictionary of its immediate attributes."""
78
+ body = {}
79
+ if self.aibi_dashboard_embedding_access_policy:
80
+ body['aibi_dashboard_embedding_access_policy'] = self.aibi_dashboard_embedding_access_policy
81
+ if self.etag is not None: body['etag'] = self.etag
82
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
83
+ return body
84
+
70
85
  @classmethod
71
86
  def from_dict(cls, d: Dict[str, any]) -> AibiDashboardEmbeddingAccessPolicySetting:
72
87
  """Deserializes the AibiDashboardEmbeddingAccessPolicySetting from a dictionary."""
@@ -86,6 +101,12 @@ class AibiDashboardEmbeddingApprovedDomains:
86
101
  if self.approved_domains: body['approved_domains'] = [v for v in self.approved_domains]
87
102
  return body
88
103
 
104
+ def as_shallow_dict(self) -> dict:
105
+ """Serializes the AibiDashboardEmbeddingApprovedDomains into a shallow dictionary of its immediate attributes."""
106
+ body = {}
107
+ if self.approved_domains: body['approved_domains'] = self.approved_domains
108
+ return body
109
+
89
110
  @classmethod
90
111
  def from_dict(cls, d: Dict[str, any]) -> AibiDashboardEmbeddingApprovedDomains:
91
112
  """Deserializes the AibiDashboardEmbeddingApprovedDomains from a dictionary."""
@@ -121,6 +142,15 @@ class AibiDashboardEmbeddingApprovedDomainsSetting:
121
142
  if self.setting_name is not None: body['setting_name'] = self.setting_name
122
143
  return body
123
144
 
145
+ def as_shallow_dict(self) -> dict:
146
+ """Serializes the AibiDashboardEmbeddingApprovedDomainsSetting into a shallow dictionary of its immediate attributes."""
147
+ body = {}
148
+ if self.aibi_dashboard_embedding_approved_domains:
149
+ body['aibi_dashboard_embedding_approved_domains'] = self.aibi_dashboard_embedding_approved_domains
150
+ if self.etag is not None: body['etag'] = self.etag
151
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
152
+ return body
153
+
124
154
  @classmethod
125
155
  def from_dict(cls, d: Dict[str, any]) -> AibiDashboardEmbeddingApprovedDomainsSetting:
126
156
  """Deserializes the AibiDashboardEmbeddingApprovedDomainsSetting from a dictionary."""
@@ -157,6 +187,15 @@ class AutomaticClusterUpdateSetting:
157
187
  if self.setting_name is not None: body['setting_name'] = self.setting_name
158
188
  return body
159
189
 
190
+ def as_shallow_dict(self) -> dict:
191
+ """Serializes the AutomaticClusterUpdateSetting into a shallow dictionary of its immediate attributes."""
192
+ body = {}
193
+ if self.automatic_cluster_update_workspace:
194
+ body['automatic_cluster_update_workspace'] = self.automatic_cluster_update_workspace
195
+ if self.etag is not None: body['etag'] = self.etag
196
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
197
+ return body
198
+
160
199
  @classmethod
161
200
  def from_dict(cls, d: Dict[str, any]) -> AutomaticClusterUpdateSetting:
162
201
  """Deserializes the AutomaticClusterUpdateSetting from a dictionary."""
@@ -176,6 +215,12 @@ class BooleanMessage:
176
215
  if self.value is not None: body['value'] = self.value
177
216
  return body
178
217
 
218
+ def as_shallow_dict(self) -> dict:
219
+ """Serializes the BooleanMessage into a shallow dictionary of its immediate attributes."""
220
+ body = {}
221
+ if self.value is not None: body['value'] = self.value
222
+ return body
223
+
179
224
  @classmethod
180
225
  def from_dict(cls, d: Dict[str, any]) -> BooleanMessage:
181
226
  """Deserializes the BooleanMessage from a dictionary."""
@@ -210,6 +255,17 @@ class ClusterAutoRestartMessage:
210
255
  body['restart_even_if_no_updates_available'] = self.restart_even_if_no_updates_available
211
256
  return body
212
257
 
258
+ def as_shallow_dict(self) -> dict:
259
+ """Serializes the ClusterAutoRestartMessage into a shallow dictionary of its immediate attributes."""
260
+ body = {}
261
+ if self.can_toggle is not None: body['can_toggle'] = self.can_toggle
262
+ if self.enabled is not None: body['enabled'] = self.enabled
263
+ if self.enablement_details: body['enablement_details'] = self.enablement_details
264
+ if self.maintenance_window: body['maintenance_window'] = self.maintenance_window
265
+ if self.restart_even_if_no_updates_available is not None:
266
+ body['restart_even_if_no_updates_available'] = self.restart_even_if_no_updates_available
267
+ return body
268
+
213
269
  @classmethod
214
270
  def from_dict(cls, d: Dict[str, any]) -> ClusterAutoRestartMessage:
215
271
  """Deserializes the ClusterAutoRestartMessage from a dictionary."""
@@ -251,6 +307,17 @@ class ClusterAutoRestartMessageEnablementDetails:
251
307
  body['unavailable_for_non_enterprise_tier'] = self.unavailable_for_non_enterprise_tier
252
308
  return body
253
309
 
310
+ def as_shallow_dict(self) -> dict:
311
+ """Serializes the ClusterAutoRestartMessageEnablementDetails into a shallow dictionary of its immediate attributes."""
312
+ body = {}
313
+ if self.forced_for_compliance_mode is not None:
314
+ body['forced_for_compliance_mode'] = self.forced_for_compliance_mode
315
+ if self.unavailable_for_disabled_entitlement is not None:
316
+ body['unavailable_for_disabled_entitlement'] = self.unavailable_for_disabled_entitlement
317
+ if self.unavailable_for_non_enterprise_tier is not None:
318
+ body['unavailable_for_non_enterprise_tier'] = self.unavailable_for_non_enterprise_tier
319
+ return body
320
+
254
321
  @classmethod
255
322
  def from_dict(cls, d: Dict[str, any]) -> ClusterAutoRestartMessageEnablementDetails:
256
323
  """Deserializes the ClusterAutoRestartMessageEnablementDetails from a dictionary."""
@@ -270,6 +337,12 @@ class ClusterAutoRestartMessageMaintenanceWindow:
270
337
  body['week_day_based_schedule'] = self.week_day_based_schedule.as_dict()
271
338
  return body
272
339
 
340
+ def as_shallow_dict(self) -> dict:
341
+ """Serializes the ClusterAutoRestartMessageMaintenanceWindow into a shallow dictionary of its immediate attributes."""
342
+ body = {}
343
+ if self.week_day_based_schedule: body['week_day_based_schedule'] = self.week_day_based_schedule
344
+ return body
345
+
273
346
  @classmethod
274
347
  def from_dict(cls, d: Dict[str, any]) -> ClusterAutoRestartMessageMaintenanceWindow:
275
348
  """Deserializes the ClusterAutoRestartMessageMaintenanceWindow from a dictionary."""
@@ -304,6 +377,14 @@ class ClusterAutoRestartMessageMaintenanceWindowWeekDayBasedSchedule:
304
377
  if self.window_start_time: body['window_start_time'] = self.window_start_time.as_dict()
305
378
  return body
306
379
 
380
+ def as_shallow_dict(self) -> dict:
381
+ """Serializes the ClusterAutoRestartMessageMaintenanceWindowWeekDayBasedSchedule into a shallow dictionary of its immediate attributes."""
382
+ body = {}
383
+ if self.day_of_week is not None: body['day_of_week'] = self.day_of_week
384
+ if self.frequency is not None: body['frequency'] = self.frequency
385
+ if self.window_start_time: body['window_start_time'] = self.window_start_time
386
+ return body
387
+
307
388
  @classmethod
308
389
  def from_dict(cls, d: Dict[str, any]) -> ClusterAutoRestartMessageMaintenanceWindowWeekDayBasedSchedule:
309
390
  """Deserializes the ClusterAutoRestartMessageMaintenanceWindowWeekDayBasedSchedule from a dictionary."""
@@ -338,6 +419,13 @@ class ClusterAutoRestartMessageMaintenanceWindowWindowStartTime:
338
419
  if self.minutes is not None: body['minutes'] = self.minutes
339
420
  return body
340
421
 
422
+ def as_shallow_dict(self) -> dict:
423
+ """Serializes the ClusterAutoRestartMessageMaintenanceWindowWindowStartTime into a shallow dictionary of its immediate attributes."""
424
+ body = {}
425
+ if self.hours is not None: body['hours'] = self.hours
426
+ if self.minutes is not None: body['minutes'] = self.minutes
427
+ return body
428
+
341
429
  @classmethod
342
430
  def from_dict(cls, d: Dict[str, any]) -> ClusterAutoRestartMessageMaintenanceWindowWindowStartTime:
343
431
  """Deserializes the ClusterAutoRestartMessageMaintenanceWindowWindowStartTime from a dictionary."""
@@ -361,6 +449,13 @@ class ComplianceSecurityProfile:
361
449
  if self.is_enabled is not None: body['is_enabled'] = self.is_enabled
362
450
  return body
363
451
 
452
+ def as_shallow_dict(self) -> dict:
453
+ """Serializes the ComplianceSecurityProfile into a shallow dictionary of its immediate attributes."""
454
+ body = {}
455
+ if self.compliance_standards: body['compliance_standards'] = self.compliance_standards
456
+ if self.is_enabled is not None: body['is_enabled'] = self.is_enabled
457
+ return body
458
+
364
459
  @classmethod
365
460
  def from_dict(cls, d: Dict[str, any]) -> ComplianceSecurityProfile:
366
461
  """Deserializes the ComplianceSecurityProfile from a dictionary."""
@@ -398,6 +493,15 @@ class ComplianceSecurityProfileSetting:
398
493
  if self.setting_name is not None: body['setting_name'] = self.setting_name
399
494
  return body
400
495
 
496
+ def as_shallow_dict(self) -> dict:
497
+ """Serializes the ComplianceSecurityProfileSetting into a shallow dictionary of its immediate attributes."""
498
+ body = {}
499
+ if self.compliance_security_profile_workspace:
500
+ body['compliance_security_profile_workspace'] = self.compliance_security_profile_workspace
501
+ if self.etag is not None: body['etag'] = self.etag
502
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
503
+ return body
504
+
401
505
  @classmethod
402
506
  def from_dict(cls, d: Dict[str, any]) -> ComplianceSecurityProfileSetting:
403
507
  """Deserializes the ComplianceSecurityProfileSetting from a dictionary."""
@@ -445,6 +549,16 @@ class Config:
445
549
  if self.slack: body['slack'] = self.slack.as_dict()
446
550
  return body
447
551
 
552
+ def as_shallow_dict(self) -> dict:
553
+ """Serializes the Config into a shallow dictionary of its immediate attributes."""
554
+ body = {}
555
+ if self.email: body['email'] = self.email
556
+ if self.generic_webhook: body['generic_webhook'] = self.generic_webhook
557
+ if self.microsoft_teams: body['microsoft_teams'] = self.microsoft_teams
558
+ if self.pagerduty: body['pagerduty'] = self.pagerduty
559
+ if self.slack: body['slack'] = self.slack
560
+ return body
561
+
448
562
  @classmethod
449
563
  def from_dict(cls, d: Dict[str, any]) -> Config:
450
564
  """Deserializes the Config from a dictionary."""
@@ -478,6 +592,14 @@ class CreateIpAccessList:
478
592
  if self.list_type is not None: body['list_type'] = self.list_type.value
479
593
  return body
480
594
 
595
+ def as_shallow_dict(self) -> dict:
596
+ """Serializes the CreateIpAccessList into a shallow dictionary of its immediate attributes."""
597
+ body = {}
598
+ if self.ip_addresses: body['ip_addresses'] = self.ip_addresses
599
+ if self.label is not None: body['label'] = self.label
600
+ if self.list_type is not None: body['list_type'] = self.list_type
601
+ return body
602
+
481
603
  @classmethod
482
604
  def from_dict(cls, d: Dict[str, any]) -> CreateIpAccessList:
483
605
  """Deserializes the CreateIpAccessList from a dictionary."""
@@ -499,6 +621,12 @@ class CreateIpAccessListResponse:
499
621
  if self.ip_access_list: body['ip_access_list'] = self.ip_access_list.as_dict()
500
622
  return body
501
623
 
624
+ def as_shallow_dict(self) -> dict:
625
+ """Serializes the CreateIpAccessListResponse into a shallow dictionary of its immediate attributes."""
626
+ body = {}
627
+ if self.ip_access_list: body['ip_access_list'] = self.ip_access_list
628
+ return body
629
+
502
630
  @classmethod
503
631
  def from_dict(cls, d: Dict[str, any]) -> CreateIpAccessListResponse:
504
632
  """Deserializes the CreateIpAccessListResponse from a dictionary."""
@@ -523,6 +651,13 @@ class CreateNetworkConnectivityConfigRequest:
523
651
  if self.region is not None: body['region'] = self.region
524
652
  return body
525
653
 
654
+ def as_shallow_dict(self) -> dict:
655
+ """Serializes the CreateNetworkConnectivityConfigRequest into a shallow dictionary of its immediate attributes."""
656
+ body = {}
657
+ if self.name is not None: body['name'] = self.name
658
+ if self.region is not None: body['region'] = self.region
659
+ return body
660
+
526
661
  @classmethod
527
662
  def from_dict(cls, d: Dict[str, any]) -> CreateNetworkConnectivityConfigRequest:
528
663
  """Deserializes the CreateNetworkConnectivityConfigRequest from a dictionary."""
@@ -544,6 +679,13 @@ class CreateNotificationDestinationRequest:
544
679
  if self.display_name is not None: body['display_name'] = self.display_name
545
680
  return body
546
681
 
682
+ def as_shallow_dict(self) -> dict:
683
+ """Serializes the CreateNotificationDestinationRequest into a shallow dictionary of its immediate attributes."""
684
+ body = {}
685
+ if self.config: body['config'] = self.config
686
+ if self.display_name is not None: body['display_name'] = self.display_name
687
+ return body
688
+
547
689
  @classmethod
548
690
  def from_dict(cls, d: Dict[str, any]) -> CreateNotificationDestinationRequest:
549
691
  """Deserializes the CreateNotificationDestinationRequest from a dictionary."""
@@ -571,6 +713,14 @@ class CreateOboTokenRequest:
571
713
  if self.lifetime_seconds is not None: body['lifetime_seconds'] = self.lifetime_seconds
572
714
  return body
573
715
 
716
+ def as_shallow_dict(self) -> dict:
717
+ """Serializes the CreateOboTokenRequest into a shallow dictionary of its immediate attributes."""
718
+ body = {}
719
+ if self.application_id is not None: body['application_id'] = self.application_id
720
+ if self.comment is not None: body['comment'] = self.comment
721
+ if self.lifetime_seconds is not None: body['lifetime_seconds'] = self.lifetime_seconds
722
+ return body
723
+
574
724
  @classmethod
575
725
  def from_dict(cls, d: Dict[str, any]) -> CreateOboTokenRequest:
576
726
  """Deserializes the CreateOboTokenRequest from a dictionary."""
@@ -595,6 +745,13 @@ class CreateOboTokenResponse:
595
745
  if self.token_value is not None: body['token_value'] = self.token_value
596
746
  return body
597
747
 
748
+ def as_shallow_dict(self) -> dict:
749
+ """Serializes the CreateOboTokenResponse into a shallow dictionary of its immediate attributes."""
750
+ body = {}
751
+ if self.token_info: body['token_info'] = self.token_info
752
+ if self.token_value is not None: body['token_value'] = self.token_value
753
+ return body
754
+
598
755
  @classmethod
599
756
  def from_dict(cls, d: Dict[str, any]) -> CreateOboTokenResponse:
600
757
  """Deserializes the CreateOboTokenResponse from a dictionary."""
@@ -622,6 +779,15 @@ class CreatePrivateEndpointRuleRequest:
622
779
  if self.resource_id is not None: body['resource_id'] = self.resource_id
623
780
  return body
624
781
 
782
+ def as_shallow_dict(self) -> dict:
783
+ """Serializes the CreatePrivateEndpointRuleRequest into a shallow dictionary of its immediate attributes."""
784
+ body = {}
785
+ if self.group_id is not None: body['group_id'] = self.group_id
786
+ if self.network_connectivity_config_id is not None:
787
+ body['network_connectivity_config_id'] = self.network_connectivity_config_id
788
+ if self.resource_id is not None: body['resource_id'] = self.resource_id
789
+ return body
790
+
625
791
  @classmethod
626
792
  def from_dict(cls, d: Dict[str, any]) -> CreatePrivateEndpointRuleRequest:
627
793
  """Deserializes the CreatePrivateEndpointRuleRequest from a dictionary."""
@@ -657,6 +823,13 @@ class CreateTokenRequest:
657
823
  if self.lifetime_seconds is not None: body['lifetime_seconds'] = self.lifetime_seconds
658
824
  return body
659
825
 
826
+ def as_shallow_dict(self) -> dict:
827
+ """Serializes the CreateTokenRequest into a shallow dictionary of its immediate attributes."""
828
+ body = {}
829
+ if self.comment is not None: body['comment'] = self.comment
830
+ if self.lifetime_seconds is not None: body['lifetime_seconds'] = self.lifetime_seconds
831
+ return body
832
+
660
833
  @classmethod
661
834
  def from_dict(cls, d: Dict[str, any]) -> CreateTokenRequest:
662
835
  """Deserializes the CreateTokenRequest from a dictionary."""
@@ -678,6 +851,13 @@ class CreateTokenResponse:
678
851
  if self.token_value is not None: body['token_value'] = self.token_value
679
852
  return body
680
853
 
854
+ def as_shallow_dict(self) -> dict:
855
+ """Serializes the CreateTokenResponse into a shallow dictionary of its immediate attributes."""
856
+ body = {}
857
+ if self.token_info: body['token_info'] = self.token_info
858
+ if self.token_value is not None: body['token_value'] = self.token_value
859
+ return body
860
+
681
861
  @classmethod
682
862
  def from_dict(cls, d: Dict[str, any]) -> CreateTokenResponse:
683
863
  """Deserializes the CreateTokenResponse from a dictionary."""
@@ -704,6 +884,13 @@ class CspEnablementAccount:
704
884
  if self.is_enforced is not None: body['is_enforced'] = self.is_enforced
705
885
  return body
706
886
 
887
+ def as_shallow_dict(self) -> dict:
888
+ """Serializes the CspEnablementAccount into a shallow dictionary of its immediate attributes."""
889
+ body = {}
890
+ if self.compliance_standards: body['compliance_standards'] = self.compliance_standards
891
+ if self.is_enforced is not None: body['is_enforced'] = self.is_enforced
892
+ return body
893
+
707
894
  @classmethod
708
895
  def from_dict(cls, d: Dict[str, any]) -> CspEnablementAccount:
709
896
  """Deserializes the CspEnablementAccount from a dictionary."""
@@ -738,6 +925,14 @@ class CspEnablementAccountSetting:
738
925
  if self.setting_name is not None: body['setting_name'] = self.setting_name
739
926
  return body
740
927
 
928
+ def as_shallow_dict(self) -> dict:
929
+ """Serializes the CspEnablementAccountSetting into a shallow dictionary of its immediate attributes."""
930
+ body = {}
931
+ if self.csp_enablement_account: body['csp_enablement_account'] = self.csp_enablement_account
932
+ if self.etag is not None: body['etag'] = self.etag
933
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
934
+ return body
935
+
741
936
  @classmethod
742
937
  def from_dict(cls, d: Dict[str, any]) -> CspEnablementAccountSetting:
743
938
  """Deserializes the CspEnablementAccountSetting from a dictionary."""
@@ -780,6 +975,14 @@ class DefaultNamespaceSetting:
780
975
  if self.setting_name is not None: body['setting_name'] = self.setting_name
781
976
  return body
782
977
 
978
+ def as_shallow_dict(self) -> dict:
979
+ """Serializes the DefaultNamespaceSetting into a shallow dictionary of its immediate attributes."""
980
+ body = {}
981
+ if self.etag is not None: body['etag'] = self.etag
982
+ if self.namespace: body['namespace'] = self.namespace
983
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
984
+ return body
985
+
783
986
  @classmethod
784
987
  def from_dict(cls, d: Dict[str, any]) -> DefaultNamespaceSetting:
785
988
  """Deserializes the DefaultNamespaceSetting from a dictionary."""
@@ -788,6 +991,66 @@ class DefaultNamespaceSetting:
788
991
  setting_name=d.get('setting_name', None))
789
992
 
790
993
 
994
+ @dataclass
995
+ class DeleteAibiDashboardEmbeddingAccessPolicySettingResponse:
996
+ """The etag is returned."""
997
+
998
+ etag: str
999
+ """etag used for versioning. The response is at least as fresh as the eTag provided. This is used
1000
+ for optimistic concurrency control as a way to help prevent simultaneous writes of a setting
1001
+ overwriting each other. It is strongly suggested that systems make use of the etag in the read
1002
+ -> delete pattern to perform setting deletions in order to avoid race conditions. That is, get
1003
+ an etag from a GET request, and pass it with the DELETE request to identify the rule set version
1004
+ you are deleting."""
1005
+
1006
+ def as_dict(self) -> dict:
1007
+ """Serializes the DeleteAibiDashboardEmbeddingAccessPolicySettingResponse into a dictionary suitable for use as a JSON request body."""
1008
+ body = {}
1009
+ if self.etag is not None: body['etag'] = self.etag
1010
+ return body
1011
+
1012
+ def as_shallow_dict(self) -> dict:
1013
+ """Serializes the DeleteAibiDashboardEmbeddingAccessPolicySettingResponse into a shallow dictionary of its immediate attributes."""
1014
+ body = {}
1015
+ if self.etag is not None: body['etag'] = self.etag
1016
+ return body
1017
+
1018
+ @classmethod
1019
+ def from_dict(cls, d: Dict[str, any]) -> DeleteAibiDashboardEmbeddingAccessPolicySettingResponse:
1020
+ """Deserializes the DeleteAibiDashboardEmbeddingAccessPolicySettingResponse from a dictionary."""
1021
+ return cls(etag=d.get('etag', None))
1022
+
1023
+
1024
+ @dataclass
1025
+ class DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse:
1026
+ """The etag is returned."""
1027
+
1028
+ etag: str
1029
+ """etag used for versioning. The response is at least as fresh as the eTag provided. This is used
1030
+ for optimistic concurrency control as a way to help prevent simultaneous writes of a setting
1031
+ overwriting each other. It is strongly suggested that systems make use of the etag in the read
1032
+ -> delete pattern to perform setting deletions in order to avoid race conditions. That is, get
1033
+ an etag from a GET request, and pass it with the DELETE request to identify the rule set version
1034
+ you are deleting."""
1035
+
1036
+ def as_dict(self) -> dict:
1037
+ """Serializes the DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse into a dictionary suitable for use as a JSON request body."""
1038
+ body = {}
1039
+ if self.etag is not None: body['etag'] = self.etag
1040
+ return body
1041
+
1042
+ def as_shallow_dict(self) -> dict:
1043
+ """Serializes the DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse into a shallow dictionary of its immediate attributes."""
1044
+ body = {}
1045
+ if self.etag is not None: body['etag'] = self.etag
1046
+ return body
1047
+
1048
+ @classmethod
1049
+ def from_dict(cls, d: Dict[str, any]) -> DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse:
1050
+ """Deserializes the DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse from a dictionary."""
1051
+ return cls(etag=d.get('etag', None))
1052
+
1053
+
791
1054
  @dataclass
792
1055
  class DeleteDefaultNamespaceSettingResponse:
793
1056
  """The etag is returned."""
@@ -806,6 +1069,12 @@ class DeleteDefaultNamespaceSettingResponse:
806
1069
  if self.etag is not None: body['etag'] = self.etag
807
1070
  return body
808
1071
 
1072
+ def as_shallow_dict(self) -> dict:
1073
+ """Serializes the DeleteDefaultNamespaceSettingResponse into a shallow dictionary of its immediate attributes."""
1074
+ body = {}
1075
+ if self.etag is not None: body['etag'] = self.etag
1076
+ return body
1077
+
809
1078
  @classmethod
810
1079
  def from_dict(cls, d: Dict[str, any]) -> DeleteDefaultNamespaceSettingResponse:
811
1080
  """Deserializes the DeleteDefaultNamespaceSettingResponse from a dictionary."""
@@ -830,6 +1099,12 @@ class DeleteDisableLegacyAccessResponse:
830
1099
  if self.etag is not None: body['etag'] = self.etag
831
1100
  return body
832
1101
 
1102
+ def as_shallow_dict(self) -> dict:
1103
+ """Serializes the DeleteDisableLegacyAccessResponse into a shallow dictionary of its immediate attributes."""
1104
+ body = {}
1105
+ if self.etag is not None: body['etag'] = self.etag
1106
+ return body
1107
+
833
1108
  @classmethod
834
1109
  def from_dict(cls, d: Dict[str, any]) -> DeleteDisableLegacyAccessResponse:
835
1110
  """Deserializes the DeleteDisableLegacyAccessResponse from a dictionary."""
@@ -854,6 +1129,12 @@ class DeleteDisableLegacyDbfsResponse:
854
1129
  if self.etag is not None: body['etag'] = self.etag
855
1130
  return body
856
1131
 
1132
+ def as_shallow_dict(self) -> dict:
1133
+ """Serializes the DeleteDisableLegacyDbfsResponse into a shallow dictionary of its immediate attributes."""
1134
+ body = {}
1135
+ if self.etag is not None: body['etag'] = self.etag
1136
+ return body
1137
+
857
1138
  @classmethod
858
1139
  def from_dict(cls, d: Dict[str, any]) -> DeleteDisableLegacyDbfsResponse:
859
1140
  """Deserializes the DeleteDisableLegacyDbfsResponse from a dictionary."""
@@ -878,6 +1159,12 @@ class DeleteDisableLegacyFeaturesResponse:
878
1159
  if self.etag is not None: body['etag'] = self.etag
879
1160
  return body
880
1161
 
1162
+ def as_shallow_dict(self) -> dict:
1163
+ """Serializes the DeleteDisableLegacyFeaturesResponse into a shallow dictionary of its immediate attributes."""
1164
+ body = {}
1165
+ if self.etag is not None: body['etag'] = self.etag
1166
+ return body
1167
+
881
1168
  @classmethod
882
1169
  def from_dict(cls, d: Dict[str, any]) -> DeleteDisableLegacyFeaturesResponse:
883
1170
  """Deserializes the DeleteDisableLegacyFeaturesResponse from a dictionary."""
@@ -892,6 +1179,11 @@ class DeleteNetworkConnectivityConfigurationResponse:
892
1179
  body = {}
893
1180
  return body
894
1181
 
1182
+ def as_shallow_dict(self) -> dict:
1183
+ """Serializes the DeleteNetworkConnectivityConfigurationResponse into a shallow dictionary of its immediate attributes."""
1184
+ body = {}
1185
+ return body
1186
+
895
1187
  @classmethod
896
1188
  def from_dict(cls, d: Dict[str, any]) -> DeleteNetworkConnectivityConfigurationResponse:
897
1189
  """Deserializes the DeleteNetworkConnectivityConfigurationResponse from a dictionary."""
@@ -916,6 +1208,12 @@ class DeletePersonalComputeSettingResponse:
916
1208
  if self.etag is not None: body['etag'] = self.etag
917
1209
  return body
918
1210
 
1211
+ def as_shallow_dict(self) -> dict:
1212
+ """Serializes the DeletePersonalComputeSettingResponse into a shallow dictionary of its immediate attributes."""
1213
+ body = {}
1214
+ if self.etag is not None: body['etag'] = self.etag
1215
+ return body
1216
+
919
1217
  @classmethod
920
1218
  def from_dict(cls, d: Dict[str, any]) -> DeletePersonalComputeSettingResponse:
921
1219
  """Deserializes the DeletePersonalComputeSettingResponse from a dictionary."""
@@ -930,6 +1228,11 @@ class DeleteResponse:
930
1228
  body = {}
931
1229
  return body
932
1230
 
1231
+ def as_shallow_dict(self) -> dict:
1232
+ """Serializes the DeleteResponse into a shallow dictionary of its immediate attributes."""
1233
+ body = {}
1234
+ return body
1235
+
933
1236
  @classmethod
934
1237
  def from_dict(cls, d: Dict[str, any]) -> DeleteResponse:
935
1238
  """Deserializes the DeleteResponse from a dictionary."""
@@ -954,6 +1257,12 @@ class DeleteRestrictWorkspaceAdminsSettingResponse:
954
1257
  if self.etag is not None: body['etag'] = self.etag
955
1258
  return body
956
1259
 
1260
+ def as_shallow_dict(self) -> dict:
1261
+ """Serializes the DeleteRestrictWorkspaceAdminsSettingResponse into a shallow dictionary of its immediate attributes."""
1262
+ body = {}
1263
+ if self.etag is not None: body['etag'] = self.etag
1264
+ return body
1265
+
957
1266
  @classmethod
958
1267
  def from_dict(cls, d: Dict[str, any]) -> DeleteRestrictWorkspaceAdminsSettingResponse:
959
1268
  """Deserializes the DeleteRestrictWorkspaceAdminsSettingResponse from a dictionary."""
@@ -995,6 +1304,14 @@ class DisableLegacyAccess:
995
1304
  if self.setting_name is not None: body['setting_name'] = self.setting_name
996
1305
  return body
997
1306
 
1307
+ def as_shallow_dict(self) -> dict:
1308
+ """Serializes the DisableLegacyAccess into a shallow dictionary of its immediate attributes."""
1309
+ body = {}
1310
+ if self.disable_legacy_access: body['disable_legacy_access'] = self.disable_legacy_access
1311
+ if self.etag is not None: body['etag'] = self.etag
1312
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
1313
+ return body
1314
+
998
1315
  @classmethod
999
1316
  def from_dict(cls, d: Dict[str, any]) -> DisableLegacyAccess:
1000
1317
  """Deserializes the DisableLegacyAccess from a dictionary."""
@@ -1029,6 +1346,14 @@ class DisableLegacyDbfs:
1029
1346
  if self.setting_name is not None: body['setting_name'] = self.setting_name
1030
1347
  return body
1031
1348
 
1349
+ def as_shallow_dict(self) -> dict:
1350
+ """Serializes the DisableLegacyDbfs into a shallow dictionary of its immediate attributes."""
1351
+ body = {}
1352
+ if self.disable_legacy_dbfs: body['disable_legacy_dbfs'] = self.disable_legacy_dbfs
1353
+ if self.etag is not None: body['etag'] = self.etag
1354
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
1355
+ return body
1356
+
1032
1357
  @classmethod
1033
1358
  def from_dict(cls, d: Dict[str, any]) -> DisableLegacyDbfs:
1034
1359
  """Deserializes the DisableLegacyDbfs from a dictionary."""
@@ -1064,6 +1389,14 @@ class DisableLegacyFeatures:
1064
1389
  if self.setting_name is not None: body['setting_name'] = self.setting_name
1065
1390
  return body
1066
1391
 
1392
+ def as_shallow_dict(self) -> dict:
1393
+ """Serializes the DisableLegacyFeatures into a shallow dictionary of its immediate attributes."""
1394
+ body = {}
1395
+ if self.disable_legacy_features: body['disable_legacy_features'] = self.disable_legacy_features
1396
+ if self.etag is not None: body['etag'] = self.etag
1397
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
1398
+ return body
1399
+
1067
1400
  @classmethod
1068
1401
  def from_dict(cls, d: Dict[str, any]) -> DisableLegacyFeatures:
1069
1402
  """Deserializes the DisableLegacyFeatures from a dictionary."""
@@ -1072,6 +1405,270 @@ class DisableLegacyFeatures:
1072
1405
  setting_name=d.get('setting_name', None))
1073
1406
 
1074
1407
 
1408
+ @dataclass
1409
+ class EgressNetworkPolicy:
1410
+ """The network policies applying for egress traffic. This message is used by the UI/REST API. We
1411
+ translate this message to the format expected by the dataplane in Lakehouse Network Manager (for
1412
+ the format expected by the dataplane, see networkconfig.textproto)."""
1413
+
1414
+ internet_access: Optional[EgressNetworkPolicyInternetAccessPolicy] = None
1415
+ """The access policy enforced for egress traffic to the internet."""
1416
+
1417
+ def as_dict(self) -> dict:
1418
+ """Serializes the EgressNetworkPolicy into a dictionary suitable for use as a JSON request body."""
1419
+ body = {}
1420
+ if self.internet_access: body['internet_access'] = self.internet_access.as_dict()
1421
+ return body
1422
+
1423
+ def as_shallow_dict(self) -> dict:
1424
+ """Serializes the EgressNetworkPolicy into a shallow dictionary of its immediate attributes."""
1425
+ body = {}
1426
+ if self.internet_access: body['internet_access'] = self.internet_access
1427
+ return body
1428
+
1429
+ @classmethod
1430
+ def from_dict(cls, d: Dict[str, any]) -> EgressNetworkPolicy:
1431
+ """Deserializes the EgressNetworkPolicy from a dictionary."""
1432
+ return cls(internet_access=_from_dict(d, 'internet_access', EgressNetworkPolicyInternetAccessPolicy))
1433
+
1434
+
1435
+ @dataclass
1436
+ class EgressNetworkPolicyInternetAccessPolicy:
1437
+ allowed_internet_destinations: Optional[
1438
+ List[EgressNetworkPolicyInternetAccessPolicyInternetDestination]] = None
1439
+
1440
+ allowed_storage_destinations: Optional[
1441
+ List[EgressNetworkPolicyInternetAccessPolicyStorageDestination]] = None
1442
+
1443
+ log_only_mode: Optional[EgressNetworkPolicyInternetAccessPolicyLogOnlyMode] = None
1444
+ """Optional. If not specified, assume the policy is enforced for all workloads."""
1445
+
1446
+ restriction_mode: Optional[EgressNetworkPolicyInternetAccessPolicyRestrictionMode] = None
1447
+ """At which level can Databricks and Databricks managed compute access Internet. FULL_ACCESS:
1448
+ Databricks can access Internet. No blocking rules will apply. RESTRICTED_ACCESS: Databricks can
1449
+ only access explicitly allowed internet and storage destinations, as well as UC connections and
1450
+ external locations. PRIVATE_ACCESS_ONLY (not used): Databricks can only access destinations via
1451
+ private link."""
1452
+
1453
+ def as_dict(self) -> dict:
1454
+ """Serializes the EgressNetworkPolicyInternetAccessPolicy into a dictionary suitable for use as a JSON request body."""
1455
+ body = {}
1456
+ if self.allowed_internet_destinations:
1457
+ body['allowed_internet_destinations'] = [v.as_dict() for v in self.allowed_internet_destinations]
1458
+ if self.allowed_storage_destinations:
1459
+ body['allowed_storage_destinations'] = [v.as_dict() for v in self.allowed_storage_destinations]
1460
+ if self.log_only_mode: body['log_only_mode'] = self.log_only_mode.as_dict()
1461
+ if self.restriction_mode is not None: body['restriction_mode'] = self.restriction_mode.value
1462
+ return body
1463
+
1464
+ def as_shallow_dict(self) -> dict:
1465
+ """Serializes the EgressNetworkPolicyInternetAccessPolicy into a shallow dictionary of its immediate attributes."""
1466
+ body = {}
1467
+ if self.allowed_internet_destinations:
1468
+ body['allowed_internet_destinations'] = self.allowed_internet_destinations
1469
+ if self.allowed_storage_destinations:
1470
+ body['allowed_storage_destinations'] = self.allowed_storage_destinations
1471
+ if self.log_only_mode: body['log_only_mode'] = self.log_only_mode
1472
+ if self.restriction_mode is not None: body['restriction_mode'] = self.restriction_mode
1473
+ return body
1474
+
1475
+ @classmethod
1476
+ def from_dict(cls, d: Dict[str, any]) -> EgressNetworkPolicyInternetAccessPolicy:
1477
+ """Deserializes the EgressNetworkPolicyInternetAccessPolicy from a dictionary."""
1478
+ return cls(allowed_internet_destinations=_repeated_dict(
1479
+ d, 'allowed_internet_destinations', EgressNetworkPolicyInternetAccessPolicyInternetDestination),
1480
+ allowed_storage_destinations=_repeated_dict(
1481
+ d, 'allowed_storage_destinations',
1482
+ EgressNetworkPolicyInternetAccessPolicyStorageDestination),
1483
+ log_only_mode=_from_dict(d, 'log_only_mode',
1484
+ EgressNetworkPolicyInternetAccessPolicyLogOnlyMode),
1485
+ restriction_mode=_enum(d, 'restriction_mode',
1486
+ EgressNetworkPolicyInternetAccessPolicyRestrictionMode))
1487
+
1488
+
1489
+ @dataclass
1490
+ class EgressNetworkPolicyInternetAccessPolicyInternetDestination:
1491
+ """Users can specify accessible internet destinations when outbound access is restricted. We only
1492
+ support domain name (FQDN) destinations for the time being, though going forwards we want to
1493
+ support host names and IP addresses."""
1494
+
1495
+ destination: Optional[str] = None
1496
+
1497
+ protocol: Optional[
1498
+ EgressNetworkPolicyInternetAccessPolicyInternetDestinationInternetDestinationFilteringProtocol] = None
1499
+ """The filtering protocol used by the DP. For private and public preview, SEG will only support TCP
1500
+ filtering (i.e. DNS based filtering, filtering by destination IP address), so protocol will be
1501
+ set to TCP by default and hidden from the user. In the future, users may be able to select HTTP
1502
+ filtering (i.e. SNI based filtering, filtering by FQDN)."""
1503
+
1504
+ type: Optional[EgressNetworkPolicyInternetAccessPolicyInternetDestinationInternetDestinationType] = None
1505
+
1506
+ def as_dict(self) -> dict:
1507
+ """Serializes the EgressNetworkPolicyInternetAccessPolicyInternetDestination into a dictionary suitable for use as a JSON request body."""
1508
+ body = {}
1509
+ if self.destination is not None: body['destination'] = self.destination
1510
+ if self.protocol is not None: body['protocol'] = self.protocol.value
1511
+ if self.type is not None: body['type'] = self.type.value
1512
+ return body
1513
+
1514
+ def as_shallow_dict(self) -> dict:
1515
+ """Serializes the EgressNetworkPolicyInternetAccessPolicyInternetDestination into a shallow dictionary of its immediate attributes."""
1516
+ body = {}
1517
+ if self.destination is not None: body['destination'] = self.destination
1518
+ if self.protocol is not None: body['protocol'] = self.protocol
1519
+ if self.type is not None: body['type'] = self.type
1520
+ return body
1521
+
1522
+ @classmethod
1523
+ def from_dict(cls, d: Dict[str, any]) -> EgressNetworkPolicyInternetAccessPolicyInternetDestination:
1524
+ """Deserializes the EgressNetworkPolicyInternetAccessPolicyInternetDestination from a dictionary."""
1525
+ return cls(
1526
+ destination=d.get('destination', None),
1527
+ protocol=_enum(
1528
+ d, 'protocol',
1529
+ EgressNetworkPolicyInternetAccessPolicyInternetDestinationInternetDestinationFilteringProtocol
1530
+ ),
1531
+ type=_enum(d, 'type',
1532
+ EgressNetworkPolicyInternetAccessPolicyInternetDestinationInternetDestinationType))
1533
+
1534
+
1535
+ class EgressNetworkPolicyInternetAccessPolicyInternetDestinationInternetDestinationFilteringProtocol(Enum):
1536
+ """The filtering protocol used by the DP. For private and public preview, SEG will only support TCP
1537
+ filtering (i.e. DNS based filtering, filtering by destination IP address), so protocol will be
1538
+ set to TCP by default and hidden from the user. In the future, users may be able to select HTTP
1539
+ filtering (i.e. SNI based filtering, filtering by FQDN)."""
1540
+
1541
+ TCP = 'TCP'
1542
+
1543
+
1544
+ class EgressNetworkPolicyInternetAccessPolicyInternetDestinationInternetDestinationType(Enum):
1545
+
1546
+ FQDN = 'FQDN'
1547
+
1548
+
1549
+ @dataclass
1550
+ class EgressNetworkPolicyInternetAccessPolicyLogOnlyMode:
1551
+ log_only_mode_type: Optional[EgressNetworkPolicyInternetAccessPolicyLogOnlyModeLogOnlyModeType] = None
1552
+
1553
+ workloads: Optional[List[EgressNetworkPolicyInternetAccessPolicyLogOnlyModeWorkloadType]] = None
1554
+
1555
+ def as_dict(self) -> dict:
1556
+ """Serializes the EgressNetworkPolicyInternetAccessPolicyLogOnlyMode into a dictionary suitable for use as a JSON request body."""
1557
+ body = {}
1558
+ if self.log_only_mode_type is not None: body['log_only_mode_type'] = self.log_only_mode_type.value
1559
+ if self.workloads: body['workloads'] = [v.value for v in self.workloads]
1560
+ return body
1561
+
1562
+ def as_shallow_dict(self) -> dict:
1563
+ """Serializes the EgressNetworkPolicyInternetAccessPolicyLogOnlyMode into a shallow dictionary of its immediate attributes."""
1564
+ body = {}
1565
+ if self.log_only_mode_type is not None: body['log_only_mode_type'] = self.log_only_mode_type
1566
+ if self.workloads: body['workloads'] = self.workloads
1567
+ return body
1568
+
1569
+ @classmethod
1570
+ def from_dict(cls, d: Dict[str, any]) -> EgressNetworkPolicyInternetAccessPolicyLogOnlyMode:
1571
+ """Deserializes the EgressNetworkPolicyInternetAccessPolicyLogOnlyMode from a dictionary."""
1572
+ return cls(log_only_mode_type=_enum(
1573
+ d, 'log_only_mode_type', EgressNetworkPolicyInternetAccessPolicyLogOnlyModeLogOnlyModeType),
1574
+ workloads=_repeated_enum(d, 'workloads',
1575
+ EgressNetworkPolicyInternetAccessPolicyLogOnlyModeWorkloadType))
1576
+
1577
+
1578
+ class EgressNetworkPolicyInternetAccessPolicyLogOnlyModeLogOnlyModeType(Enum):
1579
+
1580
+ ALL_SERVICES = 'ALL_SERVICES'
1581
+ SELECTED_SERVICES = 'SELECTED_SERVICES'
1582
+
1583
+
1584
+ class EgressNetworkPolicyInternetAccessPolicyLogOnlyModeWorkloadType(Enum):
1585
+ """The values should match the list of workloads used in networkconfig.proto"""
1586
+
1587
+ DBSQL = 'DBSQL'
1588
+ ML_SERVING = 'ML_SERVING'
1589
+
1590
+
1591
+ class EgressNetworkPolicyInternetAccessPolicyRestrictionMode(Enum):
1592
+ """At which level can Databricks and Databricks managed compute access Internet. FULL_ACCESS:
1593
+ Databricks can access Internet. No blocking rules will apply. RESTRICTED_ACCESS: Databricks can
1594
+ only access explicitly allowed internet and storage destinations, as well as UC connections and
1595
+ external locations. PRIVATE_ACCESS_ONLY (not used): Databricks can only access destinations via
1596
+ private link."""
1597
+
1598
+ FULL_ACCESS = 'FULL_ACCESS'
1599
+ PRIVATE_ACCESS_ONLY = 'PRIVATE_ACCESS_ONLY'
1600
+ RESTRICTED_ACCESS = 'RESTRICTED_ACCESS'
1601
+
1602
+
1603
+ @dataclass
1604
+ class EgressNetworkPolicyInternetAccessPolicyStorageDestination:
1605
+ """Users can specify accessible storage destinations."""
1606
+
1607
+ allowed_paths: Optional[List[str]] = None
1608
+
1609
+ azure_container: Optional[str] = None
1610
+
1611
+ azure_dns_zone: Optional[str] = None
1612
+
1613
+ azure_storage_account: Optional[str] = None
1614
+
1615
+ azure_storage_service: Optional[str] = None
1616
+
1617
+ bucket_name: Optional[str] = None
1618
+
1619
+ region: Optional[str] = None
1620
+
1621
+ type: Optional[EgressNetworkPolicyInternetAccessPolicyStorageDestinationStorageDestinationType] = None
1622
+
1623
+ def as_dict(self) -> dict:
1624
+ """Serializes the EgressNetworkPolicyInternetAccessPolicyStorageDestination into a dictionary suitable for use as a JSON request body."""
1625
+ body = {}
1626
+ if self.allowed_paths: body['allowed_paths'] = [v for v in self.allowed_paths]
1627
+ if self.azure_container is not None: body['azure_container'] = self.azure_container
1628
+ if self.azure_dns_zone is not None: body['azure_dns_zone'] = self.azure_dns_zone
1629
+ if self.azure_storage_account is not None: body['azure_storage_account'] = self.azure_storage_account
1630
+ if self.azure_storage_service is not None: body['azure_storage_service'] = self.azure_storage_service
1631
+ if self.bucket_name is not None: body['bucket_name'] = self.bucket_name
1632
+ if self.region is not None: body['region'] = self.region
1633
+ if self.type is not None: body['type'] = self.type.value
1634
+ return body
1635
+
1636
+ def as_shallow_dict(self) -> dict:
1637
+ """Serializes the EgressNetworkPolicyInternetAccessPolicyStorageDestination into a shallow dictionary of its immediate attributes."""
1638
+ body = {}
1639
+ if self.allowed_paths: body['allowed_paths'] = self.allowed_paths
1640
+ if self.azure_container is not None: body['azure_container'] = self.azure_container
1641
+ if self.azure_dns_zone is not None: body['azure_dns_zone'] = self.azure_dns_zone
1642
+ if self.azure_storage_account is not None: body['azure_storage_account'] = self.azure_storage_account
1643
+ if self.azure_storage_service is not None: body['azure_storage_service'] = self.azure_storage_service
1644
+ if self.bucket_name is not None: body['bucket_name'] = self.bucket_name
1645
+ if self.region is not None: body['region'] = self.region
1646
+ if self.type is not None: body['type'] = self.type
1647
+ return body
1648
+
1649
+ @classmethod
1650
+ def from_dict(cls, d: Dict[str, any]) -> EgressNetworkPolicyInternetAccessPolicyStorageDestination:
1651
+ """Deserializes the EgressNetworkPolicyInternetAccessPolicyStorageDestination from a dictionary."""
1652
+ return cls(allowed_paths=d.get('allowed_paths', None),
1653
+ azure_container=d.get('azure_container', None),
1654
+ azure_dns_zone=d.get('azure_dns_zone', None),
1655
+ azure_storage_account=d.get('azure_storage_account', None),
1656
+ azure_storage_service=d.get('azure_storage_service', None),
1657
+ bucket_name=d.get('bucket_name', None),
1658
+ region=d.get('region', None),
1659
+ type=_enum(
1660
+ d, 'type',
1661
+ EgressNetworkPolicyInternetAccessPolicyStorageDestinationStorageDestinationType))
1662
+
1663
+
1664
+ class EgressNetworkPolicyInternetAccessPolicyStorageDestinationStorageDestinationType(Enum):
1665
+
1666
+ AWS_S3 = 'AWS_S3'
1667
+ AZURE_STORAGE = 'AZURE_STORAGE'
1668
+ CLOUDFLARE_R2 = 'CLOUDFLARE_R2'
1669
+ GOOGLE_CLOUD_STORAGE = 'GOOGLE_CLOUD_STORAGE'
1670
+
1671
+
1075
1672
  @dataclass
1076
1673
  class EmailConfig:
1077
1674
  addresses: Optional[List[str]] = None
@@ -1083,6 +1680,12 @@ class EmailConfig:
1083
1680
  if self.addresses: body['addresses'] = [v for v in self.addresses]
1084
1681
  return body
1085
1682
 
1683
+ def as_shallow_dict(self) -> dict:
1684
+ """Serializes the EmailConfig into a shallow dictionary of its immediate attributes."""
1685
+ body = {}
1686
+ if self.addresses: body['addresses'] = self.addresses
1687
+ return body
1688
+
1086
1689
  @classmethod
1087
1690
  def from_dict(cls, d: Dict[str, any]) -> EmailConfig:
1088
1691
  """Deserializes the EmailConfig from a dictionary."""
@@ -1097,6 +1700,11 @@ class Empty:
1097
1700
  body = {}
1098
1701
  return body
1099
1702
 
1703
+ def as_shallow_dict(self) -> dict:
1704
+ """Serializes the Empty into a shallow dictionary of its immediate attributes."""
1705
+ body = {}
1706
+ return body
1707
+
1100
1708
  @classmethod
1101
1709
  def from_dict(cls, d: Dict[str, any]) -> Empty:
1102
1710
  """Deserializes the Empty from a dictionary."""
@@ -1115,6 +1723,12 @@ class EnhancedSecurityMonitoring:
1115
1723
  if self.is_enabled is not None: body['is_enabled'] = self.is_enabled
1116
1724
  return body
1117
1725
 
1726
+ def as_shallow_dict(self) -> dict:
1727
+ """Serializes the EnhancedSecurityMonitoring into a shallow dictionary of its immediate attributes."""
1728
+ body = {}
1729
+ if self.is_enabled is not None: body['is_enabled'] = self.is_enabled
1730
+ return body
1731
+
1118
1732
  @classmethod
1119
1733
  def from_dict(cls, d: Dict[str, any]) -> EnhancedSecurityMonitoring:
1120
1734
  """Deserializes the EnhancedSecurityMonitoring from a dictionary."""
@@ -1151,6 +1765,15 @@ class EnhancedSecurityMonitoringSetting:
1151
1765
  if self.setting_name is not None: body['setting_name'] = self.setting_name
1152
1766
  return body
1153
1767
 
1768
+ def as_shallow_dict(self) -> dict:
1769
+ """Serializes the EnhancedSecurityMonitoringSetting into a shallow dictionary of its immediate attributes."""
1770
+ body = {}
1771
+ if self.enhanced_security_monitoring_workspace:
1772
+ body['enhanced_security_monitoring_workspace'] = self.enhanced_security_monitoring_workspace
1773
+ if self.etag is not None: body['etag'] = self.etag
1774
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
1775
+ return body
1776
+
1154
1777
  @classmethod
1155
1778
  def from_dict(cls, d: Dict[str, any]) -> EnhancedSecurityMonitoringSetting:
1156
1779
  """Deserializes the EnhancedSecurityMonitoringSetting from a dictionary."""
@@ -1172,6 +1795,12 @@ class EsmEnablementAccount:
1172
1795
  if self.is_enforced is not None: body['is_enforced'] = self.is_enforced
1173
1796
  return body
1174
1797
 
1798
+ def as_shallow_dict(self) -> dict:
1799
+ """Serializes the EsmEnablementAccount into a shallow dictionary of its immediate attributes."""
1800
+ body = {}
1801
+ if self.is_enforced is not None: body['is_enforced'] = self.is_enforced
1802
+ return body
1803
+
1175
1804
  @classmethod
1176
1805
  def from_dict(cls, d: Dict[str, any]) -> EsmEnablementAccount:
1177
1806
  """Deserializes the EsmEnablementAccount from a dictionary."""
@@ -1205,6 +1834,14 @@ class EsmEnablementAccountSetting:
1205
1834
  if self.setting_name is not None: body['setting_name'] = self.setting_name
1206
1835
  return body
1207
1836
 
1837
+ def as_shallow_dict(self) -> dict:
1838
+ """Serializes the EsmEnablementAccountSetting into a shallow dictionary of its immediate attributes."""
1839
+ body = {}
1840
+ if self.esm_enablement_account: body['esm_enablement_account'] = self.esm_enablement_account
1841
+ if self.etag is not None: body['etag'] = self.etag
1842
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
1843
+ return body
1844
+
1208
1845
  @classmethod
1209
1846
  def from_dict(cls, d: Dict[str, any]) -> EsmEnablementAccountSetting:
1210
1847
  """Deserializes the EsmEnablementAccountSetting from a dictionary."""
@@ -1242,6 +1879,16 @@ class ExchangeToken:
1242
1879
  if self.token_type is not None: body['tokenType'] = self.token_type.value
1243
1880
  return body
1244
1881
 
1882
+ def as_shallow_dict(self) -> dict:
1883
+ """Serializes the ExchangeToken into a shallow dictionary of its immediate attributes."""
1884
+ body = {}
1885
+ if self.credential is not None: body['credential'] = self.credential
1886
+ if self.credential_eol_time is not None: body['credentialEolTime'] = self.credential_eol_time
1887
+ if self.owner_id is not None: body['ownerId'] = self.owner_id
1888
+ if self.scopes: body['scopes'] = self.scopes
1889
+ if self.token_type is not None: body['tokenType'] = self.token_type
1890
+ return body
1891
+
1245
1892
  @classmethod
1246
1893
  def from_dict(cls, d: Dict[str, any]) -> ExchangeToken:
1247
1894
  """Deserializes the ExchangeToken from a dictionary."""
@@ -1273,6 +1920,14 @@ class ExchangeTokenRequest:
1273
1920
  if self.token_type: body['tokenType'] = [v.value for v in self.token_type]
1274
1921
  return body
1275
1922
 
1923
+ def as_shallow_dict(self) -> dict:
1924
+ """Serializes the ExchangeTokenRequest into a shallow dictionary of its immediate attributes."""
1925
+ body = {}
1926
+ if self.partition_id: body['partitionId'] = self.partition_id
1927
+ if self.scopes: body['scopes'] = self.scopes
1928
+ if self.token_type: body['tokenType'] = self.token_type
1929
+ return body
1930
+
1276
1931
  @classmethod
1277
1932
  def from_dict(cls, d: Dict[str, any]) -> ExchangeTokenRequest:
1278
1933
  """Deserializes the ExchangeTokenRequest from a dictionary."""
@@ -1293,6 +1948,12 @@ class ExchangeTokenResponse:
1293
1948
  if self.values: body['values'] = [v.as_dict() for v in self.values]
1294
1949
  return body
1295
1950
 
1951
+ def as_shallow_dict(self) -> dict:
1952
+ """Serializes the ExchangeTokenResponse into a shallow dictionary of its immediate attributes."""
1953
+ body = {}
1954
+ if self.values: body['values'] = self.values
1955
+ return body
1956
+
1296
1957
  @classmethod
1297
1958
  def from_dict(cls, d: Dict[str, any]) -> ExchangeTokenResponse:
1298
1959
  """Deserializes the ExchangeTokenResponse from a dictionary."""
@@ -1312,6 +1973,12 @@ class FetchIpAccessListResponse:
1312
1973
  if self.ip_access_list: body['ip_access_list'] = self.ip_access_list.as_dict()
1313
1974
  return body
1314
1975
 
1976
+ def as_shallow_dict(self) -> dict:
1977
+ """Serializes the FetchIpAccessListResponse into a shallow dictionary of its immediate attributes."""
1978
+ body = {}
1979
+ if self.ip_access_list: body['ip_access_list'] = self.ip_access_list
1980
+ return body
1981
+
1315
1982
  @classmethod
1316
1983
  def from_dict(cls, d: Dict[str, any]) -> FetchIpAccessListResponse:
1317
1984
  """Deserializes the FetchIpAccessListResponse from a dictionary."""
@@ -1349,6 +2016,17 @@ class GenericWebhookConfig:
1349
2016
  if self.username_set is not None: body['username_set'] = self.username_set
1350
2017
  return body
1351
2018
 
2019
+ def as_shallow_dict(self) -> dict:
2020
+ """Serializes the GenericWebhookConfig into a shallow dictionary of its immediate attributes."""
2021
+ body = {}
2022
+ if self.password is not None: body['password'] = self.password
2023
+ if self.password_set is not None: body['password_set'] = self.password_set
2024
+ if self.url is not None: body['url'] = self.url
2025
+ if self.url_set is not None: body['url_set'] = self.url_set
2026
+ if self.username is not None: body['username'] = self.username
2027
+ if self.username_set is not None: body['username_set'] = self.username_set
2028
+ return body
2029
+
1352
2030
  @classmethod
1353
2031
  def from_dict(cls, d: Dict[str, any]) -> GenericWebhookConfig:
1354
2032
  """Deserializes the GenericWebhookConfig from a dictionary."""
@@ -1371,6 +2049,12 @@ class GetIpAccessListResponse:
1371
2049
  if self.ip_access_list: body['ip_access_list'] = self.ip_access_list.as_dict()
1372
2050
  return body
1373
2051
 
2052
+ def as_shallow_dict(self) -> dict:
2053
+ """Serializes the GetIpAccessListResponse into a shallow dictionary of its immediate attributes."""
2054
+ body = {}
2055
+ if self.ip_access_list: body['ip_access_list'] = self.ip_access_list
2056
+ return body
2057
+
1374
2058
  @classmethod
1375
2059
  def from_dict(cls, d: Dict[str, any]) -> GetIpAccessListResponse:
1376
2060
  """Deserializes the GetIpAccessListResponse from a dictionary."""
@@ -1389,6 +2073,12 @@ class GetIpAccessListsResponse:
1389
2073
  if self.ip_access_lists: body['ip_access_lists'] = [v.as_dict() for v in self.ip_access_lists]
1390
2074
  return body
1391
2075
 
2076
+ def as_shallow_dict(self) -> dict:
2077
+ """Serializes the GetIpAccessListsResponse into a shallow dictionary of its immediate attributes."""
2078
+ body = {}
2079
+ if self.ip_access_lists: body['ip_access_lists'] = self.ip_access_lists
2080
+ return body
2081
+
1392
2082
  @classmethod
1393
2083
  def from_dict(cls, d: Dict[str, any]) -> GetIpAccessListsResponse:
1394
2084
  """Deserializes the GetIpAccessListsResponse from a dictionary."""
@@ -1406,6 +2096,12 @@ class GetTokenPermissionLevelsResponse:
1406
2096
  if self.permission_levels: body['permission_levels'] = [v.as_dict() for v in self.permission_levels]
1407
2097
  return body
1408
2098
 
2099
+ def as_shallow_dict(self) -> dict:
2100
+ """Serializes the GetTokenPermissionLevelsResponse into a shallow dictionary of its immediate attributes."""
2101
+ body = {}
2102
+ if self.permission_levels: body['permission_levels'] = self.permission_levels
2103
+ return body
2104
+
1409
2105
  @classmethod
1410
2106
  def from_dict(cls, d: Dict[str, any]) -> GetTokenPermissionLevelsResponse:
1411
2107
  """Deserializes the GetTokenPermissionLevelsResponse from a dictionary."""
@@ -1424,6 +2120,12 @@ class GetTokenResponse:
1424
2120
  if self.token_info: body['token_info'] = self.token_info.as_dict()
1425
2121
  return body
1426
2122
 
2123
+ def as_shallow_dict(self) -> dict:
2124
+ """Serializes the GetTokenResponse into a shallow dictionary of its immediate attributes."""
2125
+ body = {}
2126
+ if self.token_info: body['token_info'] = self.token_info
2127
+ return body
2128
+
1427
2129
  @classmethod
1428
2130
  def from_dict(cls, d: Dict[str, any]) -> GetTokenResponse:
1429
2131
  """Deserializes the GetTokenResponse from a dictionary."""
@@ -1481,6 +2183,21 @@ class IpAccessListInfo:
1481
2183
  if self.updated_by is not None: body['updated_by'] = self.updated_by
1482
2184
  return body
1483
2185
 
2186
+ def as_shallow_dict(self) -> dict:
2187
+ """Serializes the IpAccessListInfo into a shallow dictionary of its immediate attributes."""
2188
+ body = {}
2189
+ if self.address_count is not None: body['address_count'] = self.address_count
2190
+ if self.created_at is not None: body['created_at'] = self.created_at
2191
+ if self.created_by is not None: body['created_by'] = self.created_by
2192
+ if self.enabled is not None: body['enabled'] = self.enabled
2193
+ if self.ip_addresses: body['ip_addresses'] = self.ip_addresses
2194
+ if self.label is not None: body['label'] = self.label
2195
+ if self.list_id is not None: body['list_id'] = self.list_id
2196
+ if self.list_type is not None: body['list_type'] = self.list_type
2197
+ if self.updated_at is not None: body['updated_at'] = self.updated_at
2198
+ if self.updated_by is not None: body['updated_by'] = self.updated_by
2199
+ return body
2200
+
1484
2201
  @classmethod
1485
2202
  def from_dict(cls, d: Dict[str, any]) -> IpAccessListInfo:
1486
2203
  """Deserializes the IpAccessListInfo from a dictionary."""
@@ -1508,6 +2225,12 @@ class ListIpAccessListResponse:
1508
2225
  if self.ip_access_lists: body['ip_access_lists'] = [v.as_dict() for v in self.ip_access_lists]
1509
2226
  return body
1510
2227
 
2228
+ def as_shallow_dict(self) -> dict:
2229
+ """Serializes the ListIpAccessListResponse into a shallow dictionary of its immediate attributes."""
2230
+ body = {}
2231
+ if self.ip_access_lists: body['ip_access_lists'] = self.ip_access_lists
2232
+ return body
2233
+
1511
2234
  @classmethod
1512
2235
  def from_dict(cls, d: Dict[str, any]) -> ListIpAccessListResponse:
1513
2236
  """Deserializes the ListIpAccessListResponse from a dictionary."""
@@ -1529,6 +2252,13 @@ class ListNccAzurePrivateEndpointRulesResponse:
1529
2252
  if self.next_page_token is not None: body['next_page_token'] = self.next_page_token
1530
2253
  return body
1531
2254
 
2255
+ def as_shallow_dict(self) -> dict:
2256
+ """Serializes the ListNccAzurePrivateEndpointRulesResponse into a shallow dictionary of its immediate attributes."""
2257
+ body = {}
2258
+ if self.items: body['items'] = self.items
2259
+ if self.next_page_token is not None: body['next_page_token'] = self.next_page_token
2260
+ return body
2261
+
1532
2262
  @classmethod
1533
2263
  def from_dict(cls, d: Dict[str, any]) -> ListNccAzurePrivateEndpointRulesResponse:
1534
2264
  """Deserializes the ListNccAzurePrivateEndpointRulesResponse from a dictionary."""
@@ -1551,6 +2281,13 @@ class ListNetworkConnectivityConfigurationsResponse:
1551
2281
  if self.next_page_token is not None: body['next_page_token'] = self.next_page_token
1552
2282
  return body
1553
2283
 
2284
+ def as_shallow_dict(self) -> dict:
2285
+ """Serializes the ListNetworkConnectivityConfigurationsResponse into a shallow dictionary of its immediate attributes."""
2286
+ body = {}
2287
+ if self.items: body['items'] = self.items
2288
+ if self.next_page_token is not None: body['next_page_token'] = self.next_page_token
2289
+ return body
2290
+
1554
2291
  @classmethod
1555
2292
  def from_dict(cls, d: Dict[str, any]) -> ListNetworkConnectivityConfigurationsResponse:
1556
2293
  """Deserializes the ListNetworkConnectivityConfigurationsResponse from a dictionary."""
@@ -1572,6 +2309,13 @@ class ListNotificationDestinationsResponse:
1572
2309
  if self.results: body['results'] = [v.as_dict() for v in self.results]
1573
2310
  return body
1574
2311
 
2312
+ def as_shallow_dict(self) -> dict:
2313
+ """Serializes the ListNotificationDestinationsResponse into a shallow dictionary of its immediate attributes."""
2314
+ body = {}
2315
+ if self.next_page_token is not None: body['next_page_token'] = self.next_page_token
2316
+ if self.results: body['results'] = self.results
2317
+ return body
2318
+
1575
2319
  @classmethod
1576
2320
  def from_dict(cls, d: Dict[str, any]) -> ListNotificationDestinationsResponse:
1577
2321
  """Deserializes the ListNotificationDestinationsResponse from a dictionary."""
@@ -1598,6 +2342,14 @@ class ListNotificationDestinationsResult:
1598
2342
  if self.id is not None: body['id'] = self.id
1599
2343
  return body
1600
2344
 
2345
+ def as_shallow_dict(self) -> dict:
2346
+ """Serializes the ListNotificationDestinationsResult into a shallow dictionary of its immediate attributes."""
2347
+ body = {}
2348
+ if self.destination_type is not None: body['destination_type'] = self.destination_type
2349
+ if self.display_name is not None: body['display_name'] = self.display_name
2350
+ if self.id is not None: body['id'] = self.id
2351
+ return body
2352
+
1601
2353
  @classmethod
1602
2354
  def from_dict(cls, d: Dict[str, any]) -> ListNotificationDestinationsResult:
1603
2355
  """Deserializes the ListNotificationDestinationsResult from a dictionary."""
@@ -1617,6 +2369,12 @@ class ListPublicTokensResponse:
1617
2369
  if self.token_infos: body['token_infos'] = [v.as_dict() for v in self.token_infos]
1618
2370
  return body
1619
2371
 
2372
+ def as_shallow_dict(self) -> dict:
2373
+ """Serializes the ListPublicTokensResponse into a shallow dictionary of its immediate attributes."""
2374
+ body = {}
2375
+ if self.token_infos: body['token_infos'] = self.token_infos
2376
+ return body
2377
+
1620
2378
  @classmethod
1621
2379
  def from_dict(cls, d: Dict[str, any]) -> ListPublicTokensResponse:
1622
2380
  """Deserializes the ListPublicTokensResponse from a dictionary."""
@@ -1636,6 +2394,12 @@ class ListTokensResponse:
1636
2394
  if self.token_infos: body['token_infos'] = [v.as_dict() for v in self.token_infos]
1637
2395
  return body
1638
2396
 
2397
+ def as_shallow_dict(self) -> dict:
2398
+ """Serializes the ListTokensResponse into a shallow dictionary of its immediate attributes."""
2399
+ body = {}
2400
+ if self.token_infos: body['token_infos'] = self.token_infos
2401
+ return body
2402
+
1639
2403
  @classmethod
1640
2404
  def from_dict(cls, d: Dict[str, any]) -> ListTokensResponse:
1641
2405
  """Deserializes the ListTokensResponse from a dictionary."""
@@ -1667,6 +2431,13 @@ class MicrosoftTeamsConfig:
1667
2431
  if self.url_set is not None: body['url_set'] = self.url_set
1668
2432
  return body
1669
2433
 
2434
+ def as_shallow_dict(self) -> dict:
2435
+ """Serializes the MicrosoftTeamsConfig into a shallow dictionary of its immediate attributes."""
2436
+ body = {}
2437
+ if self.url is not None: body['url'] = self.url
2438
+ if self.url_set is not None: body['url_set'] = self.url_set
2439
+ return body
2440
+
1670
2441
  @classmethod
1671
2442
  def from_dict(cls, d: Dict[str, any]) -> MicrosoftTeamsConfig:
1672
2443
  """Deserializes the MicrosoftTeamsConfig from a dictionary."""
@@ -1688,6 +2459,12 @@ class NccAwsStableIpRule:
1688
2459
  if self.cidr_blocks: body['cidr_blocks'] = [v for v in self.cidr_blocks]
1689
2460
  return body
1690
2461
 
2462
+ def as_shallow_dict(self) -> dict:
2463
+ """Serializes the NccAwsStableIpRule into a shallow dictionary of its immediate attributes."""
2464
+ body = {}
2465
+ if self.cidr_blocks: body['cidr_blocks'] = self.cidr_blocks
2466
+ return body
2467
+
1691
2468
  @classmethod
1692
2469
  def from_dict(cls, d: Dict[str, any]) -> NccAwsStableIpRule:
1693
2470
  """Deserializes the NccAwsStableIpRule from a dictionary."""
@@ -1745,7 +2522,23 @@ class NccAzurePrivateEndpointRule:
1745
2522
  if self.deactivated is not None: body['deactivated'] = self.deactivated
1746
2523
  if self.deactivated_at is not None: body['deactivated_at'] = self.deactivated_at
1747
2524
  if self.endpoint_name is not None: body['endpoint_name'] = self.endpoint_name
1748
- if self.group_id is not None: body['group_id'] = self.group_id.value
2525
+ if self.group_id is not None: body['group_id'] = self.group_id.value
2526
+ if self.network_connectivity_config_id is not None:
2527
+ body['network_connectivity_config_id'] = self.network_connectivity_config_id
2528
+ if self.resource_id is not None: body['resource_id'] = self.resource_id
2529
+ if self.rule_id is not None: body['rule_id'] = self.rule_id
2530
+ if self.updated_time is not None: body['updated_time'] = self.updated_time
2531
+ return body
2532
+
2533
+ def as_shallow_dict(self) -> dict:
2534
+ """Serializes the NccAzurePrivateEndpointRule into a shallow dictionary of its immediate attributes."""
2535
+ body = {}
2536
+ if self.connection_state is not None: body['connection_state'] = self.connection_state
2537
+ if self.creation_time is not None: body['creation_time'] = self.creation_time
2538
+ if self.deactivated is not None: body['deactivated'] = self.deactivated
2539
+ if self.deactivated_at is not None: body['deactivated_at'] = self.deactivated_at
2540
+ if self.endpoint_name is not None: body['endpoint_name'] = self.endpoint_name
2541
+ if self.group_id is not None: body['group_id'] = self.group_id
1749
2542
  if self.network_connectivity_config_id is not None:
1750
2543
  body['network_connectivity_config_id'] = self.network_connectivity_config_id
1751
2544
  if self.resource_id is not None: body['resource_id'] = self.resource_id
@@ -1820,6 +2613,14 @@ class NccAzureServiceEndpointRule:
1820
2613
  if self.target_services: body['target_services'] = [v for v in self.target_services]
1821
2614
  return body
1822
2615
 
2616
+ def as_shallow_dict(self) -> dict:
2617
+ """Serializes the NccAzureServiceEndpointRule into a shallow dictionary of its immediate attributes."""
2618
+ body = {}
2619
+ if self.subnets: body['subnets'] = self.subnets
2620
+ if self.target_region is not None: body['target_region'] = self.target_region
2621
+ if self.target_services: body['target_services'] = self.target_services
2622
+ return body
2623
+
1823
2624
  @classmethod
1824
2625
  def from_dict(cls, d: Dict[str, any]) -> NccAzureServiceEndpointRule:
1825
2626
  """Deserializes the NccAzureServiceEndpointRule from a dictionary."""
@@ -1849,6 +2650,13 @@ class NccEgressConfig:
1849
2650
  if self.target_rules: body['target_rules'] = self.target_rules.as_dict()
1850
2651
  return body
1851
2652
 
2653
+ def as_shallow_dict(self) -> dict:
2654
+ """Serializes the NccEgressConfig into a shallow dictionary of its immediate attributes."""
2655
+ body = {}
2656
+ if self.default_rules: body['default_rules'] = self.default_rules
2657
+ if self.target_rules: body['target_rules'] = self.target_rules
2658
+ return body
2659
+
1852
2660
  @classmethod
1853
2661
  def from_dict(cls, d: Dict[str, any]) -> NccEgressConfig:
1854
2662
  """Deserializes the NccEgressConfig from a dictionary."""
@@ -1878,6 +2686,14 @@ class NccEgressDefaultRules:
1878
2686
  body['azure_service_endpoint_rule'] = self.azure_service_endpoint_rule.as_dict()
1879
2687
  return body
1880
2688
 
2689
+ def as_shallow_dict(self) -> dict:
2690
+ """Serializes the NccEgressDefaultRules into a shallow dictionary of its immediate attributes."""
2691
+ body = {}
2692
+ if self.aws_stable_ip_rule: body['aws_stable_ip_rule'] = self.aws_stable_ip_rule
2693
+ if self.azure_service_endpoint_rule:
2694
+ body['azure_service_endpoint_rule'] = self.azure_service_endpoint_rule
2695
+ return body
2696
+
1881
2697
  @classmethod
1882
2698
  def from_dict(cls, d: Dict[str, any]) -> NccEgressDefaultRules:
1883
2699
  """Deserializes the NccEgressDefaultRules from a dictionary."""
@@ -1900,6 +2716,13 @@ class NccEgressTargetRules:
1900
2716
  body['azure_private_endpoint_rules'] = [v.as_dict() for v in self.azure_private_endpoint_rules]
1901
2717
  return body
1902
2718
 
2719
+ def as_shallow_dict(self) -> dict:
2720
+ """Serializes the NccEgressTargetRules into a shallow dictionary of its immediate attributes."""
2721
+ body = {}
2722
+ if self.azure_private_endpoint_rules:
2723
+ body['azure_private_endpoint_rules'] = self.azure_private_endpoint_rules
2724
+ return body
2725
+
1903
2726
  @classmethod
1904
2727
  def from_dict(cls, d: Dict[str, any]) -> NccEgressTargetRules:
1905
2728
  """Deserializes the NccEgressTargetRules from a dictionary."""
@@ -1947,6 +2770,19 @@ class NetworkConnectivityConfiguration:
1947
2770
  if self.updated_time is not None: body['updated_time'] = self.updated_time
1948
2771
  return body
1949
2772
 
2773
+ def as_shallow_dict(self) -> dict:
2774
+ """Serializes the NetworkConnectivityConfiguration into a shallow dictionary of its immediate attributes."""
2775
+ body = {}
2776
+ if self.account_id is not None: body['account_id'] = self.account_id
2777
+ if self.creation_time is not None: body['creation_time'] = self.creation_time
2778
+ if self.egress_config: body['egress_config'] = self.egress_config
2779
+ if self.name is not None: body['name'] = self.name
2780
+ if self.network_connectivity_config_id is not None:
2781
+ body['network_connectivity_config_id'] = self.network_connectivity_config_id
2782
+ if self.region is not None: body['region'] = self.region
2783
+ if self.updated_time is not None: body['updated_time'] = self.updated_time
2784
+ return body
2785
+
1950
2786
  @classmethod
1951
2787
  def from_dict(cls, d: Dict[str, any]) -> NetworkConnectivityConfiguration:
1952
2788
  """Deserializes the NetworkConnectivityConfiguration from a dictionary."""
@@ -1983,6 +2819,15 @@ class NotificationDestination:
1983
2819
  if self.id is not None: body['id'] = self.id
1984
2820
  return body
1985
2821
 
2822
+ def as_shallow_dict(self) -> dict:
2823
+ """Serializes the NotificationDestination into a shallow dictionary of its immediate attributes."""
2824
+ body = {}
2825
+ if self.config: body['config'] = self.config
2826
+ if self.destination_type is not None: body['destination_type'] = self.destination_type
2827
+ if self.display_name is not None: body['display_name'] = self.display_name
2828
+ if self.id is not None: body['id'] = self.id
2829
+ return body
2830
+
1986
2831
  @classmethod
1987
2832
  def from_dict(cls, d: Dict[str, any]) -> NotificationDestination:
1988
2833
  """Deserializes the NotificationDestination from a dictionary."""
@@ -2007,6 +2852,13 @@ class PagerdutyConfig:
2007
2852
  if self.integration_key_set is not None: body['integration_key_set'] = self.integration_key_set
2008
2853
  return body
2009
2854
 
2855
+ def as_shallow_dict(self) -> dict:
2856
+ """Serializes the PagerdutyConfig into a shallow dictionary of its immediate attributes."""
2857
+ body = {}
2858
+ if self.integration_key is not None: body['integration_key'] = self.integration_key
2859
+ if self.integration_key_set is not None: body['integration_key_set'] = self.integration_key_set
2860
+ return body
2861
+
2010
2862
  @classmethod
2011
2863
  def from_dict(cls, d: Dict[str, any]) -> PagerdutyConfig:
2012
2864
  """Deserializes the PagerdutyConfig from a dictionary."""
@@ -2027,6 +2879,12 @@ class PartitionId:
2027
2879
  if self.workspace_id is not None: body['workspaceId'] = self.workspace_id
2028
2880
  return body
2029
2881
 
2882
+ def as_shallow_dict(self) -> dict:
2883
+ """Serializes the PartitionId into a shallow dictionary of its immediate attributes."""
2884
+ body = {}
2885
+ if self.workspace_id is not None: body['workspaceId'] = self.workspace_id
2886
+ return body
2887
+
2030
2888
  @classmethod
2031
2889
  def from_dict(cls, d: Dict[str, any]) -> PartitionId:
2032
2890
  """Deserializes the PartitionId from a dictionary."""
@@ -2048,6 +2906,12 @@ class PersonalComputeMessage:
2048
2906
  if self.value is not None: body['value'] = self.value.value
2049
2907
  return body
2050
2908
 
2909
+ def as_shallow_dict(self) -> dict:
2910
+ """Serializes the PersonalComputeMessage into a shallow dictionary of its immediate attributes."""
2911
+ body = {}
2912
+ if self.value is not None: body['value'] = self.value
2913
+ return body
2914
+
2051
2915
  @classmethod
2052
2916
  def from_dict(cls, d: Dict[str, any]) -> PersonalComputeMessage:
2053
2917
  """Deserializes the PersonalComputeMessage from a dictionary."""
@@ -2091,6 +2955,14 @@ class PersonalComputeSetting:
2091
2955
  if self.setting_name is not None: body['setting_name'] = self.setting_name
2092
2956
  return body
2093
2957
 
2958
+ def as_shallow_dict(self) -> dict:
2959
+ """Serializes the PersonalComputeSetting into a shallow dictionary of its immediate attributes."""
2960
+ body = {}
2961
+ if self.etag is not None: body['etag'] = self.etag
2962
+ if self.personal_compute: body['personal_compute'] = self.personal_compute
2963
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
2964
+ return body
2965
+
2094
2966
  @classmethod
2095
2967
  def from_dict(cls, d: Dict[str, any]) -> PersonalComputeSetting:
2096
2968
  """Deserializes the PersonalComputeSetting from a dictionary."""
@@ -2122,6 +2994,15 @@ class PublicTokenInfo:
2122
2994
  if self.token_id is not None: body['token_id'] = self.token_id
2123
2995
  return body
2124
2996
 
2997
+ def as_shallow_dict(self) -> dict:
2998
+ """Serializes the PublicTokenInfo into a shallow dictionary of its immediate attributes."""
2999
+ body = {}
3000
+ if self.comment is not None: body['comment'] = self.comment
3001
+ if self.creation_time is not None: body['creation_time'] = self.creation_time
3002
+ if self.expiry_time is not None: body['expiry_time'] = self.expiry_time
3003
+ if self.token_id is not None: body['token_id'] = self.token_id
3004
+ return body
3005
+
2125
3006
  @classmethod
2126
3007
  def from_dict(cls, d: Dict[str, any]) -> PublicTokenInfo:
2127
3008
  """Deserializes the PublicTokenInfo from a dictionary."""
@@ -2162,6 +3043,16 @@ class ReplaceIpAccessList:
2162
3043
  if self.list_type is not None: body['list_type'] = self.list_type.value
2163
3044
  return body
2164
3045
 
3046
+ def as_shallow_dict(self) -> dict:
3047
+ """Serializes the ReplaceIpAccessList into a shallow dictionary of its immediate attributes."""
3048
+ body = {}
3049
+ if self.enabled is not None: body['enabled'] = self.enabled
3050
+ if self.ip_access_list_id is not None: body['ip_access_list_id'] = self.ip_access_list_id
3051
+ if self.ip_addresses: body['ip_addresses'] = self.ip_addresses
3052
+ if self.label is not None: body['label'] = self.label
3053
+ if self.list_type is not None: body['list_type'] = self.list_type
3054
+ return body
3055
+
2165
3056
  @classmethod
2166
3057
  def from_dict(cls, d: Dict[str, any]) -> ReplaceIpAccessList:
2167
3058
  """Deserializes the ReplaceIpAccessList from a dictionary."""
@@ -2180,6 +3071,11 @@ class ReplaceResponse:
2180
3071
  body = {}
2181
3072
  return body
2182
3073
 
3074
+ def as_shallow_dict(self) -> dict:
3075
+ """Serializes the ReplaceResponse into a shallow dictionary of its immediate attributes."""
3076
+ body = {}
3077
+ return body
3078
+
2183
3079
  @classmethod
2184
3080
  def from_dict(cls, d: Dict[str, any]) -> ReplaceResponse:
2185
3081
  """Deserializes the ReplaceResponse from a dictionary."""
@@ -2196,6 +3092,12 @@ class RestrictWorkspaceAdminsMessage:
2196
3092
  if self.status is not None: body['status'] = self.status.value
2197
3093
  return body
2198
3094
 
3095
+ def as_shallow_dict(self) -> dict:
3096
+ """Serializes the RestrictWorkspaceAdminsMessage into a shallow dictionary of its immediate attributes."""
3097
+ body = {}
3098
+ if self.status is not None: body['status'] = self.status
3099
+ return body
3100
+
2199
3101
  @classmethod
2200
3102
  def from_dict(cls, d: Dict[str, any]) -> RestrictWorkspaceAdminsMessage:
2201
3103
  """Deserializes the RestrictWorkspaceAdminsMessage from a dictionary."""
@@ -2235,6 +3137,14 @@ class RestrictWorkspaceAdminsSetting:
2235
3137
  if self.setting_name is not None: body['setting_name'] = self.setting_name
2236
3138
  return body
2237
3139
 
3140
+ def as_shallow_dict(self) -> dict:
3141
+ """Serializes the RestrictWorkspaceAdminsSetting into a shallow dictionary of its immediate attributes."""
3142
+ body = {}
3143
+ if self.etag is not None: body['etag'] = self.etag
3144
+ if self.restrict_workspace_admins: body['restrict_workspace_admins'] = self.restrict_workspace_admins
3145
+ if self.setting_name is not None: body['setting_name'] = self.setting_name
3146
+ return body
3147
+
2238
3148
  @classmethod
2239
3149
  def from_dict(cls, d: Dict[str, any]) -> RestrictWorkspaceAdminsSetting:
2240
3150
  """Deserializes the RestrictWorkspaceAdminsSetting from a dictionary."""
@@ -2255,6 +3165,12 @@ class RevokeTokenRequest:
2255
3165
  if self.token_id is not None: body['token_id'] = self.token_id
2256
3166
  return body
2257
3167
 
3168
+ def as_shallow_dict(self) -> dict:
3169
+ """Serializes the RevokeTokenRequest into a shallow dictionary of its immediate attributes."""
3170
+ body = {}
3171
+ if self.token_id is not None: body['token_id'] = self.token_id
3172
+ return body
3173
+
2258
3174
  @classmethod
2259
3175
  def from_dict(cls, d: Dict[str, any]) -> RevokeTokenRequest:
2260
3176
  """Deserializes the RevokeTokenRequest from a dictionary."""
@@ -2269,6 +3185,11 @@ class RevokeTokenResponse:
2269
3185
  body = {}
2270
3186
  return body
2271
3187
 
3188
+ def as_shallow_dict(self) -> dict:
3189
+ """Serializes the RevokeTokenResponse into a shallow dictionary of its immediate attributes."""
3190
+ body = {}
3191
+ return body
3192
+
2272
3193
  @classmethod
2273
3194
  def from_dict(cls, d: Dict[str, any]) -> RevokeTokenResponse:
2274
3195
  """Deserializes the RevokeTokenResponse from a dictionary."""
@@ -2283,6 +3204,11 @@ class SetStatusResponse:
2283
3204
  body = {}
2284
3205
  return body
2285
3206
 
3207
+ def as_shallow_dict(self) -> dict:
3208
+ """Serializes the SetStatusResponse into a shallow dictionary of its immediate attributes."""
3209
+ body = {}
3210
+ return body
3211
+
2286
3212
  @classmethod
2287
3213
  def from_dict(cls, d: Dict[str, any]) -> SetStatusResponse:
2288
3214
  """Deserializes the SetStatusResponse from a dictionary."""
@@ -2304,6 +3230,13 @@ class SlackConfig:
2304
3230
  if self.url_set is not None: body['url_set'] = self.url_set
2305
3231
  return body
2306
3232
 
3233
+ def as_shallow_dict(self) -> dict:
3234
+ """Serializes the SlackConfig into a shallow dictionary of its immediate attributes."""
3235
+ body = {}
3236
+ if self.url is not None: body['url'] = self.url
3237
+ if self.url_set is not None: body['url_set'] = self.url_set
3238
+ return body
3239
+
2307
3240
  @classmethod
2308
3241
  def from_dict(cls, d: Dict[str, any]) -> SlackConfig:
2309
3242
  """Deserializes the SlackConfig from a dictionary."""
@@ -2321,6 +3254,12 @@ class StringMessage:
2321
3254
  if self.value is not None: body['value'] = self.value
2322
3255
  return body
2323
3256
 
3257
+ def as_shallow_dict(self) -> dict:
3258
+ """Serializes the StringMessage into a shallow dictionary of its immediate attributes."""
3259
+ body = {}
3260
+ if self.value is not None: body['value'] = self.value
3261
+ return body
3262
+
2324
3263
  @classmethod
2325
3264
  def from_dict(cls, d: Dict[str, any]) -> StringMessage:
2326
3265
  """Deserializes the StringMessage from a dictionary."""
@@ -2351,6 +3290,16 @@ class TokenAccessControlRequest:
2351
3290
  if self.user_name is not None: body['user_name'] = self.user_name
2352
3291
  return body
2353
3292
 
3293
+ def as_shallow_dict(self) -> dict:
3294
+ """Serializes the TokenAccessControlRequest into a shallow dictionary of its immediate attributes."""
3295
+ body = {}
3296
+ if self.group_name is not None: body['group_name'] = self.group_name
3297
+ if self.permission_level is not None: body['permission_level'] = self.permission_level
3298
+ if self.service_principal_name is not None:
3299
+ body['service_principal_name'] = self.service_principal_name
3300
+ if self.user_name is not None: body['user_name'] = self.user_name
3301
+ return body
3302
+
2354
3303
  @classmethod
2355
3304
  def from_dict(cls, d: Dict[str, any]) -> TokenAccessControlRequest:
2356
3305
  """Deserializes the TokenAccessControlRequest from a dictionary."""
@@ -2388,6 +3337,17 @@ class TokenAccessControlResponse:
2388
3337
  if self.user_name is not None: body['user_name'] = self.user_name
2389
3338
  return body
2390
3339
 
3340
+ def as_shallow_dict(self) -> dict:
3341
+ """Serializes the TokenAccessControlResponse into a shallow dictionary of its immediate attributes."""
3342
+ body = {}
3343
+ if self.all_permissions: body['all_permissions'] = self.all_permissions
3344
+ if self.display_name is not None: body['display_name'] = self.display_name
3345
+ if self.group_name is not None: body['group_name'] = self.group_name
3346
+ if self.service_principal_name is not None:
3347
+ body['service_principal_name'] = self.service_principal_name
3348
+ if self.user_name is not None: body['user_name'] = self.user_name
3349
+ return body
3350
+
2391
3351
  @classmethod
2392
3352
  def from_dict(cls, d: Dict[str, any]) -> TokenAccessControlResponse:
2393
3353
  """Deserializes the TokenAccessControlResponse from a dictionary."""
@@ -2441,6 +3401,20 @@ class TokenInfo:
2441
3401
  if self.workspace_id is not None: body['workspace_id'] = self.workspace_id
2442
3402
  return body
2443
3403
 
3404
+ def as_shallow_dict(self) -> dict:
3405
+ """Serializes the TokenInfo into a shallow dictionary of its immediate attributes."""
3406
+ body = {}
3407
+ if self.comment is not None: body['comment'] = self.comment
3408
+ if self.created_by_id is not None: body['created_by_id'] = self.created_by_id
3409
+ if self.created_by_username is not None: body['created_by_username'] = self.created_by_username
3410
+ if self.creation_time is not None: body['creation_time'] = self.creation_time
3411
+ if self.expiry_time is not None: body['expiry_time'] = self.expiry_time
3412
+ if self.last_used_day is not None: body['last_used_day'] = self.last_used_day
3413
+ if self.owner_id is not None: body['owner_id'] = self.owner_id
3414
+ if self.token_id is not None: body['token_id'] = self.token_id
3415
+ if self.workspace_id is not None: body['workspace_id'] = self.workspace_id
3416
+ return body
3417
+
2444
3418
  @classmethod
2445
3419
  def from_dict(cls, d: Dict[str, any]) -> TokenInfo:
2446
3420
  """Deserializes the TokenInfo from a dictionary."""
@@ -2472,6 +3446,14 @@ class TokenPermission:
2472
3446
  if self.permission_level is not None: body['permission_level'] = self.permission_level.value
2473
3447
  return body
2474
3448
 
3449
+ def as_shallow_dict(self) -> dict:
3450
+ """Serializes the TokenPermission into a shallow dictionary of its immediate attributes."""
3451
+ body = {}
3452
+ if self.inherited is not None: body['inherited'] = self.inherited
3453
+ if self.inherited_from_object: body['inherited_from_object'] = self.inherited_from_object
3454
+ if self.permission_level is not None: body['permission_level'] = self.permission_level
3455
+ return body
3456
+
2475
3457
  @classmethod
2476
3458
  def from_dict(cls, d: Dict[str, any]) -> TokenPermission:
2477
3459
  """Deserializes the TokenPermission from a dictionary."""
@@ -2503,6 +3485,14 @@ class TokenPermissions:
2503
3485
  if self.object_type is not None: body['object_type'] = self.object_type
2504
3486
  return body
2505
3487
 
3488
+ def as_shallow_dict(self) -> dict:
3489
+ """Serializes the TokenPermissions into a shallow dictionary of its immediate attributes."""
3490
+ body = {}
3491
+ if self.access_control_list: body['access_control_list'] = self.access_control_list
3492
+ if self.object_id is not None: body['object_id'] = self.object_id
3493
+ if self.object_type is not None: body['object_type'] = self.object_type
3494
+ return body
3495
+
2506
3496
  @classmethod
2507
3497
  def from_dict(cls, d: Dict[str, any]) -> TokenPermissions:
2508
3498
  """Deserializes the TokenPermissions from a dictionary."""
@@ -2525,6 +3515,13 @@ class TokenPermissionsDescription:
2525
3515
  if self.permission_level is not None: body['permission_level'] = self.permission_level.value
2526
3516
  return body
2527
3517
 
3518
+ def as_shallow_dict(self) -> dict:
3519
+ """Serializes the TokenPermissionsDescription into a shallow dictionary of its immediate attributes."""
3520
+ body = {}
3521
+ if self.description is not None: body['description'] = self.description
3522
+ if self.permission_level is not None: body['permission_level'] = self.permission_level
3523
+ return body
3524
+
2528
3525
  @classmethod
2529
3526
  def from_dict(cls, d: Dict[str, any]) -> TokenPermissionsDescription:
2530
3527
  """Deserializes the TokenPermissionsDescription from a dictionary."""
@@ -2543,6 +3540,12 @@ class TokenPermissionsRequest:
2543
3540
  body['access_control_list'] = [v.as_dict() for v in self.access_control_list]
2544
3541
  return body
2545
3542
 
3543
+ def as_shallow_dict(self) -> dict:
3544
+ """Serializes the TokenPermissionsRequest into a shallow dictionary of its immediate attributes."""
3545
+ body = {}
3546
+ if self.access_control_list: body['access_control_list'] = self.access_control_list
3547
+ return body
3548
+
2546
3549
  @classmethod
2547
3550
  def from_dict(cls, d: Dict[str, any]) -> TokenPermissionsRequest:
2548
3551
  """Deserializes the TokenPermissionsRequest from a dictionary."""
@@ -2578,6 +3581,14 @@ class UpdateAibiDashboardEmbeddingAccessPolicySettingRequest:
2578
3581
  if self.setting: body['setting'] = self.setting.as_dict()
2579
3582
  return body
2580
3583
 
3584
+ def as_shallow_dict(self) -> dict:
3585
+ """Serializes the UpdateAibiDashboardEmbeddingAccessPolicySettingRequest into a shallow dictionary of its immediate attributes."""
3586
+ body = {}
3587
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3588
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3589
+ if self.setting: body['setting'] = self.setting
3590
+ return body
3591
+
2581
3592
  @classmethod
2582
3593
  def from_dict(cls, d: Dict[str, any]) -> UpdateAibiDashboardEmbeddingAccessPolicySettingRequest:
2583
3594
  """Deserializes the UpdateAibiDashboardEmbeddingAccessPolicySettingRequest from a dictionary."""
@@ -2608,6 +3619,14 @@ class UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest:
2608
3619
  if self.setting: body['setting'] = self.setting.as_dict()
2609
3620
  return body
2610
3621
 
3622
+ def as_shallow_dict(self) -> dict:
3623
+ """Serializes the UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest into a shallow dictionary of its immediate attributes."""
3624
+ body = {}
3625
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3626
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3627
+ if self.setting: body['setting'] = self.setting
3628
+ return body
3629
+
2611
3630
  @classmethod
2612
3631
  def from_dict(cls, d: Dict[str, any]) -> UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest:
2613
3632
  """Deserializes the UpdateAibiDashboardEmbeddingApprovedDomainsSettingRequest from a dictionary."""
@@ -2638,6 +3657,14 @@ class UpdateAutomaticClusterUpdateSettingRequest:
2638
3657
  if self.setting: body['setting'] = self.setting.as_dict()
2639
3658
  return body
2640
3659
 
3660
+ def as_shallow_dict(self) -> dict:
3661
+ """Serializes the UpdateAutomaticClusterUpdateSettingRequest into a shallow dictionary of its immediate attributes."""
3662
+ body = {}
3663
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3664
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3665
+ if self.setting: body['setting'] = self.setting
3666
+ return body
3667
+
2641
3668
  @classmethod
2642
3669
  def from_dict(cls, d: Dict[str, any]) -> UpdateAutomaticClusterUpdateSettingRequest:
2643
3670
  """Deserializes the UpdateAutomaticClusterUpdateSettingRequest from a dictionary."""
@@ -2668,6 +3695,14 @@ class UpdateComplianceSecurityProfileSettingRequest:
2668
3695
  if self.setting: body['setting'] = self.setting.as_dict()
2669
3696
  return body
2670
3697
 
3698
+ def as_shallow_dict(self) -> dict:
3699
+ """Serializes the UpdateComplianceSecurityProfileSettingRequest into a shallow dictionary of its immediate attributes."""
3700
+ body = {}
3701
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3702
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3703
+ if self.setting: body['setting'] = self.setting
3704
+ return body
3705
+
2671
3706
  @classmethod
2672
3707
  def from_dict(cls, d: Dict[str, any]) -> UpdateComplianceSecurityProfileSettingRequest:
2673
3708
  """Deserializes the UpdateComplianceSecurityProfileSettingRequest from a dictionary."""
@@ -2698,6 +3733,14 @@ class UpdateCspEnablementAccountSettingRequest:
2698
3733
  if self.setting: body['setting'] = self.setting.as_dict()
2699
3734
  return body
2700
3735
 
3736
+ def as_shallow_dict(self) -> dict:
3737
+ """Serializes the UpdateCspEnablementAccountSettingRequest into a shallow dictionary of its immediate attributes."""
3738
+ body = {}
3739
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3740
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3741
+ if self.setting: body['setting'] = self.setting
3742
+ return body
3743
+
2701
3744
  @classmethod
2702
3745
  def from_dict(cls, d: Dict[str, any]) -> UpdateCspEnablementAccountSettingRequest:
2703
3746
  """Deserializes the UpdateCspEnablementAccountSettingRequest from a dictionary."""
@@ -2735,6 +3778,14 @@ class UpdateDefaultNamespaceSettingRequest:
2735
3778
  if self.setting: body['setting'] = self.setting.as_dict()
2736
3779
  return body
2737
3780
 
3781
+ def as_shallow_dict(self) -> dict:
3782
+ """Serializes the UpdateDefaultNamespaceSettingRequest into a shallow dictionary of its immediate attributes."""
3783
+ body = {}
3784
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3785
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3786
+ if self.setting: body['setting'] = self.setting
3787
+ return body
3788
+
2738
3789
  @classmethod
2739
3790
  def from_dict(cls, d: Dict[str, any]) -> UpdateDefaultNamespaceSettingRequest:
2740
3791
  """Deserializes the UpdateDefaultNamespaceSettingRequest from a dictionary."""
@@ -2765,6 +3816,14 @@ class UpdateDisableLegacyAccessRequest:
2765
3816
  if self.setting: body['setting'] = self.setting.as_dict()
2766
3817
  return body
2767
3818
 
3819
+ def as_shallow_dict(self) -> dict:
3820
+ """Serializes the UpdateDisableLegacyAccessRequest into a shallow dictionary of its immediate attributes."""
3821
+ body = {}
3822
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3823
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3824
+ if self.setting: body['setting'] = self.setting
3825
+ return body
3826
+
2768
3827
  @classmethod
2769
3828
  def from_dict(cls, d: Dict[str, any]) -> UpdateDisableLegacyAccessRequest:
2770
3829
  """Deserializes the UpdateDisableLegacyAccessRequest from a dictionary."""
@@ -2795,6 +3854,14 @@ class UpdateDisableLegacyDbfsRequest:
2795
3854
  if self.setting: body['setting'] = self.setting.as_dict()
2796
3855
  return body
2797
3856
 
3857
+ def as_shallow_dict(self) -> dict:
3858
+ """Serializes the UpdateDisableLegacyDbfsRequest into a shallow dictionary of its immediate attributes."""
3859
+ body = {}
3860
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3861
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3862
+ if self.setting: body['setting'] = self.setting
3863
+ return body
3864
+
2798
3865
  @classmethod
2799
3866
  def from_dict(cls, d: Dict[str, any]) -> UpdateDisableLegacyDbfsRequest:
2800
3867
  """Deserializes the UpdateDisableLegacyDbfsRequest from a dictionary."""
@@ -2825,6 +3892,14 @@ class UpdateDisableLegacyFeaturesRequest:
2825
3892
  if self.setting: body['setting'] = self.setting.as_dict()
2826
3893
  return body
2827
3894
 
3895
+ def as_shallow_dict(self) -> dict:
3896
+ """Serializes the UpdateDisableLegacyFeaturesRequest into a shallow dictionary of its immediate attributes."""
3897
+ body = {}
3898
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3899
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3900
+ if self.setting: body['setting'] = self.setting
3901
+ return body
3902
+
2828
3903
  @classmethod
2829
3904
  def from_dict(cls, d: Dict[str, any]) -> UpdateDisableLegacyFeaturesRequest:
2830
3905
  """Deserializes the UpdateDisableLegacyFeaturesRequest from a dictionary."""
@@ -2855,6 +3930,14 @@ class UpdateEnhancedSecurityMonitoringSettingRequest:
2855
3930
  if self.setting: body['setting'] = self.setting.as_dict()
2856
3931
  return body
2857
3932
 
3933
+ def as_shallow_dict(self) -> dict:
3934
+ """Serializes the UpdateEnhancedSecurityMonitoringSettingRequest into a shallow dictionary of its immediate attributes."""
3935
+ body = {}
3936
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3937
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3938
+ if self.setting: body['setting'] = self.setting
3939
+ return body
3940
+
2858
3941
  @classmethod
2859
3942
  def from_dict(cls, d: Dict[str, any]) -> UpdateEnhancedSecurityMonitoringSettingRequest:
2860
3943
  """Deserializes the UpdateEnhancedSecurityMonitoringSettingRequest from a dictionary."""
@@ -2885,6 +3968,14 @@ class UpdateEsmEnablementAccountSettingRequest:
2885
3968
  if self.setting: body['setting'] = self.setting.as_dict()
2886
3969
  return body
2887
3970
 
3971
+ def as_shallow_dict(self) -> dict:
3972
+ """Serializes the UpdateEsmEnablementAccountSettingRequest into a shallow dictionary of its immediate attributes."""
3973
+ body = {}
3974
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
3975
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
3976
+ if self.setting: body['setting'] = self.setting
3977
+ return body
3978
+
2888
3979
  @classmethod
2889
3980
  def from_dict(cls, d: Dict[str, any]) -> UpdateEsmEnablementAccountSettingRequest:
2890
3981
  """Deserializes the UpdateEsmEnablementAccountSettingRequest from a dictionary."""
@@ -2924,6 +4015,16 @@ class UpdateIpAccessList:
2924
4015
  if self.list_type is not None: body['list_type'] = self.list_type.value
2925
4016
  return body
2926
4017
 
4018
+ def as_shallow_dict(self) -> dict:
4019
+ """Serializes the UpdateIpAccessList into a shallow dictionary of its immediate attributes."""
4020
+ body = {}
4021
+ if self.enabled is not None: body['enabled'] = self.enabled
4022
+ if self.ip_access_list_id is not None: body['ip_access_list_id'] = self.ip_access_list_id
4023
+ if self.ip_addresses: body['ip_addresses'] = self.ip_addresses
4024
+ if self.label is not None: body['label'] = self.label
4025
+ if self.list_type is not None: body['list_type'] = self.list_type
4026
+ return body
4027
+
2927
4028
  @classmethod
2928
4029
  def from_dict(cls, d: Dict[str, any]) -> UpdateIpAccessList:
2929
4030
  """Deserializes the UpdateIpAccessList from a dictionary."""
@@ -2953,6 +4054,14 @@ class UpdateNotificationDestinationRequest:
2953
4054
  if self.id is not None: body['id'] = self.id
2954
4055
  return body
2955
4056
 
4057
+ def as_shallow_dict(self) -> dict:
4058
+ """Serializes the UpdateNotificationDestinationRequest into a shallow dictionary of its immediate attributes."""
4059
+ body = {}
4060
+ if self.config: body['config'] = self.config
4061
+ if self.display_name is not None: body['display_name'] = self.display_name
4062
+ if self.id is not None: body['id'] = self.id
4063
+ return body
4064
+
2956
4065
  @classmethod
2957
4066
  def from_dict(cls, d: Dict[str, any]) -> UpdateNotificationDestinationRequest:
2958
4067
  """Deserializes the UpdateNotificationDestinationRequest from a dictionary."""
@@ -2983,6 +4092,14 @@ class UpdatePersonalComputeSettingRequest:
2983
4092
  if self.setting: body['setting'] = self.setting.as_dict()
2984
4093
  return body
2985
4094
 
4095
+ def as_shallow_dict(self) -> dict:
4096
+ """Serializes the UpdatePersonalComputeSettingRequest into a shallow dictionary of its immediate attributes."""
4097
+ body = {}
4098
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
4099
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
4100
+ if self.setting: body['setting'] = self.setting
4101
+ return body
4102
+
2986
4103
  @classmethod
2987
4104
  def from_dict(cls, d: Dict[str, any]) -> UpdatePersonalComputeSettingRequest:
2988
4105
  """Deserializes the UpdatePersonalComputeSettingRequest from a dictionary."""
@@ -2999,6 +4116,11 @@ class UpdateResponse:
2999
4116
  body = {}
3000
4117
  return body
3001
4118
 
4119
+ def as_shallow_dict(self) -> dict:
4120
+ """Serializes the UpdateResponse into a shallow dictionary of its immediate attributes."""
4121
+ body = {}
4122
+ return body
4123
+
3002
4124
  @classmethod
3003
4125
  def from_dict(cls, d: Dict[str, any]) -> UpdateResponse:
3004
4126
  """Deserializes the UpdateResponse from a dictionary."""
@@ -3027,6 +4149,14 @@ class UpdateRestrictWorkspaceAdminsSettingRequest:
3027
4149
  if self.setting: body['setting'] = self.setting.as_dict()
3028
4150
  return body
3029
4151
 
4152
+ def as_shallow_dict(self) -> dict:
4153
+ """Serializes the UpdateRestrictWorkspaceAdminsSettingRequest into a shallow dictionary of its immediate attributes."""
4154
+ body = {}
4155
+ if self.allow_missing is not None: body['allow_missing'] = self.allow_missing
4156
+ if self.field_mask is not None: body['field_mask'] = self.field_mask
4157
+ if self.setting: body['setting'] = self.setting
4158
+ return body
4159
+
3030
4160
  @classmethod
3031
4161
  def from_dict(cls, d: Dict[str, any]) -> UpdateRestrictWorkspaceAdminsSettingRequest:
3032
4162
  """Deserializes the UpdateRestrictWorkspaceAdminsSettingRequest from a dictionary."""
@@ -3292,6 +4422,33 @@ class AibiDashboardEmbeddingAccessPolicyAPI:
3292
4422
  def __init__(self, api_client):
3293
4423
  self._api = api_client
3294
4424
 
4425
+ def delete(self,
4426
+ *,
4427
+ etag: Optional[str] = None) -> DeleteAibiDashboardEmbeddingAccessPolicySettingResponse:
4428
+ """Delete the AI/BI dashboard embedding access policy.
4429
+
4430
+ Delete the AI/BI dashboard embedding access policy, reverting back to the default.
4431
+
4432
+ :param etag: str (optional)
4433
+ etag used for versioning. The response is at least as fresh as the eTag provided. This is used for
4434
+ optimistic concurrency control as a way to help prevent simultaneous writes of a setting overwriting
4435
+ each other. It is strongly suggested that systems make use of the etag in the read -> delete pattern
4436
+ to perform setting deletions in order to avoid race conditions. That is, get an etag from a GET
4437
+ request, and pass it with the DELETE request to identify the rule set version you are deleting.
4438
+
4439
+ :returns: :class:`DeleteAibiDashboardEmbeddingAccessPolicySettingResponse`
4440
+ """
4441
+
4442
+ query = {}
4443
+ if etag is not None: query['etag'] = etag
4444
+ headers = {'Accept': 'application/json', }
4445
+
4446
+ res = self._api.do('DELETE',
4447
+ '/api/2.0/settings/types/aibi_dash_embed_ws_acc_policy/names/default',
4448
+ query=query,
4449
+ headers=headers)
4450
+ return DeleteAibiDashboardEmbeddingAccessPolicySettingResponse.from_dict(res)
4451
+
3295
4452
  def get(self, *, etag: Optional[str] = None) -> AibiDashboardEmbeddingAccessPolicySetting:
3296
4453
  """Retrieve the AI/BI dashboard embedding access policy.
3297
4454
 
@@ -3354,6 +4511,34 @@ class AibiDashboardEmbeddingApprovedDomainsAPI:
3354
4511
  def __init__(self, api_client):
3355
4512
  self._api = api_client
3356
4513
 
4514
+ def delete(self,
4515
+ *,
4516
+ etag: Optional[str] = None) -> DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse:
4517
+ """Delete AI/BI dashboard embedding approved domains.
4518
+
4519
+ Delete the list of domains approved to host embedded AI/BI dashboards, reverting back to the default
4520
+ empty list.
4521
+
4522
+ :param etag: str (optional)
4523
+ etag used for versioning. The response is at least as fresh as the eTag provided. This is used for
4524
+ optimistic concurrency control as a way to help prevent simultaneous writes of a setting overwriting
4525
+ each other. It is strongly suggested that systems make use of the etag in the read -> delete pattern
4526
+ to perform setting deletions in order to avoid race conditions. That is, get an etag from a GET
4527
+ request, and pass it with the DELETE request to identify the rule set version you are deleting.
4528
+
4529
+ :returns: :class:`DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse`
4530
+ """
4531
+
4532
+ query = {}
4533
+ if etag is not None: query['etag'] = etag
4534
+ headers = {'Accept': 'application/json', }
4535
+
4536
+ res = self._api.do('DELETE',
4537
+ '/api/2.0/settings/types/aibi_dash_embed_ws_apprvd_domains/names/default',
4538
+ query=query,
4539
+ headers=headers)
4540
+ return DeleteAibiDashboardEmbeddingApprovedDomainsSettingResponse.from_dict(res)
4541
+
3357
4542
  def get(self, *, etag: Optional[str] = None) -> AibiDashboardEmbeddingApprovedDomainsSetting:
3358
4543
  """Retrieve the list of domains approved to host embedded AI/BI dashboards.
3359
4544