acryl-datahub 1.0.0rc18__py3-none-any.whl → 1.0.0.1rc2__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 acryl-datahub might be problematic. Click here for more details.

Files changed (65) hide show
  1. {acryl_datahub-1.0.0rc18.dist-info → acryl_datahub-1.0.0.1rc2.dist-info}/METADATA +2486 -2487
  2. {acryl_datahub-1.0.0rc18.dist-info → acryl_datahub-1.0.0.1rc2.dist-info}/RECORD +64 -49
  3. {acryl_datahub-1.0.0rc18.dist-info → acryl_datahub-1.0.0.1rc2.dist-info}/WHEEL +1 -1
  4. {acryl_datahub-1.0.0rc18.dist-info → acryl_datahub-1.0.0.1rc2.dist-info}/entry_points.txt +2 -1
  5. datahub/_version.py +1 -1
  6. datahub/api/entities/dataset/dataset.py +1 -28
  7. datahub/emitter/request_helper.py +19 -14
  8. datahub/ingestion/api/source.py +6 -2
  9. datahub/ingestion/api/source_helpers.py +6 -2
  10. datahub/ingestion/extractor/schema_util.py +1 -0
  11. datahub/ingestion/source/common/data_platforms.py +23 -0
  12. datahub/ingestion/source/common/gcp_credentials_config.py +6 -0
  13. datahub/ingestion/source/common/subtypes.py +15 -0
  14. datahub/ingestion/source/data_lake_common/path_spec.py +21 -1
  15. datahub/ingestion/source/dbt/dbt_common.py +6 -4
  16. datahub/ingestion/source/dbt/dbt_core.py +4 -6
  17. datahub/ingestion/source/dbt/dbt_tests.py +8 -6
  18. datahub/ingestion/source/dremio/dremio_datahub_source_mapping.py +1 -1
  19. datahub/ingestion/source/dremio/dremio_entities.py +6 -5
  20. datahub/ingestion/source/dremio/dremio_source.py +96 -117
  21. datahub/ingestion/source/hex/__init__.py +0 -0
  22. datahub/ingestion/source/hex/api.py +394 -0
  23. datahub/ingestion/source/hex/constants.py +3 -0
  24. datahub/ingestion/source/hex/hex.py +167 -0
  25. datahub/ingestion/source/hex/mapper.py +372 -0
  26. datahub/ingestion/source/hex/model.py +68 -0
  27. datahub/ingestion/source/iceberg/iceberg.py +62 -66
  28. datahub/ingestion/source/mlflow.py +198 -7
  29. datahub/ingestion/source/mode.py +11 -1
  30. datahub/ingestion/source/openapi.py +69 -34
  31. datahub/ingestion/source/powerbi/powerbi.py +29 -23
  32. datahub/ingestion/source/s3/source.py +11 -0
  33. datahub/ingestion/source/slack/slack.py +399 -82
  34. datahub/ingestion/source/superset.py +138 -22
  35. datahub/ingestion/source/vertexai/__init__.py +0 -0
  36. datahub/ingestion/source/vertexai/vertexai.py +1055 -0
  37. datahub/ingestion/source/vertexai/vertexai_config.py +29 -0
  38. datahub/ingestion/source/vertexai/vertexai_result_type_utils.py +68 -0
  39. datahub/metadata/_schema_classes.py +472 -1
  40. datahub/metadata/com/linkedin/pegasus2avro/dataplatform/slack/__init__.py +15 -0
  41. datahub/metadata/com/linkedin/pegasus2avro/event/__init__.py +11 -0
  42. datahub/metadata/com/linkedin/pegasus2avro/event/notification/__init__.py +15 -0
  43. datahub/metadata/com/linkedin/pegasus2avro/event/notification/settings/__init__.py +19 -0
  44. datahub/metadata/schema.avsc +311 -2
  45. datahub/metadata/schemas/CorpUserEditableInfo.avsc +14 -0
  46. datahub/metadata/schemas/CorpUserKey.avsc +2 -1
  47. datahub/metadata/schemas/CorpUserSettings.avsc +95 -0
  48. datahub/metadata/schemas/DataProcessInstanceInput.avsc +2 -1
  49. datahub/metadata/schemas/DataProcessInstanceOutput.avsc +2 -1
  50. datahub/metadata/schemas/MLModelGroupProperties.avsc +16 -0
  51. datahub/metadata/schemas/MetadataChangeEvent.avsc +30 -0
  52. datahub/metadata/schemas/QueryProperties.avsc +20 -0
  53. datahub/metadata/schemas/Siblings.avsc +2 -0
  54. datahub/metadata/schemas/SlackUserInfo.avsc +160 -0
  55. datahub/sdk/dataset.py +122 -0
  56. datahub/sdk/entity.py +99 -3
  57. datahub/sdk/entity_client.py +27 -3
  58. datahub/sdk/main_client.py +22 -0
  59. datahub/sdk/search_filters.py +4 -4
  60. datahub/sql_parsing/sql_parsing_aggregator.py +6 -0
  61. datahub/sql_parsing/tool_meta_extractor.py +27 -2
  62. datahub/testing/mcp_diff.py +1 -18
  63. datahub/ingestion/source/vertexai.py +0 -697
  64. {acryl_datahub-1.0.0rc18.dist-info → acryl_datahub-1.0.0.1rc2.dist-info/licenses}/LICENSE +0 -0
  65. {acryl_datahub-1.0.0rc18.dist-info → acryl_datahub-1.0.0.1rc2.dist-info}/top_level.txt +0 -0
