acryl-datahub 0.15.0.2rc4__py3-none-any.whl → 0.15.0.2rc6__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 (50) hide show
  1. {acryl_datahub-0.15.0.2rc4.dist-info → acryl_datahub-0.15.0.2rc6.dist-info}/METADATA +2440 -2440
  2. {acryl_datahub-0.15.0.2rc4.dist-info → acryl_datahub-0.15.0.2rc6.dist-info}/RECORD +50 -46
  3. datahub/__init__.py +1 -1
  4. datahub/cli/delete_cli.py +3 -3
  5. datahub/cli/migrate.py +2 -2
  6. datahub/emitter/mcp_builder.py +27 -0
  7. datahub/emitter/rest_emitter.py +1 -1
  8. datahub/ingestion/api/source.py +2 -2
  9. datahub/ingestion/source/delta_lake/source.py +0 -5
  10. datahub/ingestion/source/demo_data.py +1 -1
  11. datahub/ingestion/source/fivetran/fivetran.py +1 -6
  12. datahub/ingestion/source/gc/soft_deleted_entity_cleanup.py +6 -2
  13. datahub/ingestion/source/iceberg/iceberg.py +10 -3
  14. datahub/ingestion/source/iceberg/iceberg_common.py +49 -9
  15. datahub/ingestion/source/iceberg/iceberg_profiler.py +3 -1
  16. datahub/ingestion/source/kafka_connect/kafka_connect.py +1 -6
  17. datahub/ingestion/source/metabase.py +1 -6
  18. datahub/ingestion/source/mlflow.py +0 -5
  19. datahub/ingestion/source/nifi.py +0 -5
  20. datahub/ingestion/source/redash.py +0 -5
  21. datahub/ingestion/source/redshift/redshift.py +1 -0
  22. datahub/ingestion/source/snowflake/snowflake_config.py +13 -0
  23. datahub/ingestion/source/snowflake/snowflake_schema.py +5 -2
  24. datahub/ingestion/source/snowflake/snowflake_schema_gen.py +112 -20
  25. datahub/ingestion/source/snowflake/snowflake_tag.py +14 -4
  26. datahub/ingestion/source/snowflake/snowflake_v2.py +0 -6
  27. datahub/ingestion/source/sql/sql_types.py +1 -1
  28. datahub/ingestion/source/sql/sql_utils.py +5 -0
  29. datahub/ingestion/source/superset.py +1 -6
  30. datahub/ingestion/source/tableau/tableau.py +0 -6
  31. datahub/metadata/_schema_classes.py +314 -41
  32. datahub/metadata/_urns/urn_defs.py +54 -0
  33. datahub/metadata/com/linkedin/pegasus2avro/common/__init__.py +2 -0
  34. datahub/metadata/com/linkedin/pegasus2avro/metadata/key/__init__.py +2 -0
  35. datahub/metadata/com/linkedin/pegasus2avro/versionset/__init__.py +17 -0
  36. datahub/metadata/schema.avsc +296 -87
  37. datahub/metadata/schemas/DatasetKey.avsc +2 -1
  38. datahub/metadata/schemas/MLFeatureProperties.avsc +51 -0
  39. datahub/metadata/schemas/MLModelDeploymentProperties.avsc +51 -0
  40. datahub/metadata/schemas/MLModelGroupProperties.avsc +96 -23
  41. datahub/metadata/schemas/MLModelKey.avsc +2 -1
  42. datahub/metadata/schemas/MLModelProperties.avsc +96 -48
  43. datahub/metadata/schemas/MLPrimaryKeyProperties.avsc +51 -0
  44. datahub/metadata/schemas/MetadataChangeEvent.avsc +98 -71
  45. datahub/metadata/schemas/VersionProperties.avsc +216 -0
  46. datahub/metadata/schemas/VersionSetKey.avsc +26 -0
  47. datahub/metadata/schemas/VersionSetProperties.avsc +49 -0
  48. {acryl_datahub-0.15.0.2rc4.dist-info → acryl_datahub-0.15.0.2rc6.dist-info}/WHEEL +0 -0
  49. {acryl_datahub-0.15.0.2rc4.dist-info → acryl_datahub-0.15.0.2rc6.dist-info}/entry_points.txt +0 -0
  50. {acryl_datahub-0.15.0.2rc4.dist-info → acryl_datahub-0.15.0.2rc6.dist-info}/top_level.txt +0 -0
