acryl-datahub 1.2.0.1rc1__py3-none-any.whl → 1.2.0.2__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 (54) hide show
  1. {acryl_datahub-1.2.0.1rc1.dist-info → acryl_datahub-1.2.0.2.dist-info}/METADATA +2525 -2523
  2. {acryl_datahub-1.2.0.1rc1.dist-info → acryl_datahub-1.2.0.2.dist-info}/RECORD +54 -46
  3. datahub/_version.py +1 -1
  4. datahub/api/entities/dataset/dataset.py +13 -1
  5. datahub/emitter/rest_emitter.py +3 -1
  6. datahub/ingestion/autogenerated/capability_summary.json +97 -6
  7. datahub/ingestion/source/abs/source.py +5 -29
  8. datahub/ingestion/source/aws/glue.py +8 -0
  9. datahub/ingestion/source/cassandra/cassandra.py +5 -7
  10. datahub/ingestion/source/common/subtypes.py +2 -0
  11. datahub/ingestion/source/data_lake_common/data_lake_utils.py +37 -0
  12. datahub/ingestion/source/datahub/datahub_source.py +3 -0
  13. datahub/ingestion/source/dbt/dbt_common.py +69 -2
  14. datahub/ingestion/source/delta_lake/source.py +1 -0
  15. datahub/ingestion/source/ge_data_profiler.py +9 -1
  16. datahub/ingestion/source/grafana/entity_mcp_builder.py +272 -0
  17. datahub/ingestion/source/grafana/field_utils.py +307 -0
  18. datahub/ingestion/source/grafana/grafana_api.py +142 -0
  19. datahub/ingestion/source/grafana/grafana_config.py +104 -0
  20. datahub/ingestion/source/grafana/grafana_source.py +522 -84
  21. datahub/ingestion/source/grafana/lineage.py +202 -0
  22. datahub/ingestion/source/grafana/models.py +120 -0
  23. datahub/ingestion/source/grafana/report.py +91 -0
  24. datahub/ingestion/source/grafana/types.py +16 -0
  25. datahub/ingestion/source/hex/hex.py +8 -0
  26. datahub/ingestion/source/looker/looker_common.py +40 -4
  27. datahub/ingestion/source/looker/looker_source.py +9 -0
  28. datahub/ingestion/source/looker/lookml_source.py +8 -0
  29. datahub/ingestion/source/mongodb.py +11 -1
  30. datahub/ingestion/source/redshift/redshift.py +8 -1
  31. datahub/ingestion/source/s3/source.py +14 -34
  32. datahub/ingestion/source/sql/athena.py +8 -2
  33. datahub/ingestion/source/sql/clickhouse.py +9 -0
  34. datahub/ingestion/source/sql/postgres.py +190 -1
  35. datahub/ingestion/source/sql_queries.py +111 -76
  36. datahub/ingestion/source/unity/proxy.py +8 -8
  37. datahub/metadata/_internal_schema_classes.py +96 -0
  38. datahub/metadata/com/linkedin/pegasus2avro/module/__init__.py +2 -0
  39. datahub/metadata/schema.avsc +69 -0
  40. datahub/metadata/schemas/CorpUserSettings.avsc +10 -1
  41. datahub/metadata/schemas/DataHubPageModuleProperties.avsc +42 -0
  42. datahub/metadata/schemas/MetadataChangeEvent.avsc +18 -0
  43. datahub/metadata/schemas/MetadataChangeLog.avsc +62 -44
  44. datahub/metadata/schemas/MetadataChangeProposal.avsc +61 -0
  45. datahub/metadata/schemas/SystemMetadata.avsc +61 -0
  46. datahub/sdk/dataset.py +44 -0
  47. datahub/sdk/search_filters.py +84 -15
  48. datahub/sql_parsing/sql_parsing_aggregator.py +6 -0
  49. datahub/telemetry/telemetry.py +4 -1
  50. datahub/upgrade/upgrade.py +5 -3
  51. {acryl_datahub-1.2.0.1rc1.dist-info → acryl_datahub-1.2.0.2.dist-info}/WHEEL +0 -0
  52. {acryl_datahub-1.2.0.1rc1.dist-info → acryl_datahub-1.2.0.2.dist-info}/entry_points.txt +0 -0
  53. {acryl_datahub-1.2.0.1rc1.dist-info → acryl_datahub-1.2.0.2.dist-info}/licenses/LICENSE +0 -0
  54. {acryl_datahub-1.2.0.1rc1.dist-info → acryl_datahub-1.2.0.2.dist-info}/top_level.txt +0 -0