@@ -9095,6 +9095,282 @@ class PlatformTypeClass(object):
9095
9095
 
9096
9096
 
9097
9097
 
9098
+ class SlackUserInfoClass(_Aspect):
9099
+ """Information about a Slack user."""
9100
+
9101
+
9102
+ ASPECT_NAME = 'slackUserInfo'
9103
+ ASPECT_INFO = {}
9104
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.dataplatform.slack.SlackUserInfo")
9105
+
9106
+ def __init__(self,
9107
+ slackInstance: str,
9108
+ id: str,
9109
+ name: str,
9110
+ realName: str,
9111
+ displayName: str,
9112
+ teamId: str,
9113
+ isDeleted: bool,
9114
+ isAdmin: bool,
9115
+ isOwner: bool,
9116
+ isPrimaryOwner: bool,
9117
+ isBot: bool,
9118
+ email: Union[None, str]=None,
9119
+ timezone: Union[None, str]=None,
9120
+ timezoneOffset: Union[None, int]=None,
9121
+ title: Union[None, str]=None,
9122
+ phone: Union[None, str]=None,
9123
+ profilePictureUrl: Union[None, str]=None,
9124
+ statusText: Union[None, str]=None,
9125
+ statusEmoji: Union[None, str]=None,
9126
+ lastUpdatedSeconds: Union[None, int]=None,
9127
+ ):
9128
+ super().__init__()
9129
+
9130
+ self.slackInstance = slackInstance
9131
+ self.id = id
9132
+ self.name = name
9133
+ self.realName = realName
9134
+ self.displayName = displayName
9135
+ self.email = email
9136
+ self.teamId = teamId
9137
+ self.isDeleted = isDeleted
9138
+ self.isAdmin = isAdmin
9139
+ self.isOwner = isOwner
9140
+ self.isPrimaryOwner = isPrimaryOwner
9141
+ self.isBot = isBot
9142
+ self.timezone = timezone
9143
+ self.timezoneOffset = timezoneOffset
9144
+ self.title = title
9145
+ self.phone = phone
9146
+ self.profilePictureUrl = profilePictureUrl
9147
+ self.statusText = statusText
9148
+ self.statusEmoji = statusEmoji
9149
+ self.lastUpdatedSeconds = lastUpdatedSeconds
9150
+
9151
+ def _restore_defaults(self) -> None:
9152
+ self.slackInstance = str()
9153
+ self.id = str()
9154
+ self.name = str()
9155
+ self.realName = str()
9156
+ self.displayName = str()
9157
+ self.email = self.RECORD_SCHEMA.fields_dict["email"].default
9158
+ self.teamId = str()
9159
+ self.isDeleted = bool()
9160
+ self.isAdmin = bool()
9161
+ self.isOwner = bool()
9162
+ self.isPrimaryOwner = bool()
9163
+ self.isBot = bool()
9164
+ self.timezone = self.RECORD_SCHEMA.fields_dict["timezone"].default
9165
+ self.timezoneOffset = self.RECORD_SCHEMA.fields_dict["timezoneOffset"].default
9166
+ self.title = self.RECORD_SCHEMA.fields_dict["title"].default
9167
+ self.phone = self.RECORD_SCHEMA.fields_dict["phone"].default
9168
+ self.profilePictureUrl = self.RECORD_SCHEMA.fields_dict["profilePictureUrl"].default
9169
+ self.statusText = self.RECORD_SCHEMA.fields_dict["statusText"].default
9170
+ self.statusEmoji = self.RECORD_SCHEMA.fields_dict["statusEmoji"].default
9171
+ self.lastUpdatedSeconds = self.RECORD_SCHEMA.fields_dict["lastUpdatedSeconds"].default
9172
+
9173
+
9174
+ @property
9175
+ def slackInstance(self) -> str:
9176
+ """The dataplatform instance that this Slack member belongs to."""
9177
+ return self._inner_dict.get('slackInstance') # type: ignore
9178
+
9179
+ @slackInstance.setter
9180
+ def slackInstance(self, value: str) -> None:
9181
+ self._inner_dict['slackInstance'] = value
9182
+
9183
+
9184
+ @property
9185
+ def id(self) -> str:
9186
+ """The unique identifier for the Slack member."""
9187
+ return self._inner_dict.get('id') # type: ignore
9188
+
9189
+ @id.setter
9190
+ def id(self, value: str) -> None:
9191
+ self._inner_dict['id'] = value
9192
+
9193
+
9194
+ @property
9195
+ def name(self) -> str:
9196
+ """The username of the Slack member."""
9197
+ return self._inner_dict.get('name') # type: ignore
9198
+
9199
+ @name.setter
9200
+ def name(self, value: str) -> None:
9201
+ self._inner_dict['name'] = value
9202
+
9203
+
9204
+ @property
9205
+ def realName(self) -> str:
9206
+ """The real name of the Slack member."""
9207
+ return self._inner_dict.get('realName') # type: ignore
9208
+
9209
+ @realName.setter
9210
+ def realName(self, value: str) -> None:
9211
+ self._inner_dict['realName'] = value
9212
+
9213
+
9214
+ @property
9215
+ def displayName(self) -> str:
9216
+ """The display name of the Slack member."""
9217
+ return self._inner_dict.get('displayName') # type: ignore
9218
+
9219
+ @displayName.setter
9220
+ def displayName(self, value: str) -> None:
9221
+ self._inner_dict['displayName'] = value
9222
+
9223
+
9224
+ @property
9225
+ def email(self) -> Union[None, str]:
9226
+ """The email associated with the Slack member."""
9227
+ return self._inner_dict.get('email') # type: ignore
9228
+
9229
+ @email.setter
9230
+ def email(self, value: Union[None, str]) -> None:
9231
+ self._inner_dict['email'] = value
9232
+
9233
+
9234
+ @property
9235
+ def teamId(self) -> str:
9236
+ """The ID associated with the Slack team."""
9237
+ return self._inner_dict.get('teamId') # type: ignore
9238
+
9239
+ @teamId.setter
9240
+ def teamId(self, value: str) -> None:
9241
+ self._inner_dict['teamId'] = value
9242
+
9243
+
9244
+ @property
9245
+ def isDeleted(self) -> bool:
9246
+ """Whether the member is deleted or not."""
9247
+ return self._inner_dict.get('isDeleted') # type: ignore
9248
+
9249
+ @isDeleted.setter
9250
+ def isDeleted(self, value: bool) -> None:
9251
+ self._inner_dict['isDeleted'] = value
9252
+
9253
+
9254
+ @property
9255
+ def isAdmin(self) -> bool:
9256
+ """Whether the member is an admin."""
9257
+ return self._inner_dict.get('isAdmin') # type: ignore
9258
+
9259
+ @isAdmin.setter
9260
+ def isAdmin(self, value: bool) -> None:
9261
+ self._inner_dict['isAdmin'] = value
9262
+
9263
+
9264
+ @property
9265
+ def isOwner(self) -> bool:
9266
+ """Whether the member is an owner."""
9267
+ return self._inner_dict.get('isOwner') # type: ignore
9268
+
9269
+ @isOwner.setter
9270
+ def isOwner(self, value: bool) -> None:
9271
+ self._inner_dict['isOwner'] = value
9272
+
9273
+
9274
+ @property
9275
+ def isPrimaryOwner(self) -> bool:
9276
+ """Whether the member is a primary owner."""
9277
+ return self._inner_dict.get('isPrimaryOwner') # type: ignore
9278
+
9279
+ @isPrimaryOwner.setter
9280
+ def isPrimaryOwner(self, value: bool) -> None:
9281
+ self._inner_dict['isPrimaryOwner'] = value
9282
+
9283
+
9284
+ @property
9285
+ def isBot(self) -> bool:
9286
+ """Whether the member is a bot."""
9287
+ return self._inner_dict.get('isBot') # type: ignore
9288
+
9289
+ @isBot.setter
9290
+ def isBot(self, value: bool) -> None:
9291
+ self._inner_dict['isBot'] = value
9292
+
9293
+
9294
+ @property
9295
+ def timezone(self) -> Union[None, str]:
9296
+ """The timezone of the Slack member."""
9297
+ return self._inner_dict.get('timezone') # type: ignore
9298
+
9299
+ @timezone.setter
9300
+ def timezone(self, value: Union[None, str]) -> None:
9301
+ self._inner_dict['timezone'] = value
9302
+
9303
+
9304
+ @property
9305
+ def timezoneOffset(self) -> Union[None, int]:
9306
+ """The timezone offset of the Slack member."""
9307
+ return self._inner_dict.get('timezoneOffset') # type: ignore
9308
+
9309
+ @timezoneOffset.setter
9310
+ def timezoneOffset(self, value: Union[None, int]) -> None:
9311
+ self._inner_dict['timezoneOffset'] = value
9312
+
9313
+
9314
+ @property
9315
+ def title(self) -> Union[None, str]:
9316
+ """The title of the Slack member."""
9317
+ return self._inner_dict.get('title') # type: ignore
9318
+
9319
+ @title.setter
9320
+ def title(self, value: Union[None, str]) -> None:
9321
+ self._inner_dict['title'] = value
9322
+
9323
+
9324
+ @property
9325
+ def phone(self) -> Union[None, str]:
9326
+ """The phone number of the Slack member."""
9327
+ return self._inner_dict.get('phone') # type: ignore
9328
+
9329
+ @phone.setter
9330
+ def phone(self, value: Union[None, str]) -> None:
9331
+ self._inner_dict['phone'] = value
9332
+
9333
+
9334
+ @property
9335
+ def profilePictureUrl(self) -> Union[None, str]:
9336
+ """The URL of the member's profile picture."""
9337
+ return self._inner_dict.get('profilePictureUrl') # type: ignore
9338
+
9339
+ @profilePictureUrl.setter
9340
+ def profilePictureUrl(self, value: Union[None, str]) -> None:
9341
+ self._inner_dict['profilePictureUrl'] = value
9342
+
9343
+
9344
+ @property
9345
+ def statusText(self) -> Union[None, str]:
9346
+ """The status text of the Slack member."""
9347
+ return self._inner_dict.get('statusText') # type: ignore
9348
+
9349
+ @statusText.setter
9350
+ def statusText(self, value: Union[None, str]) -> None:
9351
+ self._inner_dict['statusText'] = value
9352
+
9353
+
9354
+ @property
9355
+ def statusEmoji(self) -> Union[None, str]:
9356
+ """The status emoji of the Slack member."""
9357
+ return self._inner_dict.get('statusEmoji') # type: ignore
9358
+
9359
+ @statusEmoji.setter
9360
+ def statusEmoji(self, value: Union[None, str]) -> None:
9361
+ self._inner_dict['statusEmoji'] = value
9362
+
9363
+
9364
+ @property
9365
+ def lastUpdatedSeconds(self) -> Union[None, int]:
9366
+ """The timestamp of when the member was last updated. (in seconds)"""
9367
+ return self._inner_dict.get('lastUpdatedSeconds') # type: ignore
9368
+
9369
+ @lastUpdatedSeconds.setter
9370
+ def lastUpdatedSeconds(self, value: Union[None, int]) -> None:
9371
+ self._inner_dict['lastUpdatedSeconds'] = value
9372
+
9373
+
9098
9374
  class DataPlatformInstancePropertiesClass(_Aspect):