@@ -57,6 +57,7 @@ from ......schema_classes import SchemaFieldKeyClass
57
57
  from ......schema_classes import TagKeyClass
58
58
  from ......schema_classes import TelemetryKeyClass
59
59
  from ......schema_classes import TestKeyClass
60
+ from ......schema_classes import VersionSetKeyClass
60
61
 
61
62
 
62
63
  AssertionKey = AssertionKeyClass
@@ -109,5 +110,6 @@ SchemaFieldKey = SchemaFieldKeyClass
109
110
  TagKey = TagKeyClass
110
111
  TelemetryKey = TelemetryKeyClass
111
112
  TestKey = TestKeyClass
113
+ VersionSetKey = VersionSetKeyClass
112
114
 
113
115
  # fmt: on
@@ -0,0 +1,17 @@
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 VersionSetPropertiesClass
11
+ from .....schema_classes import VersioningSchemeClass
12
+
13
+
14
+ VersionSetProperties = VersionSetPropertiesClass
15
+ VersioningScheme = VersioningSchemeClass
16
+
17
+ # fmt: on
@@ -2021,6 +2021,136 @@
2021
2021
  ],
2022
2022
  "doc": "Aspect used for storing all applicable documentations on assets.\nThis aspect supports multiple documentations from different sources.\nThere is an implicit assumption that there is only one documentation per\n source.\nFor example, if there are two documentations from the same source, the\n latest one will overwrite the previous one.\nIf there are two documentations from different sources, both will be\n stored.\nFuture evolution considerations:\nThe first entity that uses this aspect is Schema Field. We will expand this\n aspect to other entities eventually.\nThe values of the documentation are not currently searchable. This will be\n changed once this aspect develops opinion on which documentation entry is\n the authoritative one.\nEnsuring that there is only one documentation per source is a business\n rule that is not enforced by the aspect yet. This will currently be enforced by the\n application that uses this aspect. We will eventually enforce this rule in\n the aspect using AspectMutators."
2023
2023
  },