@@ -19964,17 +19964,20 @@ class DataHubPageModuleParamsClass(DictWrapper):
19964
19964
  linkParams: Union[None, "LinkModuleParamsClass"]=None,
19965
19965
  richTextParams: Union[None, "RichTextModuleParamsClass"]=None,
19966
19966
  assetCollectionParams: Union[None, "AssetCollectionModuleParamsClass"]=None,
19967
+ hierarchyViewParams: Union[None, "HierarchyModuleParamsClass"]=None,
19967
19968
  ):
19968
19969
  super().__init__()
19969
19970
 
19970
19971
  self.linkParams = linkParams
19971
19972
  self.richTextParams = richTextParams
19972
19973
  self.assetCollectionParams = assetCollectionParams
19974
+ self.hierarchyViewParams = hierarchyViewParams
19973
19975
 
19974
19976
  def _restore_defaults(self) -> None:
19975
19977
  self.linkParams = self.RECORD_SCHEMA.fields_dict["linkParams"].default
19976
19978
  self.richTextParams = self.RECORD_SCHEMA.fields_dict["richTextParams"].default
19977
19979
  self.assetCollectionParams = self.RECORD_SCHEMA.fields_dict["assetCollectionParams"].default
19980
+ self.hierarchyViewParams = self.RECORD_SCHEMA.fields_dict["hierarchyViewParams"].default
19978
19981
 
19979
19982
 
19980
19983
  @property
@@ -20007,6 +20010,16 @@ class DataHubPageModuleParamsClass(DictWrapper):
20007
20010
  self._inner_dict['assetCollectionParams'] = value
20008
20011
 
20009
20012
 
20013
+ @property
20014
+ def hierarchyViewParams(self) -> Union[None, "HierarchyModuleParamsClass"]:
20015
+ """The params required if the module is type HIERARCHY_VIEW"""
20016
+ return self._inner_dict.get('hierarchyViewParams') # type: ignore
20017
+
20018
+ @hierarchyViewParams.setter
20019
+ def hierarchyViewParams(self, value: Union[None, "HierarchyModuleParamsClass"]) -> None:
20020
+ self._inner_dict['hierarchyViewParams'] = value
20021
+
20022
+
20010
20023
  class DataHubPageModulePropertiesClass(_Aspect):
20011
20024
  """The main properties of a DataHub page module"""
20012
20025
 
@@ -20149,6 +20162,61 @@ class DataHubPageModuleVisibilityClass(DictWrapper):
20149
20162
  self._inner_dict['scope'] = value
20150
20163
 
20151
20164
 
20165
+ class HierarchyModuleParamsClass(DictWrapper):
20166
+ """The params required if the module is type HIERARCHY_VIEW"""
20167
+
20168
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.HierarchyModuleParams")
20169
+ def __init__(self,
20170
+ showRelatedEntities: bool,
20171
+ assetUrns: Union[None, List[str]]=None,
20172
+ relatedEntitiesFilterJson: Union[None, str]=None,
20173
+ ):
20174
+ super().__init__()
20175
+
20176
+ self.assetUrns = assetUrns
20177
+ self.showRelatedEntities = showRelatedEntities
20178
+ self.relatedEntitiesFilterJson = relatedEntitiesFilterJson
20179
+
20180
+ def _restore_defaults(self) -> None:
20181
+ self.assetUrns = self.RECORD_SCHEMA.fields_dict["assetUrns"].default
20182
+ self.showRelatedEntities = bool()
20183
+ self.relatedEntitiesFilterJson = self.RECORD_SCHEMA.fields_dict["relatedEntitiesFilterJson"].default
20184
+
20185
+
20186
+ @property
20187
+ def assetUrns(self) -> Union[None, List[str]]:
20188
+ # No docs available.
20189
+ return self._inner_dict.get('assetUrns') # type: ignore
20190
+
20191
+ @assetUrns.setter
20192
+ def assetUrns(self, value: Union[None, List[str]]) -> None:
20193
+ self._inner_dict['assetUrns'] = value
20194
+
20195
+
20196
+ @property
20197
+ def showRelatedEntities(self) -> bool:
20198
+ # No docs available.
20199
+ return self._inner_dict.get('showRelatedEntities') # type: ignore
20200
+
20201
+ @showRelatedEntities.setter
20202
+ def showRelatedEntities(self, value: bool) -> None:
20203
+ self._inner_dict['showRelatedEntities'] = value
20204
+
20205
+
20206
+ @property
20207
+ def relatedEntitiesFilterJson(self) -> Union[None, str]:
20208
+ """Optional filters to filter relatedEntities (assetUrns) out
20209
+
20210
+ The stringified json representing the logical predicate built in the UI to select assets.
20211
+ This predicate is turned into orFilters to send through graphql since graphql doesn't support
20212
+ arbitrary nesting. This string is used to restore the UI for this logical predicate."""
20213
+ return self._inner_dict.get('relatedEntitiesFilterJson') # type: ignore
20214
+
20215
+ @relatedEntitiesFilterJson.setter
20216
+ def relatedEntitiesFilterJson(self, value: Union[None, str]) -> None:
20217
+ self._inner_dict['relatedEntitiesFilterJson'] = value
20218
+
20219
+
20152
20220
  class LinkModuleParamsClass(DictWrapper):