9099
9375
  """Properties associated with a Data Platform Instance"""
9100
9376
 
@@ -12115,6 +12391,131 @@ class RelationshipFieldMappingClass(DictWrapper):
12115
12391
  self._inner_dict['destinationField'] = value
12116
12392
 
12117
12393
 
12394
+ class NotificationSinkTypeClass(object):
12395
+ """A type of sink / platform to send a notification to."""
12396
+
12397
+ SLACK = "SLACK"
12398
+ """Slack target type."""
12399
+
12400
+ EMAIL = "EMAIL"
12401
+ """Email target type."""
12402
+
12403
+
12404
+
12405
+ class EmailNotificationSettingsClass(DictWrapper):
12406
+ """Email Notification settings for an actor."""
12407
+
12408
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.event.notification.settings.EmailNotificationSettings")
12409
+ def __init__(self,
12410
+ email: str,
12411
+ ):
12412
+ super().__init__()
12413
+
12414
+ self.email = email
12415
+
12416
+ def _restore_defaults(self) -> None:
12417
+ self.email = str()
12418
+
12419
+
12420
+ @property
12421
+ def email(self) -> str:
12422
+ """Optional user or group email address"""
12423
+ return self._inner_dict.get('email') # type: ignore
12424
+
12425
+ @email.setter
12426
+ def email(self, value: str) -> None:
12427
+ self._inner_dict['email'] = value
12428
+
12429
+
12430
+ class NotificationSettingsClass(DictWrapper):
12431
+ """Notification settings for an actor or subscription."""
12432
+
12433
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.event.notification.settings.NotificationSettings")
12434
+ def __init__(self,
12435
+ sinkTypes: List[Union[str, "NotificationSinkTypeClass"]],
12436
+ slackSettings: Union[None, "SlackNotificationSettingsClass"]=None,
12437
+ emailSettings: Union[None, "EmailNotificationSettingsClass"]=None,
12438
+ ):
12439
+ super().__init__()
12440
+
12441
+ self.sinkTypes = sinkTypes
12442
+ self.slackSettings = slackSettings
12443
+ self.emailSettings = emailSettings
12444
+
12445
+ def _restore_defaults(self) -> None:
12446
+ self.sinkTypes = list()
12447
+ self.slackSettings = self.RECORD_SCHEMA.fields_dict["slackSettings"].default
12448
+ self.emailSettings = self.RECORD_SCHEMA.fields_dict["emailSettings"].default
12449
+
12450
+
12451
+ @property
12452
+ def sinkTypes(self) -> List[Union[str, "NotificationSinkTypeClass"]]:
12453
+ """Sink types that notifications are sent to."""
12454
+ return self._inner_dict.get('sinkTypes') # type: ignore
12455
+
12456
+ @sinkTypes.setter
12457
+ def sinkTypes(self, value: List[Union[str, "NotificationSinkTypeClass"]]) -> None:
12458
+ self._inner_dict['sinkTypes'] = value
12459
+
12460
+
12461
+ @property
12462
+ def slackSettings(self) -> Union[None, "SlackNotificationSettingsClass"]:
12463
+ """Slack Notification Settings"""
12464
+ return self._inner_dict.get('slackSettings') # type: ignore
12465
+
12466
+ @slackSettings.setter
12467
+ def slackSettings(self, value: Union[None, "SlackNotificationSettingsClass"]) -> None:
12468
+ self._inner_dict['slackSettings'] = value
12469
+
12470
+
12471
+ @property
12472
+ def emailSettings(self) -> Union[None, "EmailNotificationSettingsClass"]:
12473
+ """Email Notification Settings"""
12474
+ return self._inner_dict.get('emailSettings') # type: ignore
12475
+
12476
+ @emailSettings.setter
12477
+ def emailSettings(self, value: Union[None, "EmailNotificationSettingsClass"]) -> None:
12478
+ self._inner_dict['emailSettings'] = value
12479
+
12480
+
12481
+ class SlackNotificationSettingsClass(DictWrapper):
12482
+ """Slack Notification settings for an actor."""
12483
+
12484
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.event.notification.settings.SlackNotificationSettings")
12485
+ def __init__(self,
12486
+ userHandle: Union[None, str]=None,
12487
+ channels: Union[None, List[str]]=None,
12488
+ ):
12489
+ super().__init__()
12490
+
12491
+ self.userHandle = userHandle
12492
+ self.channels = channels
12493
+
12494
+ def _restore_defaults(self) -> None:
12495
+ self.userHandle = self.RECORD_SCHEMA.fields_dict["userHandle"].default
12496
+ self.channels = self.RECORD_SCHEMA.fields_dict["channels"].default
12497
+
12498
+
12499
+ @property
12500
+ def userHandle(self) -> Union[None, str]:
12501
+ """Optional user handle"""
12502
+ return self._inner_dict.get('userHandle') # type: ignore
12503
+
12504
+ @userHandle.setter
12505
+ def userHandle(self, value: Union[None, str]) -> None:
12506
+ self._inner_dict['userHandle'] = value
12507
+
12508
+
12509
+ @property
12510
+ def channels(self) -> Union[None, List[str]]:
12511
+ """Optional list of channels to send notifications to"""
12512
+ return self._inner_dict.get('channels') # type: ignore
12513
+
12514
+ @channels.setter
12515
+ def channels(self, value: Union[None, List[str]]) -> None:
12516
+ self._inner_dict['channels'] = value
12517
+
12518
+
12118
12519
  class ChangeTypeClass(object):