2024
+ {
2025
+ "type": "record",
2026
+ "Aspect": {
2027
+ "name": "versionProperties"
2028
+ },
2029
+ "name": "VersionProperties",
2030
+ "namespace": "com.linkedin.pegasus2avro.common",
2031
+ "fields": [
2032
+ {
2033
+ "Relationship": {
2034
+ "entityTypes": [
2035
+ "versionSet"
2036
+ ],
2037
+ "name": "VersionOf"
2038
+ },
2039
+ "Searchable": {
2040
+ "queryByDefault": false
2041
+ },
2042
+ "java": {
2043
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
2044
+ },
2045
+ "Urn": "Urn",
2046
+ "entityTypes": [
2047
+ "versionSet"
2048
+ ],
2049
+ "type": "string",
2050
+ "name": "versionSet",
2051
+ "doc": "The linked Version Set entity that ties multiple versioned assets together"
2052
+ },
2053
+ {
2054
+ "Searchable": {
2055
+ "/versionTag": {
2056
+ "fieldName": "version",
2057
+ "queryByDefault": false
2058
+ }
2059
+ },
2060
+ "type": {
2061
+ "type": "record",
2062
+ "name": "VersionTag",
2063
+ "namespace": "com.linkedin.pegasus2avro.common",
2064
+ "fields": [
2065
+ {
2066
+ "type": [
2067
+ "null",
2068
+ "string"
2069
+ ],
2070
+ "name": "versionTag",
2071
+ "default": null
2072
+ },
2073
+ {
2074
+ "type": [
2075
+ "null",
2076
+ "com.linkedin.pegasus2avro.common.MetadataAttribution"
2077
+ ],
2078
+ "name": "metadataAttribution",
2079
+ "default": null
2080
+ }
2081
+ ],
2082
+ "doc": "A resource-defined string representing the resource state for the purpose of concurrency control"
2083
+ },
2084
+ "name": "version",
2085
+ "doc": "Label for this versioned asset, is unique within a version set"
2086
+ },
2087
+ {
2088
+ "Searchable": {
2089
+ "/*/versionTag": {
2090
+ "fieldName": "aliases",
2091
+ "queryByDefault": false
2092
+ }
2093
+ },
2094
+ "type": {
2095
+ "type": "array",
2096
+ "items": "com.linkedin.pegasus2avro.common.VersionTag"
2097
+ },
2098
+ "name": "aliases",
2099
+ "default": [],
2100
+ "doc": "Associated aliases for this versioned asset"
2101
+ },
2102
+ {
2103
+ "type": [
2104
+ "null",
2105
+ "string"
2106
+ ],
2107
+ "name": "comment",
2108
+ "default": null,
2109
+ "doc": "Comment documenting what this version was created for, changes, or represents"
2110
+ },
2111
+ {
2112
+ "Searchable": {
2113
+ "fieldName": "versionSortId",
2114
+ "queryByDefault": false
2115
+ },
2116
+ "type": "string",
2117
+ "name": "sortId",
2118
+ "doc": "Sort identifier that determines where a version lives in the order of the Version Set.\nWhat this looks like depends on the Version Scheme. For sort ids generated by DataHub we use an 8 character string representation."
2119
+ },
2120
+ {
2121
+ "type": [
2122
+ "null",
2123
+ "com.linkedin.pegasus2avro.common.AuditStamp"
2124
+ ],
2125
+ "name": "sourceCreatedTimestamp",
2126
+ "default": null,
2127
+ "doc": "Timestamp reflecting when this asset version was created in the source system."
2128
+ },
2129
+ {
2130
+ "type": [
2131
+ "null",
2132
+ "com.linkedin.pegasus2avro.common.AuditStamp"
2133
+ ],
2134
+ "name": "metadataCreatedTimestamp",
2135
+ "default": null,
2136
+ "doc": "Timestamp reflecting when the metadata for this version was created in DataHub"
2137
+ },
2138
+ {
2139
+ "Searchable": {
2140
+ "fieldType": "BOOLEAN",
2141
+ "queryByDefault": false
2142
+ },
2143
+ "type": [
2144
+ "null",
2145
+ "boolean"
2146
+ ],
2147
+ "name": "isLatest",
2148
+ "default": null,
2149
+ "doc": "Marks whether this version is currently the latest. Set by a side effect and should not be modified by API."
2150
+ }
2151
+ ],
2152
+ "doc": "Properties about a versioned asset i.e. dataset, ML Model, etc."
2153
+ },
2024
2154
  {
2025
2155
  "type": "record",
2026
2156
  "Aspect": {
@@ -6890,6 +7020,51 @@
6890
7020
  "default": null,
6891
7021
  "doc": "URL where the reference exist"
6892
7022
  },
7023
+ {
7024
+ "Relationship": {
7025
+ "/*": {
7026
+ "entityTypes": [
7027
+ "dataJob",
7028
+ "dataProcessInstance"
7029
+ ],
7030
+ "isLineage": true,
7031
+ "name": "TrainedBy"
7032
+ }
7033
+ },
7034
+ "type": [
7035
+ "null",
7036
+ {
7037
+ "type": "array",
7038
+ "items": "string"
7039
+ }
7040
+ ],
7041
+ "name": "trainingJobs",
7042
+ "default": null,
7043
+ "doc": "List of jobs or process instances (if any) used to train the model or group. Visible in Lineage. Note that ML Models can also be specified as the output of a specific Data Process Instances (runs) via the DataProcessInstanceOutputs aspect."
7044
+ },
7045
+ {
7046
+ "Relationship": {
7047
+ "/*": {
7048
+ "entityTypes": [
7049
+ "dataJob",
7050
+ "dataProcessInstance"
7051
+ ],
7052
+ "isLineage": true,
7053
+ "isUpstream": false,
7054
+ "name": "UsedBy"
7055
+ }
7056
+ },
7057
+ "type": [
7058
+ "null",
7059
+ {
7060
+ "type": "array",
7061
+ "items": "string"
7062
+ }
7063
+ ],
7064
+ "name": "downstreamJobs",
7065
+ "default": null,
7066
+ "doc": "List of jobs or process instances (if any) that use the model or group."
7067
+ },
6893
7068
  {
6894
7069
  "Searchable": {
6895
7070
  "boostScore": 10.0,
@@ -6949,22 +7124,7 @@
6949
7124
  {
6950
7125
  "type": [
6951
7126
  "null",
6952
- {
6953
- "type": "record",
6954
- "name": "VersionTag",
6955
- "namespace": "com.linkedin.pegasus2avro.common",
6956
- "fields": [
6957
- {
6958
- "type": [
6959
- "null",
6960
- "string"
6961
- ],
6962
- "name": "versionTag",
6963
- "default": null
6964
- }
6965
- ],
6966
- "doc": "A resource-defined string representing the resource state for the purpose of concurrency control"
6967
- }
7127
+ "com.linkedin.pegasus2avro.common.VersionTag"
6968
7128
  ],
6969
7129
  "name": "version",
6970
7130
  "default": null,
@@ -7174,54 +7334,6 @@
7174
7334
  "default": null,
7175
7335
  "doc": "Deployments for the MLModel"
7176
7336
  },
7177
- {
7178
- "Relationship": {
7179
- "/*": {
7180
- "entityTypes": [
7181
- "dataJob",
7182
- "dataProcessInstance"
7183
- ],
7184
- "isLineage": true,
7185
- "name": "TrainedBy"
7186
- }
7187
- },
7188
- "Urn": "Urn",
7189
- "urn_is_array": true,
7190
- "type": [
7191
- "null",
7192
- {
7193
- "type": "array",
7194
- "items": "string"
7195
- }
7196
- ],
7197
- "name": "trainingJobs",
7198
- "default": null,
7199
- "doc": "List of jobs (if any) used to train the model. Visible in Lineage. Note that ML Models can also be specified as the output of a specific Data Process Instances (runs) via the DataProcessInstanceOutputs aspect."
7200
- },
7201
- {
7202
- "Relationship": {
7203
- "/*": {
7204
- "entityTypes": [
7205
- "dataJob"
7206
- ],
7207
- "isLineage": true,
7208
- "isUpstream": false,
7209
- "name": "UsedBy"
7210
- }
7211
- },
7212
- "Urn": "Urn",
7213
- "urn_is_array": true,
7214
- "type": [
7215
- "null",
7216
- {
7217
- "type": "array",
7218
- "items": "string"
7219
- }
7220
- ],
7221
- "name": "downstreamJobs",
7222
- "default": null,
7223
- "doc": "List of jobs (if any) that use the model"
7224
- },
7225
7337
  {
7226
7338
  "Relationship": {
7227
7339
  "/*": {
@@ -8513,6 +8625,51 @@
8513
8625
  "default": {},
8514
8626
  "doc": "Custom property bag."
8515
8627
  },
8628
+ {
8629
+ "Relationship": {
8630
+ "/*": {
8631
+ "entityTypes": [
8632
+ "dataJob",
8633
+ "dataProcessInstance"
8634
+ ],
8635
+ "isLineage": true,
8636
+ "name": "TrainedBy"
8637
+ }
8638
+ },
8639
+ "type": [
8640
+ "null",
8641
+ {
8642
+ "type": "array",
8643
+ "items": "string"
8644
+ }
8645
+ ],
8646
+ "name": "trainingJobs",
8647
+ "default": null,
8648
+ "doc": "List of jobs or process instances (if any) used to train the model or group. Visible in Lineage. Note that ML Models can also be specified as the output of a specific Data Process Instances (runs) via the DataProcessInstanceOutputs aspect."
8649
+ },
8650
+ {
8651
+ "Relationship": {
8652
+ "/*": {
8653
+ "entityTypes": [
8654
+ "dataJob",
8655
+ "dataProcessInstance"
8656
+ ],
8657
+ "isLineage": true,
8658
+ "isUpstream": false,
8659
+ "name": "UsedBy"
8660
+ }
8661
+ },
8662
+ "type": [
8663
+ "null",
8664
+ {
8665
+ "type": "array",
8666
+ "items": "string"
8667
+ }
8668
+ ],
8669
+ "name": "downstreamJobs",
8670
+ "default": null,
8671
+ "doc": "List of jobs or process instances (if any) that use the model or group."
8672
+ },
8516
8673
  {
8517
8674
  "Searchable": {
8518
8675
  "boostScore": 10.0,
@@ -8569,29 +8726,6 @@
8569
8726
  "default": null,
8570
8727
  "doc": "Date when the MLModelGroup was last modified"
8571
8728
  },
8572
- {
8573
- "Relationship": {
8574
- "/*": {
8575
- "entityTypes": [
8576
- "dataJob"
8577
- ],
8578
- "isLineage": true,
8579
- "name": "TrainedBy"
8580
- }
8581
- },
8582
- "Urn": "Urn",
8583
- "urn_is_array": true,
8584
- "type": [
8585
- "null",
8586
- {
8587
- "type": "array",
8588
- "items": "string"
8589
- }
8590
- ],
8591
- "name": "trainingJobs",
8592
- "default": null,
8593
- "doc": "List of jobs (if any) used to train the model group. Visible in Lineage."
8594
- },
8595
8729
  {
8596
8730
  "type": [
8597
8731
  "null",
@@ -15527,6 +15661,55 @@
15527
15661
  ],
15528
15662
  "doc": "A simple wrapper around a String to persist the client ID for telemetry in DataHub's backend DB"
15529
15663
  },
15664
+ {
15665
+ "type": "record",
15666
+ "Aspect": {
15667
+ "name": "versionSetProperties"
15668
+ },
15669
+ "name": "VersionSetProperties",
15670
+ "namespace": "com.linkedin.pegasus2avro.versionset",
15671
+ "fields": [
15672
+ {
15673
+ "Searchable": {
15674
+ "/*": {
15675
+ "fieldType": "TEXT",
15676
+ "queryByDefault": true
15677
+ }
15678
+ },
15679
+ "type": {
15680
+ "type": "map",
15681
+ "values": "string"
15682
+ },
15683
+ "name": "customProperties",
15684
+ "default": {},
15685
+ "doc": "Custom property bag."
15686
+ },
15687
+ {
15688
+ "Searchable": {
15689
+ "queryByDefault": "false"
15690
+ },
15691
+ "java": {
15692
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
15693
+ },
15694
+ "Urn": "Urn",
15695
+ "type": "string",
15696
+ "name": "latest",
15697
+ "doc": "The latest versioned entity linked to in this version set"
15698
+ },
15699
+ {
15700
+ "type": {
15701
+ "type": "enum",
15702
+ "name": "VersioningScheme",
15703
+ "namespace": "com.linkedin.pegasus2avro.versionset",
15704
+ "symbols": [
15705
+ "ALPHANUMERIC_GENERATED_BY_DATAHUB"
15706
+ ]
15707
+ },
15708
+ "name": "versioningScheme",
15709
+ "doc": "What versioning scheme is being utilized for the versioned entities sort criterion. Static once set"
15710
+ }
15711
+ ]
15712
+ },
15530
15713
  {
15531
15714
  "type": "record",
15532
15715
  "Aspect": {
@@ -16263,6 +16446,32 @@
16263
16446
  ],
16264
16447
  "doc": "Key for a DataHub ingestion source"
16265
16448
  },
16449
+ {
16450
+ "type": "record",
16451
+ "Aspect": {
16452
+ "name": "versionSetKey",
16453
+ "keyForEntity": "versionSet",
16454
+ "entityCategory": "core",
16455
+ "entityAspects": [
16456
+ "versionSetProperties"
16457
+ ]
16458
+ },
16459
+ "name": "VersionSetKey",
16460
+ "namespace": "com.linkedin.pegasus2avro.metadata.key",
16461
+ "fields": [
16462
+ {
16463
+ "type": "string",
16464
+ "name": "id",
16465
+ "doc": "ID of the Version Set, generated from platform + asset id / name"
16466
+ },
16467
+ {
16468
+ "type": "string",
16469
+ "name": "entityType",
16470
+ "doc": "Type of entities included in version set, limits to a single entity type between linked versioned entities"
16471
+ }
16472
+ ],
16473
+ "doc": "Key for a Version Set entity"
16474
+ },
16266
16475
  "com.linkedin.pegasus2avro.metadata.key.DataHubRetentionKey",
16267
16476
  {
16268
16477
  "type": "record",
@@ -35,7 +35,8 @@
35
35
  "access",
36
36
  "structuredProperties",
37
37
  "forms",
38
- "partitionsSummary"
38
+ "partitionsSummary",
39
+ "versionProperties"
39
40
  ],
40
41
  "entityDoc": "Datasets represent logical or physical data assets stored or represented in various data platforms. Tables, Views, Streams are all instances of datasets."
41
42
  },
@@ -101,6 +101,57 @@
101
101
  ],
102
102
  "name": "versionTag",
103
103
  "default": null
104
+ },
105
+ {
106
+ "type": [
107
+ "null",
108
+ {
109
+ "type": "record",
110
+ "name": "MetadataAttribution",
111
+ "namespace": "com.linkedin.pegasus2avro.common",
112
+ "fields": [
113
+ {
114
+ "type": "long",
115
+ "name": "time",
116
+ "doc": "When this metadata was updated."
117
+ },
118
+ {
119
+ "java": {
120
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
121
+ },
122
+ "type": "string",
123
+ "name": "actor",
124
+ "doc": "The entity (e.g. a member URN) responsible for applying the assocated metadata. This can\neither be a user (in case of UI edits) or the datahub system for automation.",
125
+ "Urn": "Urn"
126
+ },
127
+ {
128
+ "java": {
129
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
130
+ },
131
+ "type": [
132
+ "null",
133
+ "string"
134
+ ],
135
+ "name": "source",
136
+ "default": null,
137
+ "doc": "The DataHub source responsible for applying the associated metadata. This will only be filled out\nwhen a DataHub source is responsible. This includes the specific metadata test urn, the automation urn.",
138
+ "Urn": "Urn"
139
+ },
140
+ {
141
+ "type": {
142
+ "type": "map",
143
+ "values": "string"
144
+ },
145
+ "name": "sourceDetail",
146
+ "default": {},
147
+ "doc": "The details associated with why this metadata was applied. For example, this could include\nthe actual regex rule, sql statement, ingestion pipeline ID, etc."
148
+ }
149
+ ],
150
+ "doc": "Information about who, why, and how this metadata was applied"
151
+ }
152
+ ],
153
+ "name": "metadataAttribution",
154
+ "default": null
104
155
  }
105
156
  ],
106
157
  "doc": "A resource-defined string representing the resource state for the purpose of concurrency control"
@@ -74,6 +74,57 @@
74
74
  ],
75
75
  "name": "versionTag",
76
76
  "default": null
77
+ },
78
+ {
79
+ "type": [
80
+ "null",
81
+ {
82
+ "type": "record",
83
+ "name": "MetadataAttribution",
84
+ "namespace": "com.linkedin.pegasus2avro.common",
85
+ "fields": [
86
+ {
87
+ "type": "long",
88
+ "name": "time",
89
+ "doc": "When this metadata was updated."
90
+ },
91
+ {
92
+ "java": {
93
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
94
+ },
95
+ "type": "string",
96
+ "name": "actor",
97
+ "doc": "The entity (e.g. a member URN) responsible for applying the assocated metadata. This can\neither be a user (in case of UI edits) or the datahub system for automation.",
98
+ "Urn": "Urn"
99
+ },
100
+ {
101
+ "java": {
102
+ "class": "com.linkedin.pegasus2avro.common.urn.Urn"
103
+ },
104
+ "type": [
105
+ "null",
106
+ "string"
107
+ ],
108
+ "name": "source",
109
+ "default": null,
110
+ "doc": "The DataHub source responsible for applying the associated metadata. This will only be filled out\nwhen a DataHub source is responsible. This includes the specific metadata test urn, the automation urn.",
111
+ "Urn": "Urn"
112
+ },
113
+ {
114
+ "type": {
115
+ "type": "map",
116
+ "values": "string"
117
+ },
118
+ "name": "sourceDetail",
119
+ "default": {},
120
+ "doc": "The details associated with why this metadata was applied. For example, this could include\nthe actual regex rule, sql statement, ingestion pipeline ID, etc."
121
+ }
122
+ ],
123
+ "doc": "Information about who, why, and how this metadata was applied"
124
+ }
125
+ ],
126
+ "name": "metadataAttribution",
127
+ "default": null
77
128
  }
78
129
  ],
79
130
  "doc": "A resource-defined string representing the resource state for the purpose of concurrency control"