20153
20221
  # No docs available.
20154
20222
 
@@ -20772,6 +20840,8 @@ class SystemMetadataClass(_Aspect):
20772
20840
  registryVersion: Union[None, str]=None,
20773
20841
  properties: Union[None, Dict[str, str]]=None,
20774
20842
  version: Union[None, str]=None,
20843
+ aspectCreated: Union[None, "AuditStampClass"]=None,
20844
+ aspectModified: Union[None, "AuditStampClass"]=None,
20775
20845
  ):
20776
20846
  super().__init__()
20777
20847
 
@@ -20795,6 +20865,8 @@ class SystemMetadataClass(_Aspect):
20795
20865
  self.registryVersion = registryVersion
20796
20866
  self.properties = properties
20797
20867
  self.version = version
20868
+ self.aspectCreated = aspectCreated
20869
+ self.aspectModified = aspectModified
20798
20870
 
20799
20871
  def _restore_defaults(self) -> None:
20800
20872
  self.lastObserved = self.RECORD_SCHEMA.fields_dict["lastObserved"].default
@@ -20805,6 +20877,8 @@ class SystemMetadataClass(_Aspect):
20805
20877
  self.registryVersion = self.RECORD_SCHEMA.fields_dict["registryVersion"].default
20806
20878
  self.properties = self.RECORD_SCHEMA.fields_dict["properties"].default
20807
20879
  self.version = self.RECORD_SCHEMA.fields_dict["version"].default
20880
+ self.aspectCreated = self.RECORD_SCHEMA.fields_dict["aspectCreated"].default
20881
+ self.aspectModified = self.RECORD_SCHEMA.fields_dict["aspectModified"].default
20808
20882
 
20809
20883
 
20810
20884
  @property
@@ -20889,6 +20963,26 @@ class SystemMetadataClass(_Aspect):
20889
20963
  self._inner_dict['version'] = value
20890
20964
 
20891
20965
 
20966
+ @property
20967
+ def aspectCreated(self) -> Union[None, "AuditStampClass"]:
20968
+ """When the aspect was initially created and who created it, detected by version 0 -> 1 change"""
20969
+ return self._inner_dict.get('aspectCreated') # type: ignore
20970
+
20971
+ @aspectCreated.setter
20972
+ def aspectCreated(self, value: Union[None, "AuditStampClass"]) -> None:
20973
+ self._inner_dict['aspectCreated'] = value
20974
+
20975
+
20976
+ @property
20977
+ def aspectModified(self) -> Union[None, "AuditStampClass"]:
20978
+ """When the aspect was last modified and the actor that performed the modification"""
20979
+ return self._inner_dict.get('aspectModified') # type: ignore
20980
+
20981
+ @aspectModified.setter
20982
+ def aspectModified(self, value: Union[None, "AuditStampClass"]) -> None:
20983
+ self._inner_dict['aspectModified'] = value
20984
+
20985
+
20892
20986
  class ChartCellClass(DictWrapper):
20893
20987
  """Chart cell in a notebook, which will present content in chart format"""
20894
20988
 