12119
12520
  """Descriptor for a change action"""
12120
12521
 
@@ -13400,6 +13801,7 @@ class CorpUserEditableInfoClass(_Aspect):
13400
13801
  slack: Union[None, str]=None,
13401
13802
  phone: Union[None, str]=None,
13402
13803
  email: Union[None, str]=None,
13804
+ informationSources: Union[None, List[str]]=None,
13403
13805
  ):
13404
13806
  super().__init__()
13405
13807
 
@@ -13426,6 +13828,7 @@ class CorpUserEditableInfoClass(_Aspect):
13426
13828
  self.slack = slack
13427
13829
  self.phone = phone
13428
13830
  self.email = email
13831
+ self.informationSources = informationSources
13429
13832
 
13430
13833
  def _restore_defaults(self) -> None:
13431
13834
  self.aboutMe = self.RECORD_SCHEMA.fields_dict["aboutMe"].default
@@ -13439,6 +13842,7 @@ class CorpUserEditableInfoClass(_Aspect):
13439
13842
  self.slack = self.RECORD_SCHEMA.fields_dict["slack"].default
13440
13843
  self.phone = self.RECORD_SCHEMA.fields_dict["phone"].default
13441
13844
  self.email = self.RECORD_SCHEMA.fields_dict["email"].default
13845
+ self.informationSources = self.RECORD_SCHEMA.fields_dict["informationSources"].default
13442
13846
 
13443
13847
 
13444
13848
  @property
@@ -13551,6 +13955,18 @@ class CorpUserEditableInfoClass(_Aspect):
13551
13955
  self._inner_dict['email'] = value
13552
13956
 
13553
13957
 
13958
+ @property
13959
+ def informationSources(self) -> Union[None, List[str]]:
13960
+ """Information sources that have been used to populate this CorpUserEditableInfo.
13961
+ These include platform resources, such as Slack members or Looker users.
13962
+ They can also refer to other semantic urns in the future."""
13963
+ return self._inner_dict.get('informationSources') # type: ignore
13964
+
13965
+ @informationSources.setter
13966
+ def informationSources(self, value: Union[None, List[str]]) -> None:
13967
+ self._inner_dict['informationSources'] = value
13968
+
13969
+
13554
13970
  class CorpUserInfoClass(_Aspect):
13555
13971
  """Linkedin corp user information"""
13556
13972
 
@@ -13755,15 +14171,18 @@ class CorpUserSettingsClass(_Aspect):
13755
14171
  def __init__(self,
13756
14172
  appearance: "CorpUserAppearanceSettingsClass",
13757
14173
  views: Union[None, "CorpUserViewsSettingsClass"]=None,
14174
+ notificationSettings: Union[None, "NotificationSettingsClass"]=None,
13758
14175
  ):