@@ -27171,6 +27265,7 @@ __SCHEMA_TYPES = {
27171
27265
  'com.linkedin.pegasus2avro.module.DataHubPageModuleProperties': DataHubPageModulePropertiesClass,
27172
27266
  'com.linkedin.pegasus2avro.module.DataHubPageModuleType': DataHubPageModuleTypeClass,
27173
27267
  'com.linkedin.pegasus2avro.module.DataHubPageModuleVisibility': DataHubPageModuleVisibilityClass,
27268
+ 'com.linkedin.pegasus2avro.module.HierarchyModuleParams': HierarchyModuleParamsClass,
27174
27269
  'com.linkedin.pegasus2avro.module.LinkModuleParams': LinkModuleParamsClass,
27175
27270
  'com.linkedin.pegasus2avro.module.PageModuleScope': PageModuleScopeClass,
27176
27271
  'com.linkedin.pegasus2avro.module.RichTextModuleParams': RichTextModuleParamsClass,
@@ -27680,6 +27775,7 @@ __SCHEMA_TYPES = {
27680
27775
  'DataHubPageModuleProperties': DataHubPageModulePropertiesClass,
27681
27776
  'DataHubPageModuleType': DataHubPageModuleTypeClass,
27682
27777
  'DataHubPageModuleVisibility': DataHubPageModuleVisibilityClass,
27778
+ 'HierarchyModuleParams': HierarchyModuleParamsClass,
27683
27779
  'LinkModuleParams': LinkModuleParamsClass,
27684
27780
  'PageModuleScope': PageModuleScopeClass,
27685
27781
  'RichTextModuleParams': RichTextModuleParamsClass,
@@ -12,6 +12,7 @@ from .....schema_classes import DataHubPageModuleParamsClass
12
12
  from .....schema_classes import DataHubPageModulePropertiesClass
13
13
  from .....schema_classes import DataHubPageModuleTypeClass
14
14
  from .....schema_classes import DataHubPageModuleVisibilityClass
15
+ from .....schema_classes import HierarchyModuleParamsClass
15
16
  from .....schema_classes import LinkModuleParamsClass
16
17
  from .....schema_classes import PageModuleScopeClass
17
18
  from .....schema_classes import RichTextModuleParamsClass
@@ -22,6 +23,7 @@ DataHubPageModuleParams = DataHubPageModuleParamsClass
22
23
  DataHubPageModuleProperties = DataHubPageModulePropertiesClass
23
24
  DataHubPageModuleType = DataHubPageModuleTypeClass
24
25
  DataHubPageModuleVisibility = DataHubPageModuleVisibilityClass
26
+ HierarchyModuleParams = HierarchyModuleParamsClass
25
27
  LinkModuleParams = LinkModuleParamsClass
26
28
  PageModuleScope = PageModuleScopeClass
27
29
  RichTextModuleParams = RichTextModuleParamsClass
@@ -6120,10 +6120,19 @@
6120
6120
  "namespace": "com.linkedin.pegasus2avro.identity",
6121
6121
  "fields": [
6122
6122
  {
6123
+ "Relationship": {
6124
+ "entityTypes": [
6125
+ "dataHubPageTemplate"
6126
+ ],
6127
+ "name": "HasPersonalPageTemplate"
6128
+ },
6123
6129
  "java": {
6124
6130
  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
6125
6131
  },
6126
6132
  "Urn": "Urn",
6133
+ "entityTypes": [
6134
+ "dataHubPageTemplate"
6135
+ ],
6127
6136
  "type": [
6128
6137
  "null",
6129
6138
  "string"
@@ -11543,6 +11552,24 @@
11543
11552
  "name": "version",
11544
11553
  "default": null,
11545
11554
  "doc": "Aspect version\n Initial implementation will use the aspect version's number, however stored as\n a string in the case where a different aspect versioning scheme is later adopted."
11555
+ },
11556
+ {
11557
+ "type": [
11558
+ "null",
11559
+ "com.linkedin.pegasus2avro.common.AuditStamp"
11560
+ ],
11561
+ "name": "aspectCreated",
11562
+ "default": null,
11563
+ "doc": "When the aspect was initially created and who created it, detected by version 0 -> 1 change"
11564
+ },
11565
+ {
11566
+ "type": [
11567
+ "null",
11568
+ "com.linkedin.pegasus2avro.common.AuditStamp"
11569
+ ],
11570
+ "name": "aspectModified",
11571
+ "default": null,
11572
+ "doc": "When the aspect was last modified and the actor that performed the modification"
11546
11573
  }
11547
11574
  ],
11548
11575
  "doc": "Metadata associated with each metadata change that is processed by the system"
@@ -17792,6 +17819,48 @@
17792
17819
  "name": "assetCollectionParams",
17793
17820
  "default": null,
17794
17821
  "doc": "The params required if the module is type ASSET_COLLECTION"
17822
+ },
17823
+ {
17824
+ "type": [
17825
+ "null",
17826
+ {
17827
+ "type": "record",
17828
+ "name": "HierarchyModuleParams",
17829
+ "namespace": "com.linkedin.pegasus2avro.module",
17830
+ "fields": [
17831
+ {
17832
+ "Urn": "Urn",
17833
+ "urn_is_array": true,
17834
+ "type": [
17835
+ "null",
17836
+ {
17837
+ "type": "array",
17838
+ "items": "string"
17839
+ }
17840
+ ],
17841
+ "name": "assetUrns",
17842
+ "default": null
17843
+ },
17844
+ {
17845
+ "type": "boolean",
17846
+ "name": "showRelatedEntities"
17847
+ },
17848
+ {
17849
+ "type": [
17850
+ "null",
17851
+ "string"
17852
+ ],
17853
+ "name": "relatedEntitiesFilterJson",
17854
+ "default": null,
17855
+ "doc": "Optional filters to filter relatedEntities (assetUrns) out\n\nThe stringified json representing the logical predicate built in the UI to select assets.\nThis predicate is turned into orFilters to send through graphql since graphql doesn't support\narbitrary nesting. This string is used to restore the UI for this logical predicate."
17856
+ }
17857
+ ],
17858
+ "doc": "The params required if the module is type HIERARCHY_VIEW"
17859
+ }
17860
+ ],
17861
+ "name": "hierarchyViewParams",
17862
+ "default": null,
17863
+ "doc": "The params required if the module is type HIERARCHY_VIEW"
17795
17864
  }
17796
17865
  ],
17797
17866
  "doc": "The specific parameters stored for a module"
@@ -169,6 +169,12 @@
169
169
  "namespace": "com.linkedin.pegasus2avro.identity",
170
170
  "fields": [
171
171
  {
172
+ "Relationship": {
173
+ "entityTypes": [
174
+ "dataHubPageTemplate"
175
+ ],
176
+ "name": "HasPersonalPageTemplate"
177
+ },
172
178
  "java": {
173
179
  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
174
180
  },
@@ -179,7 +185,10 @@
179
185
  "name": "pageTemplate",
180
186
  "default": null,
181
187
  "doc": "The page template that will be rendered in the UI by default for this user",
182
- "Urn": "Urn"
188
+ "Urn": "Urn",
189
+ "entityTypes": [
190
+ "dataHubPageTemplate"
191
+ ]
183
192
  },
184
193
  {
185
194
  "type": [
@@ -156,6 +156,48 @@
156
156
  "name": "assetCollectionParams",
157
157
  "default": null,
158
158
  "doc": "The params required if the module is type ASSET_COLLECTION"
159
+ },
160
+ {
161
+ "type": [
162
+ "null",
163
+ {
164
+ "type": "record",
165
+ "name": "HierarchyModuleParams",
166
+ "namespace": "com.linkedin.pegasus2avro.module",
167
+ "fields": [
168
+ {
169
+ "type": [
170
+ "null",
171
+ {
172
+ "type": "array",
173
+ "items": "string"
174
+ }
175
+ ],
176
+ "name": "assetUrns",
177
+ "default": null,
178
+ "Urn": "Urn",
179
+ "urn_is_array": true
180
+ },
181
+ {
182
+ "type": "boolean",
183
+ "name": "showRelatedEntities"
184
+ },
185
+ {
186
+ "type": [
187
+ "null",
188
+ "string"
189
+ ],
190
+ "name": "relatedEntitiesFilterJson",
191
+ "default": null,
192
+ "doc": "Optional filters to filter relatedEntities (assetUrns) out\n\nThe stringified json representing the logical predicate built in the UI to select assets.\nThis predicate is turned into orFilters to send through graphql since graphql doesn't support\narbitrary nesting. This string is used to restore the UI for this logical predicate."
193
+ }
194
+ ],
195
+ "doc": "The params required if the module is type HIERARCHY_VIEW"
196
+ }
197
+ ],
198
+ "name": "hierarchyViewParams",
199
+ "default": null,
200
+ "doc": "The params required if the module is type HIERARCHY_VIEW"
159
201
  }
160
202
  ],
161
203
  "doc": "The specific parameters stored for a module"
@@ -8218,6 +8218,24 @@
8218
8218
  "name": "version",
8219
8219
  "default": null,
8220
8220
  "doc": "Aspect version\n Initial implementation will use the aspect version's number, however stored as\n a string in the case where a different aspect versioning scheme is later adopted."
8221
+ },
8222
+ {
8223
+ "type": [
8224
+ "null",
8225
+ "com.linkedin.pegasus2avro.common.AuditStamp"
8226
+ ],
8227
+ "name": "aspectCreated",
8228
+ "default": null,
8229
+ "doc": "When the aspect was initially created and who created it, detected by version 0 -> 1 change"
8230
+ },
8231
+ {
8232
+ "type": [
8233
+ "null",
8234
+ "com.linkedin.pegasus2avro.common.AuditStamp"
8235
+ ],
8236
+ "name": "aspectModified",
8237
+ "default": null,
8238
+ "doc": "When the aspect was last modified and the actor that performed the modification"
8221
8239
  }
8222
8240
  ],