13759
14176
  super().__init__()
13760
14177
 
13761
14178
  self.appearance = appearance
13762
14179
  self.views = views
14180
+ self.notificationSettings = notificationSettings
13763
14181
 
13764
14182
  def _restore_defaults(self) -> None:
13765
14183
  self.appearance = CorpUserAppearanceSettingsClass._construct_with_defaults()
13766
14184
  self.views = self.RECORD_SCHEMA.fields_dict["views"].default
14185
+ self.notificationSettings = self.RECORD_SCHEMA.fields_dict["notificationSettings"].default
13767
14186
 
13768
14187
 
13769
14188
  @property
@@ -13786,6 +14205,16 @@ class CorpUserSettingsClass(_Aspect):
13786
14205
  self._inner_dict['views'] = value
13787
14206
 
13788
14207
 
14208
+ @property
14209
+ def notificationSettings(self) -> Union[None, "NotificationSettingsClass"]:
14210
+ """Notification settings for a user"""
14211
+ return self._inner_dict.get('notificationSettings') # type: ignore
14212
+
14213
+ @notificationSettings.setter
14214
+ def notificationSettings(self, value: Union[None, "NotificationSettingsClass"]) -> None:
14215
+ self._inner_dict['notificationSettings'] = value
14216
+
14217
+
13789
14218
  class CorpUserStatusClass(_Aspect):
13790
14219
  """The status of the user, e.g. provisioned, active, suspended, etc."""
13791
14220
 
@@ -14747,7 +15176,7 @@ class CorpUserKeyClass(_Aspect):
14747
15176
 
14748
15177
 
14749
15178
  ASPECT_NAME = 'corpUserKey'
14750
- ASPECT_INFO = {'keyForEntity': 'corpuser', 'entityCategory': '_unset_', 'entityAspects': ['corpUserInfo', 'corpUserEditableInfo', 'corpUserStatus', 'groupMembership', 'globalTags', 'status', 'corpUserCredentials', 'nativeGroupMembership', 'corpUserSettings', 'origin', 'roleMembership', 'structuredProperties', 'forms', 'testResults', 'subTypes'], 'entityDoc': 'CorpUser represents an identity of a person (or an account) in the enterprise.'}
15179
+ ASPECT_INFO = {'keyForEntity': 'corpuser', 'entityCategory': '_unset_', 'entityAspects': ['corpUserInfo', 'corpUserEditableInfo', 'corpUserStatus', 'groupMembership', 'globalTags', 'status', 'corpUserCredentials', 'nativeGroupMembership', 'corpUserSettings', 'origin', 'roleMembership', 'structuredProperties', 'forms', 'testResults', 'subTypes', 'slackUserInfo'], 'entityDoc': 'CorpUser represents an identity of a person (or an account) in the enterprise.'}
14751
15180
  RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.CorpUserKey")
14752
15181
 
14753
15182
  def __init__(self,
@@ -18398,6 +18827,7 @@ class MLModelGroupPropertiesClass(_Aspect):
18398
18827
  customProperties: Optional[Dict[str, str]]=None,
18399
18828
  trainingJobs: Union[None, List[str]]=None,
18400
18829
  downstreamJobs: Union[None, List[str]]=None,
18830
+ externalUrl: Union[None, str]=None,
18401
18831
  name: Union[None, str]=None,
18402
18832
  description: Union[None, str]=None,
18403
18833
  createdAt: Union[None, int]=None,
@@ -18414,6 +18844,7 @@ class MLModelGroupPropertiesClass(_Aspect):
18414
18844
  self.customProperties = customProperties
18415
18845
  self.trainingJobs = trainingJobs
18416
18846
  self.downstreamJobs = downstreamJobs
18847
+ self.externalUrl = externalUrl
18417
18848
  self.name = name
18418
18849
  self.description = description
18419
18850
  self.createdAt = createdAt
@@ -18425,6 +18856,7 @@ class MLModelGroupPropertiesClass(_Aspect):
18425
18856
  self.customProperties = dict()
18426
18857
  self.trainingJobs = self.RECORD_SCHEMA.fields_dict["trainingJobs"].default
18427
18858
  self.downstreamJobs = self.RECORD_SCHEMA.fields_dict["downstreamJobs"].default
18859
+ self.externalUrl = self.RECORD_SCHEMA.fields_dict["externalUrl"].default
18428
18860
  self.name = self.RECORD_SCHEMA.fields_dict["name"].default
18429
18861
  self.description = self.RECORD_SCHEMA.fields_dict["description"].default
18430
18862
  self.createdAt = self.RECORD_SCHEMA.fields_dict["createdAt"].default
@@ -18463,6 +18895,16 @@ class MLModelGroupPropertiesClass(_Aspect):
18463
18895
  self._inner_dict['downstreamJobs'] = value
18464
18896
 
18465
18897
 
18898
+ @property
18899
+ def externalUrl(self) -> Union[None, str]:
18900
+ """URL where the reference exist"""
18901
+ return self._inner_dict.get('externalUrl') # type: ignore
18902
+
18903
+ @externalUrl.setter
18904
+ def externalUrl(self, value: Union[None, str]) -> None:
18905
+ self._inner_dict['externalUrl'] = value
18906
+
18907
+
18466
18908
  @property
18467
18909
  def name(self) -> Union[None, str]:
18468
18910
  """Display name of the MLModelGroup"""
@@ -21311,12 +21753,18 @@ class QueryPropertiesClass(_Aspect):
21311
21753
  source: Union[str, "QuerySourceClass"],
21312
21754
  created: "AuditStampClass",
21313
21755
  lastModified: "AuditStampClass",
21756
+ customProperties: Optional[Dict[str, str]]=None,
21314
21757
  name: Union[None, str]=None,
21315
21758
  description: Union[None, str]=None,
21316
21759
  origin: Union[None, str]=None,
21317
21760
  ):
21318
21761
  super().__init__()
21319
21762
 
21763
+ if customProperties is None:
21764
+ # default: {}
21765
+ self.customProperties = dict()
21766
+ else:
21767
+ self.customProperties = customProperties
21320
21768
  self.statement = statement
21321
21769
  self.source = source
21322
21770
  self.name = name
@@ -21326,6 +21774,7 @@ class QueryPropertiesClass(_Aspect):
21326
21774
  self.origin = origin
21327
21775
 
21328
21776
  def _restore_defaults(self) -> None:
21777
+ self.customProperties = dict()
21329
21778
  self.statement = QueryStatementClass._construct_with_defaults()
21330
21779
  self.source = QuerySourceClass.MANUAL
21331
21780
  self.name = self.RECORD_SCHEMA.fields_dict["name"].default
@@ -21335,6 +21784,16 @@ class QueryPropertiesClass(_Aspect):
21335
21784
  self.origin = self.RECORD_SCHEMA.fields_dict["origin"].default
21336
21785
 
21337
21786
 
21787
+ @property
21788
+ def customProperties(self) -> Dict[str, str]:
21789
+ """Custom property bag."""
21790
+ return self._inner_dict.get('customProperties') # type: ignore
21791
+
21792
+ @customProperties.setter
21793
+ def customProperties(self, value: Dict[str, str]) -> None:
21794
+ self._inner_dict['customProperties'] = value
21795
+
21796
+
21338
21797
  @property
21339
21798
  def statement(self) -> "QueryStatementClass":
21340
21799
  """The Query Statement."""