8223
8241
  "doc": "Metadata associated with each metadata change that is processed by the system"
@@ -267,6 +267,67 @@
267
267
  "name": "version",
268
268
  "default": null,
269
269
  "doc": "Aspect version\n Initial implementation will use the aspect version's number, however stored as\n a string in the case where a different aspect versioning scheme is later adopted."
270
+ },
271
+ {
272
+ "type": [
273
+ "null",
274
+ {
275
+ "type": "record",
276
+ "name": "AuditStamp",
277
+ "namespace": "com.linkedin.pegasus2avro.common",
278
+ "fields": [
279
+ {
280
+ "type": "long",
281
+ "name": "time",
282
+ "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."
283
+ },
284
+ {
285
+ "java": {
286
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
287
+ },
288
+ "type": "string",
289
+ "name": "actor",
290
+ "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change.",
291
+ "Urn": "Urn"
292
+ },
293
+ {
294
+ "java": {
295
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
296
+ },
297
+ "type": [
298
+ "null",
299
+ "string"
300
+ ],
301
+ "name": "impersonator",
302
+ "default": null,
303
+ "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor.",
304
+ "Urn": "Urn"
305
+ },
306
+ {
307
+ "type": [
308
+ "null",
309
+ "string"
310
+ ],
311
+ "name": "message",
312
+ "default": null,
313
+ "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."
314
+ }
315
+ ],
316
+ "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."
317
+ }
318
+ ],
319
+ "name": "aspectCreated",
320
+ "default": null,
321
+ "doc": "When the aspect was initially created and who created it, detected by version 0 -> 1 change"
322
+ },
323
+ {
324
+ "type": [
325
+ "null",
326
+ "com.linkedin.pegasus2avro.common.AuditStamp"
327
+ ],
328
+ "name": "aspectModified",
329
+ "default": null,
330
+ "doc": "When the aspect was last modified and the actor that performed the modification"
270
331
  }
271
332
  ],
272
333
  "doc": "Metadata associated with each metadata change that is processed by the system"
@@ -309,50 +370,7 @@
309
370
  {
310
371
  "type": [
311
372
  "null",
312
- {
313
- "type": "record",
314
- "name": "AuditStamp",
315
- "namespace": "com.linkedin.pegasus2avro.common",
316
- "fields": [
317
- {
318
- "type": "long",
319
- "name": "time",
320
- "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."
321
- },
322
- {
323
- "java": {
324
- "class": "com.linkedin.pegasus2avro.common.urn.Urn"
325
- },
326
- "type": "string",
327
- "name": "actor",
328
- "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change.",
329
- "Urn": "Urn"
330
- },
331
- {
332
- "java": {
333
- "class": "com.linkedin.pegasus2avro.common.urn.Urn"
334
- },
335
- "type": [
336
- "null",
337
- "string"
338
- ],
339
- "name": "impersonator",
340
- "default": null,
341
- "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor.",
342
- "Urn": "Urn"
343
- },
344
- {
345
- "type": [
346
- "null",
347
- "string"
348
- ],
349
- "name": "message",
350
- "default": null,
351
- "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."
352
- }
353
- ],
354
- "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."
355
- }
373
+ "com.linkedin.pegasus2avro.common.AuditStamp"
356
374
  ],
357
375
  "name": "created",
358
376
  "default": null,
@@ -267,6 +267,67 @@
267
267
  "name": "version",
268
268
  "default": null,
269
269
  "doc": "Aspect version\n Initial implementation will use the aspect version's number, however stored as\n a string in the case where a different aspect versioning scheme is later adopted."
270
+ },
271
+ {
272
+ "type": [
273
+ "null",
274
+ {
275
+ "type": "record",
276
+ "name": "AuditStamp",
277
+ "namespace": "com.linkedin.pegasus2avro.common",
278
+ "fields": [
279
+ {
280
+ "type": "long",
281
+ "name": "time",
282
+ "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."
283
+ },
284
+ {
285
+ "java": {
286
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
287
+ },
288
+ "type": "string",
289
+ "name": "actor",
290
+ "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change.",
291
+ "Urn": "Urn"
292
+ },
293
+ {
294
+ "java": {
295
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
296
+ },
297
+ "type": [
298
+ "null",
299
+ "string"
300
+ ],
301
+ "name": "impersonator",
302
+ "default": null,
303
+ "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor.",
304
+ "Urn": "Urn"
305
+ },
306
+ {
307
+ "type": [
308
+ "null",
309
+ "string"
310
+ ],
311
+ "name": "message",
312
+ "default": null,
313
+ "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."
314
+ }
315
+ ],
316
+ "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."
317
+ }
318
+ ],
319
+ "name": "aspectCreated",
320
+ "default": null,
321
+ "doc": "When the aspect was initially created and who created it, detected by version 0 -> 1 change"
322
+ },
323
+ {
324
+ "type": [
325
+ "null",
326
+ "com.linkedin.pegasus2avro.common.AuditStamp"
327
+ ],
328
+ "name": "aspectModified",
329
+ "default": null,
330
+ "doc": "When the aspect was last modified and the actor that performed the modification"
270
331
  }