@@ -25567,6 +26026,7 @@ __SCHEMA_TYPES = {
25567
26026
  'com.linkedin.pegasus2avro.datajob.datahub.IngestionCheckpointState': IngestionCheckpointStateClass,
25568
26027
  'com.linkedin.pegasus2avro.dataplatform.DataPlatformInfo': DataPlatformInfoClass,
25569
26028
  'com.linkedin.pegasus2avro.dataplatform.PlatformType': PlatformTypeClass,
26029
+ 'com.linkedin.pegasus2avro.dataplatform.slack.SlackUserInfo': SlackUserInfoClass,
25570
26030
  'com.linkedin.pegasus2avro.dataplatforminstance.DataPlatformInstanceProperties': DataPlatformInstancePropertiesClass,
25571
26031
  'com.linkedin.pegasus2avro.dataplatforminstance.IcebergWarehouseInfo': IcebergWarehouseInfoClass,
25572
26032
  'com.linkedin.pegasus2avro.dataprocess.DataProcessInfo': DataProcessInfoClass,
@@ -25617,6 +26077,10 @@ __SCHEMA_TYPES = {
25617
26077
  'com.linkedin.pegasus2avro.ermodelrelation.ERModelRelationshipProperties': ERModelRelationshipPropertiesClass,
25618
26078
  'com.linkedin.pegasus2avro.ermodelrelation.EditableERModelRelationshipProperties': EditableERModelRelationshipPropertiesClass,
25619
26079
  'com.linkedin.pegasus2avro.ermodelrelation.RelationshipFieldMapping': RelationshipFieldMappingClass,
26080
+ 'com.linkedin.pegasus2avro.event.notification.NotificationSinkType': NotificationSinkTypeClass,
26081
+ 'com.linkedin.pegasus2avro.event.notification.settings.EmailNotificationSettings': EmailNotificationSettingsClass,
26082
+ 'com.linkedin.pegasus2avro.event.notification.settings.NotificationSettings': NotificationSettingsClass,
26083
+ 'com.linkedin.pegasus2avro.event.notification.settings.SlackNotificationSettings': SlackNotificationSettingsClass,
25620
26084
  'com.linkedin.pegasus2avro.events.metadata.ChangeType': ChangeTypeClass,
25621
26085
  'com.linkedin.pegasus2avro.execution.ExecutionRequestInput': ExecutionRequestInputClass,
25622
26086
  'com.linkedin.pegasus2avro.execution.ExecutionRequestResult': ExecutionRequestResultClass,
@@ -26047,6 +26511,7 @@ __SCHEMA_TYPES = {
26047
26511
  'IngestionCheckpointState': IngestionCheckpointStateClass,
26048
26512
  'DataPlatformInfo': DataPlatformInfoClass,
26049
26513
  'PlatformType': PlatformTypeClass,
26514
+ 'SlackUserInfo': SlackUserInfoClass,
26050
26515
  'DataPlatformInstanceProperties': DataPlatformInstancePropertiesClass,
26051
26516
  'IcebergWarehouseInfo': IcebergWarehouseInfoClass,
26052
26517
  'DataProcessInfo': DataProcessInfoClass,
@@ -26097,6 +26562,10 @@ __SCHEMA_TYPES = {
26097
26562
  'ERModelRelationshipProperties': ERModelRelationshipPropertiesClass,
26098
26563
  'EditableERModelRelationshipProperties': EditableERModelRelationshipPropertiesClass,
26099
26564
  'RelationshipFieldMapping': RelationshipFieldMappingClass,
26565
+ 'NotificationSinkType': NotificationSinkTypeClass,
26566
+ 'EmailNotificationSettings': EmailNotificationSettingsClass,
26567
+ 'NotificationSettings': NotificationSettingsClass,
26568
+ 'SlackNotificationSettings': SlackNotificationSettingsClass,
26100
26569
  'ChangeType': ChangeTypeClass,
26101
26570
  'ExecutionRequestInput': ExecutionRequestInputClass,
26102
26571
  'ExecutionRequestResult': ExecutionRequestResultClass,
@@ -26446,6 +26915,7 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
26446
26915
  InputFieldsClass,
26447
26916
  FormsClass,
26448
26917
  DataPlatformInfoClass,
26918
+ SlackUserInfoClass,
26449
26919
  DataHubPolicyInfoClass,
26450
26920
  DataHubRoleInfoClass,
26451
26921
  IncidentSourceClass,
@@ -26668,6 +27138,7 @@ class AspectBag(TypedDict, total=False):
26668
27138
  inputFields: InputFieldsClass
26669
27139
  forms: FormsClass
26670
27140
  dataPlatformInfo: DataPlatformInfoClass
27141
+ slackUserInfo: SlackUserInfoClass
26671
27142
  dataHubPolicyInfo: DataHubPolicyInfoClass
26672
27143
  dataHubRoleInfo: DataHubRoleInfoClass
26673
27144
  incidentSource: IncidentSourceClass
@@ -0,0 +1,15 @@
1
+ # mypy: ignore-errors
2
+ # flake8: noqa
3
+
4
+ # This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
5
+ # Do not modify manually!
6
+
7
+ # pylint: skip-file
8
+ # fmt: off
9
+ # isort: skip_file
10
+ from ......schema_classes import SlackUserInfoClass
11
+
12
+
13
+ SlackUserInfo = SlackUserInfoClass
14
+
15
+ # fmt: on
@@ -0,0 +1,11 @@
1
+ # mypy: ignore-errors
2
+ # flake8: noqa
3
+
4
+ # This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
5
+ # Do not modify manually!
6
+
7
+ # pylint: skip-file
8
+ # fmt: off
9
+ # isort: skip_file
10
+
11
+ # fmt: on
@@ -0,0 +1,15 @@
1
+ # mypy: ignore-errors
2
+ # flake8: noqa
3
+
4
+ # This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
5
+ # Do not modify manually!
6
+
7
+ # pylint: skip-file
8
+ # fmt: off
9
+ # isort: skip_file
10
+ from ......schema_classes import NotificationSinkTypeClass
11
+
12
+
13
+ NotificationSinkType = NotificationSinkTypeClass
14
+
15
+ # fmt: on