271
332
  ],
272
333
  "doc": "Metadata associated with each metadata change that is processed by the system"
@@ -80,6 +80,67 @@
80
80
  "name": "version",
81
81
  "default": null,
82
82
  "doc": "Aspect version\n Initial implementation will use the aspect version's number, however stored as\n a string in the case where a different aspect versioning scheme is later adopted."
83
+ },
84
+ {
85
+ "type": [
86
+ "null",
87
+ {
88
+ "type": "record",
89
+ "name": "AuditStamp",
90
+ "namespace": "com.linkedin.pegasus2avro.common",
91
+ "fields": [
92
+ {
93
+ "type": "long",
94
+ "name": "time",
95
+ "doc": "When did the resource/association/sub-resource move into the specific lifecycle stage represented by this AuditEvent."
96
+ },
97
+ {
98
+ "java": {
99
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
100
+ },
101
+ "type": "string",
102
+ "name": "actor",
103
+ "doc": "The entity (e.g. a member URN) which will be credited for moving the resource/association/sub-resource into the specific lifecycle stage. It is also the one used to authorize the change.",
104
+ "Urn": "Urn"
105
+ },
106
+ {
107
+ "java": {
108
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
109
+ },
110
+ "type": [
111
+ "null",
112
+ "string"
113
+ ],
114
+ "name": "impersonator",
115
+ "default": null,
116
+ "doc": "The entity (e.g. a service URN) which performs the change on behalf of the Actor and must be authorized to act as the Actor.",
117
+ "Urn": "Urn"
118
+ },
119
+ {
120
+ "type": [
121
+ "null",
122
+ "string"
123
+ ],
124
+ "name": "message",
125
+ "default": null,
126
+ "doc": "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually."
127
+ }
128
+ ],
129
+ "doc": "Data captured on a resource/association/sub-resource level giving insight into when that resource/association/sub-resource moved into a particular lifecycle stage, and who acted to move it into that specific lifecycle stage."
130
+ }
131
+ ],
132
+ "name": "aspectCreated",
133
+ "default": null,
134
+ "doc": "When the aspect was initially created and who created it, detected by version 0 -> 1 change"
135
+ },
136
+ {
137
+ "type": [
138
+ "null",
139
+ "com.linkedin.pegasus2avro.common.AuditStamp"
140
+ ],
141
+ "name": "aspectModified",
142
+ "default": null,
143
+ "doc": "When the aspect was last modified and the actor that performed the modification"
83
144
  }
84
145
  ],
85
146
  "doc": "Metadata associated with each metadata change that is processed by the system"