acryl-datahub-cloud 0.3.12.4rc2__py3-none-any.whl → 0.3.13__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-cloud might be problematic. Click here for more details.

Files changed (53) hide show
  1. acryl_datahub_cloud/_codegen_config.json +1 -1
  2. acryl_datahub_cloud/lineage_features/source.py +8 -2
  3. acryl_datahub_cloud/metadata/_urns/urn_defs.py +168 -0
  4. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/actionworkflow/__init__.py +53 -0
  5. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/assertion/__init__.py +2 -0
  6. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/identity/__init__.py +2 -0
  7. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/logical/__init__.py +15 -0
  8. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/metadata/key/__init__.py +6 -0
  9. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/module/__init__.py +31 -0
  10. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/settings/global/__init__.py +4 -0
  11. acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/template/__init__.py +25 -0
  12. acryl_datahub_cloud/metadata/schema.avsc +1543 -275
  13. acryl_datahub_cloud/metadata/schema_classes.py +2040 -4
  14. acryl_datahub_cloud/metadata/schemas/ActionRequestInfo.avsc +136 -1
  15. acryl_datahub_cloud/metadata/schemas/ActionWorkflowInfo.avsc +683 -0
  16. acryl_datahub_cloud/metadata/schemas/ActionWorkflowKey.avsc +21 -0
  17. acryl_datahub_cloud/metadata/schemas/AssertionAnalyticsRunEvent.avsc +46 -0
  18. acryl_datahub_cloud/metadata/schemas/AssertionInfo.avsc +25 -0
  19. acryl_datahub_cloud/metadata/schemas/AssertionRunEvent.avsc +25 -0
  20. acryl_datahub_cloud/metadata/schemas/CorpUserSettings.avsc +50 -0
  21. acryl_datahub_cloud/metadata/schemas/DataHubPageModuleKey.avsc +21 -0
  22. acryl_datahub_cloud/metadata/schemas/DataHubPageModuleProperties.avsc +281 -0
  23. acryl_datahub_cloud/metadata/schemas/DataHubPageTemplateKey.avsc +21 -0
  24. acryl_datahub_cloud/metadata/schemas/DataHubPageTemplateProperties.avsc +175 -0
  25. acryl_datahub_cloud/metadata/schemas/DataJobInputOutput.avsc +8 -0
  26. acryl_datahub_cloud/metadata/schemas/DatasetKey.avsc +1 -0
  27. acryl_datahub_cloud/metadata/schemas/GlobalSettingsInfo.avsc +71 -0
  28. acryl_datahub_cloud/metadata/schemas/LogicalParent.avsc +140 -0
  29. acryl_datahub_cloud/metadata/schemas/MetadataChangeEvent.avsc +163 -1
  30. acryl_datahub_cloud/metadata/schemas/MetadataChangeLog.avsc +62 -44
  31. acryl_datahub_cloud/metadata/schemas/MetadataChangeProposal.avsc +61 -0
  32. acryl_datahub_cloud/metadata/schemas/MonitorInfo.avsc +25 -0
  33. acryl_datahub_cloud/metadata/schemas/NotificationRequest.avsc +4 -0
  34. acryl_datahub_cloud/metadata/schemas/QuerySubjects.avsc +1 -12
  35. acryl_datahub_cloud/metadata/schemas/SchemaFieldKey.avsc +1 -0
  36. acryl_datahub_cloud/metadata/schemas/SystemMetadata.avsc +61 -0
  37. acryl_datahub_cloud/metadata/schemas/UpstreamLineage.avsc +9 -0
  38. acryl_datahub_cloud/sdk/assertion/__init__.py +49 -0
  39. acryl_datahub_cloud/sdk/assertion/assertion_base.py +65 -806
  40. acryl_datahub_cloud/sdk/assertion/freshness_assertion.py +201 -0
  41. acryl_datahub_cloud/sdk/assertion/smart_freshness_assertion.py +165 -0
  42. acryl_datahub_cloud/sdk/assertion/smart_volume_assertion.py +162 -0
  43. acryl_datahub_cloud/sdk/assertion/sql_assertion.py +256 -0
  44. acryl_datahub_cloud/sdk/assertion/volume_assertion.py +156 -0
  45. acryl_datahub_cloud/sdk/assertion_input/assertion_input.py +0 -344
  46. acryl_datahub_cloud/sdk/assertion_input/smart_freshness_assertion_input.py +220 -0
  47. acryl_datahub_cloud/sdk/assertion_input/smart_volume_assertion_input.py +191 -0
  48. acryl_datahub_cloud/sdk/assertions_client.py +6 -2
  49. {acryl_datahub_cloud-0.3.12.4rc2.dist-info → acryl_datahub_cloud-0.3.13.dist-info}/METADATA +46 -44
  50. {acryl_datahub_cloud-0.3.12.4rc2.dist-info → acryl_datahub_cloud-0.3.13.dist-info}/RECORD +53 -35
  51. {acryl_datahub_cloud-0.3.12.4rc2.dist-info → acryl_datahub_cloud-0.3.13.dist-info}/WHEEL +0 -0
  52. {acryl_datahub_cloud-0.3.12.4rc2.dist-info → acryl_datahub_cloud-0.3.13.dist-info}/entry_points.txt +0 -0
  53. {acryl_datahub_cloud-0.3.12.4rc2.dist-info → acryl_datahub_cloud-0.3.13.dist-info}/top_level.txt +0 -0
@@ -767,7 +767,7 @@ class ActionRequestInfoClass(_Aspect):
767
767
 
768
768
  @property
769
769
  def type(self) -> str:
770
- """The type of the action request, for example 'TAG_ASSOCIATION'"""
770
+ """The type of the action request, for example 'TAG_ASSOCIATION', 'WORKFLOW_FORM_REQUEST'"""
771
771
  return self._inner_dict.get('type') # type: ignore
772
772
 
773
773
  @type.setter
@@ -948,6 +948,7 @@ class ActionRequestParamsClass(DictWrapper):
948
948
  createGlossaryNodeProposal: Union[None, "CreateGlossaryNodeProposalClass"]=None,
949
949
  updateDescriptionProposal: Union[None, "DescriptionProposalClass"]=None,
950
950
  dataContractProposal: Union[None, "DataContractProposalClass"]=None,
951
+ workflowFormRequest: Union[None, "ActionWorkflowFormRequestClass"]=None,
951
952
  ):
952
953
  super().__init__()
953
954
 
@@ -960,6 +961,7 @@ class ActionRequestParamsClass(DictWrapper):
960
961
  self.createGlossaryNodeProposal = createGlossaryNodeProposal
961
962
  self.updateDescriptionProposal = updateDescriptionProposal
962
963
  self.dataContractProposal = dataContractProposal
964
+ self.workflowFormRequest = workflowFormRequest
963
965
 
964
966
  def _restore_defaults(self) -> None:
965
967
  self.glossaryTermProposal = self.RECORD_SCHEMA.fields_dict["glossaryTermProposal"].default
@@ -971,6 +973,7 @@ class ActionRequestParamsClass(DictWrapper):
971
973
  self.createGlossaryNodeProposal = self.RECORD_SCHEMA.fields_dict["createGlossaryNodeProposal"].default
972
974
  self.updateDescriptionProposal = self.RECORD_SCHEMA.fields_dict["updateDescriptionProposal"].default
973
975
  self.dataContractProposal = self.RECORD_SCHEMA.fields_dict["dataContractProposal"].default
976
+ self.workflowFormRequest = self.RECORD_SCHEMA.fields_dict["workflowFormRequest"].default
974
977
 
975
978
 
976
979
  @property
@@ -1065,6 +1068,16 @@ class ActionRequestParamsClass(DictWrapper):
1065
1068
  self._inner_dict['dataContractProposal'] = value
1066
1069
 
1067
1070
 
1071
+ @property
1072
+ def workflowFormRequest(self) -> Union[None, "ActionWorkflowFormRequestClass"]:
1073
+ """An action workflow form request."""
1074
+ return self._inner_dict.get('workflowFormRequest') # type: ignore
1075
+
1076
+ @workflowFormRequest.setter
1077
+ def workflowFormRequest(self, value: Union[None, "ActionWorkflowFormRequestClass"]) -> None:
1078
+ self._inner_dict['workflowFormRequest'] = value
1079
+
1080
+
1068
1081
  class ActionRequestStatusClass(_Aspect):
1069
1082
  """The status of the action request - e.g. accepted, rejected, pending, etc"""
1070
1083
 
@@ -1498,6 +1511,985 @@ class TagProposalClass(DictWrapper):
1498
1511
  self._inner_dict['tags'] = value
1499
1512
 
1500
1513
 
1514
+ class ActionWorkflowCategoryClass(object):
1515
+ # No docs available.
1516
+
1517
+ ACCESS = "ACCESS"
1518
+ """Workflow for requesting access to a resource, such as a dataset or data job.
1519
+ Requires the `access` field to be populated with specific access parameters."""
1520
+
1521
+ CUSTOM = "CUSTOM"
1522
+ """Custom, non-access related workflow. For example, may be used to model workflows like
1523
+ asset creation, asset cleanup or deletion, etc."""
1524
+
1525
+
1526
+
1527
+ class ActionWorkflowEntrypointClass(DictWrapper):
1528
+ """The entry point arguments for the action request workflowform.
1529
+ In the future, we may extend this model to support more granular entry point filters."""
1530
+
1531
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowEntrypoint")
1532
+ def __init__(self,
1533
+ type: Union[str, "ActionWorkflowEntrypointTypeClass"],
1534
+ label: str,
1535
+ filter: Union[None, "FilterClass"]=None,
1536
+ ):
1537
+ super().__init__()
1538
+
1539
+ self.type = type
1540
+ self.label = label
1541
+ self.filter = filter
1542
+
1543
+ def _restore_defaults(self) -> None:
1544
+ self.type = ActionWorkflowEntrypointTypeClass.HOME
1545
+ self.label = str()
1546
+ self.filter = self.RECORD_SCHEMA.fields_dict["filter"].default
1547
+
1548
+
1549
+ @property
1550
+ def type(self) -> Union[str, "ActionWorkflowEntrypointTypeClass"]:
1551
+ """The type of entry point for the action request workflow.
1552
+ This determines where the action request workflow will be displayed."""
1553
+ return self._inner_dict.get('type') # type: ignore
1554
+
1555
+ @type.setter
1556
+ def type(self, value: Union[str, "ActionWorkflowEntrypointTypeClass"]) -> None:
1557
+ self._inner_dict['type'] = value
1558
+
1559
+
1560
+ @property
1561
+ def label(self) -> str:
1562
+ """The label for the entry point, which is displayed to users.
1563
+ This should be a user-friendly name that describes the action request."""
1564
+ return self._inner_dict.get('label') # type: ignore
1565
+
1566
+ @label.setter
1567
+ def label(self, value: str) -> None:
1568
+ self._inner_dict['label'] = value
1569
+
1570
+
1571
+ @property
1572
+ def filter(self) -> Union[None, "FilterClass"]:
1573
+ """Additional filter criteria to determine when the entry point should be displayed.
1574
+
1575
+ Not yet supported (but will be in the future)."""
1576
+ return self._inner_dict.get('filter') # type: ignore
1577
+
1578
+ @filter.setter
1579
+ def filter(self, value: Union[None, "FilterClass"]) -> None:
1580
+ self._inner_dict['filter'] = value
1581
+
1582
+
1583
+ class ActionWorkflowEntrypointTypeClass(object):
1584
+ # No docs available.
1585
+
1586
+ HOME = "HOME"
1587
+ """ Visible on the home page to all users. """
1588
+
1589
+ ENTITY_PROFILE = "ENTITY_PROFILE"
1590
+ """ Visible on the entity profile page. For all valid entity types specified in the parent object. """
1591
+
1592
+
1593
+
1594
+ class ActionWorkflowFieldClass(DictWrapper):
1595
+ """A field inside an Action Workflow Form."""
1596
+
1597
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowField")
1598
+ def __init__(self,
1599
+ id: str,
1600
+ name: str,
1601
+ valueType: str,
1602
+ cardinality: Union[str, "PropertyCardinalityClass"],
1603
+ description: Union[None, str]=None,
1604
+ allowedEntityTypes: Union[None, List[str]]=None,
1605
+ allowedValues: Union[None, List["PropertyValueClass"]]=None,
1606
+ required: Optional[bool]=None,
1607
+ condition: Union[None, "ActionWorkflowFieldConditionClass"]=None,
1608
+ ):
1609
+ super().__init__()
1610
+
1611
+ self.id = id
1612
+ self.name = name
1613
+ self.description = description
1614
+ self.valueType = valueType
1615
+ self.allowedEntityTypes = allowedEntityTypes
1616
+ self.allowedValues = allowedValues
1617
+ self.cardinality = cardinality
1618
+ if required is None:
1619
+ # default: False
1620
+ self.required = self.RECORD_SCHEMA.fields_dict["required"].default
1621
+ else:
1622
+ self.required = required
1623
+ self.condition = condition
1624
+
1625
+ def _restore_defaults(self) -> None:
1626
+ self.id = str()
1627
+ self.name = str()
1628
+ self.description = self.RECORD_SCHEMA.fields_dict["description"].default
1629
+ self.valueType = str()
1630
+ self.allowedEntityTypes = self.RECORD_SCHEMA.fields_dict["allowedEntityTypes"].default
1631
+ self.allowedValues = self.RECORD_SCHEMA.fields_dict["allowedValues"].default
1632
+ self.cardinality = PropertyCardinalityClass.SINGLE
1633
+ self.required = self.RECORD_SCHEMA.fields_dict["required"].default
1634
+ self.condition = self.RECORD_SCHEMA.fields_dict["condition"].default
1635
+
1636
+
1637
+ @property
1638
+ def id(self) -> str:
1639
+ """Workflow-local id for the field"""
1640
+ return self._inner_dict.get('id') # type: ignore
1641
+
1642
+ @id.setter
1643
+ def id(self, value: str) -> None:
1644
+ self._inner_dict['id'] = value
1645
+
1646
+
1647
+ @property
1648
+ def name(self) -> str:
1649
+ """The display name or label for the field, for rendering"""
1650
+ return self._inner_dict.get('name') # type: ignore
1651
+
1652
+ @name.setter
1653
+ def name(self, value: str) -> None:
1654
+ self._inner_dict['name'] = value
1655
+
1656
+
1657
+ @property
1658
+ def description(self) -> Union[None, str]:
1659
+ """The description for the field, for rendering"""
1660
+ return self._inner_dict.get('description') # type: ignore
1661
+
1662
+ @description.setter
1663
+ def description(self, value: Union[None, str]) -> None:
1664
+ self._inner_dict['description'] = value
1665
+
1666
+
1667
+ @property
1668
+ def valueType(self) -> str:
1669
+ """The urn of the value type for the values - reused from structured properties.
1670
+ Also, used for rendering"""
1671
+ return self._inner_dict.get('valueType') # type: ignore
1672
+
1673
+ @valueType.setter
1674
+ def valueType(self, value: str) -> None:
1675
+ self._inner_dict['valueType'] = value
1676
+
1677
+
1678
+ @property
1679
+ def allowedEntityTypes(self) -> Union[None, List[str]]:
1680
+ """The urns for allowed entity types."""
1681
+ return self._inner_dict.get('allowedEntityTypes') # type: ignore
1682
+
1683
+ @allowedEntityTypes.setter
1684
+ def allowedEntityTypes(self, value: Union[None, List[str]]) -> None:
1685
+ self._inner_dict['allowedEntityTypes'] = value
1686
+
1687
+
1688
+ @property
1689
+ def allowedValues(self) -> Union[None, List["PropertyValueClass"]]:
1690
+ """A list of allowed values that the property is allowed to take.
1691
+ If this is not specified, then the property can take any value of given type."""
1692
+ return self._inner_dict.get('allowedValues') # type: ignore
1693
+
1694
+ @allowedValues.setter
1695
+ def allowedValues(self, value: Union[None, List["PropertyValueClass"]]) -> None:
1696
+ self._inner_dict['allowedValues'] = value
1697
+
1698
+
1699
+ @property
1700
+ def cardinality(self) -> Union[str, "PropertyCardinalityClass"]:
1701
+ """Whether or not multiple values are allowed."""
1702
+ return self._inner_dict.get('cardinality') # type: ignore
1703
+
1704
+ @cardinality.setter
1705
+ def cardinality(self, value: Union[str, "PropertyCardinalityClass"]) -> None:
1706
+ self._inner_dict['cardinality'] = value
1707
+
1708
+
1709
+ @property
1710
+ def required(self) -> bool:
1711
+ """Whether the field is required or not."""
1712
+ return self._inner_dict.get('required') # type: ignore
1713
+
1714
+ @required.setter
1715
+ def required(self, value: bool) -> None:
1716
+ self._inner_dict['required'] = value
1717
+
1718
+
1719
+ @property
1720
+ def condition(self) -> Union[None, "ActionWorkflowFieldConditionClass"]:
1721
+ """A dynamic condition that determines whether the field should be shown or not."""
1722
+ return self._inner_dict.get('condition') # type: ignore
1723
+
1724
+ @condition.setter
1725
+ def condition(self, value: Union[None, "ActionWorkflowFieldConditionClass"]) -> None:
1726
+ self._inner_dict['condition'] = value
1727
+
1728
+
1729
+ class ActionWorkflowFieldConditionClass(DictWrapper):
1730
+ """A condition that determines whether a form field should be shown in the action workflow.
1731
+ This may evolve in the future to have additional condition types."""
1732
+
1733
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFieldCondition")
1734
+ def __init__(self,
1735
+ type: Union[str, "ActionWorkflowFieldConditionTypeClass"],
1736
+ singleFieldValueCondition: Union[None, "ActionWorkflowSingleFieldValueConditionClass"]=None,
1737
+ ):
1738
+ super().__init__()
1739
+
1740
+ self.type = type
1741
+ self.singleFieldValueCondition = singleFieldValueCondition
1742
+
1743
+ def _restore_defaults(self) -> None:
1744
+ self.type = ActionWorkflowFieldConditionTypeClass.SINGLE_FIELD_VALUE
1745
+ self.singleFieldValueCondition = self.RECORD_SCHEMA.fields_dict["singleFieldValueCondition"].default
1746
+
1747
+
1748
+ @property
1749
+ def type(self) -> Union[str, "ActionWorkflowFieldConditionTypeClass"]:
1750
+ """The type of field condition"""
1751
+ return self._inner_dict.get('type') # type: ignore
1752
+
1753
+ @type.setter
1754
+ def type(self, value: Union[str, "ActionWorkflowFieldConditionTypeClass"]) -> None:
1755
+ self._inner_dict['type'] = value
1756
+
1757
+
1758
+ @property
1759
+ def singleFieldValueCondition(self) -> Union[None, "ActionWorkflowSingleFieldValueConditionClass"]:
1760
+ """A field value condition. Present if type is FIELD_VALUE."""
1761
+ return self._inner_dict.get('singleFieldValueCondition') # type: ignore
1762
+
1763
+ @singleFieldValueCondition.setter
1764
+ def singleFieldValueCondition(self, value: Union[None, "ActionWorkflowSingleFieldValueConditionClass"]) -> None:
1765
+ self._inner_dict['singleFieldValueCondition'] = value
1766
+
1767
+
1768
+ class ActionWorkflowFieldConditionTypeClass(object):
1769
+ # No docs available.
1770
+
1771
+ SINGLE_FIELD_VALUE = "SINGLE_FIELD_VALUE"
1772
+ """The field should be shown if the value of a previously completed field matches the specified value."""
1773
+
1774
+
1775
+
1776
+ class ActionWorkflowFormClass(DictWrapper):
1777
+ # No docs available.
1778
+
1779
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowForm")
1780
+ def __init__(self,
1781
+ entrypoints: List["ActionWorkflowEntrypointClass"],
1782
+ fields: List["ActionWorkflowFieldClass"],
1783
+ entityTypes: Union[None, List[str]]=None,
1784
+ ):
1785
+ super().__init__()
1786
+
1787
+ self.entrypoints = entrypoints
1788
+ self.entityTypes = entityTypes
1789
+ self.fields = fields
1790
+
1791
+ def _restore_defaults(self) -> None:
1792
+ self.entrypoints = list()
1793
+ self.entityTypes = self.RECORD_SCHEMA.fields_dict["entityTypes"].default
1794
+ self.fields = list()
1795
+
1796
+
1797
+ @property
1798
+ def entrypoints(self) -> List["ActionWorkflowEntrypointClass"]:
1799
+ """Entrypoints for form submission."""
1800
+ return self._inner_dict.get('entrypoints') # type: ignore
1801
+
1802
+ @entrypoints.setter
1803
+ def entrypoints(self, value: List["ActionWorkflowEntrypointClass"]) -> None:
1804
+ self._inner_dict['entrypoints'] = value
1805
+
1806
+
1807
+ @property
1808
+ def entityTypes(self) -> Union[None, List[str]]:
1809
+ """The valid entity type URNs that can be associated with a Workflow Form.
1810
+ If provided, this will require that an entity of one of the provided types is specified when completing the form.
1811
+
1812
+ If no entity types are provided, the workflow form can be submitted without specifying an entity. In general, this should
1813
+ be populated for workflows of type ACCESS to enable users to request access to a specific entity!
1814
+
1815
+ If specified, the associated action requests for this workflow will contain an URN of the corresponding type inside of
1816
+ the `resource` field.
1817
+
1818
+ Note that associating multiple entities with a single Action Request is not yet supported."""
1819
+ return self._inner_dict.get('entityTypes') # type: ignore
1820
+
1821
+ @entityTypes.setter
1822
+ def entityTypes(self, value: Union[None, List[str]]) -> None:
1823
+ self._inner_dict['entityTypes'] = value
1824
+
1825
+
1826
+ @property
1827
+ def fields(self) -> List["ActionWorkflowFieldClass"]:
1828
+ """Fields comprising the workflow request. These are the inputs / arguments required to trigger the workflow."""
1829
+ return self._inner_dict.get('fields') # type: ignore
1830
+
1831
+ @fields.setter
1832
+ def fields(self, value: List["ActionWorkflowFieldClass"]) -> None:
1833
+ self._inner_dict['fields'] = value
1834
+
1835
+
1836
+ class ActionWorkflowFormRequestClass(DictWrapper):
1837
+ """A request for an access workflow form to be reviewed.
1838
+
1839
+ For an access workflow of trigger type FORM, this action request currently represents the "state"
1840
+ of the workflow instance.
1841
+
1842
+ In the future, we may add more features like due dates, escalations, etc.
1843
+ Ideally, for now we are keeping these out of here."""
1844
+
1845
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFormRequest")
1846
+ def __init__(self,
1847
+ workflow: str,
1848
+ category: Union[str, "ActionWorkflowCategoryClass"],
1849
+ fields: List["ActionWorkflowFormRequestFieldClass"],
1850
+ stepState: "ActionWorkflowRequestStepStateClass",
1851
+ customCategory: Union[None, str]=None,
1852
+ access: Union[None, "ActionWorkflowRequestAccessClass"]=None,
1853
+ ):
1854
+ super().__init__()
1855
+
1856
+ self.workflow = workflow
1857
+ self.category = category
1858
+ self.customCategory = customCategory
1859
+ self.fields = fields
1860
+ self.access = access
1861
+ self.stepState = stepState
1862
+
1863
+ def _restore_defaults(self) -> None:
1864
+ self.workflow = str()
1865
+ self.category = ActionWorkflowCategoryClass.ACCESS
1866
+ self.customCategory = self.RECORD_SCHEMA.fields_dict["customCategory"].default
1867
+ self.fields = list()
1868
+ self.access = self.RECORD_SCHEMA.fields_dict["access"].default
1869
+ self.stepState = ActionWorkflowRequestStepStateClass._construct_with_defaults()
1870
+
1871
+
1872
+ @property
1873
+ def workflow(self) -> str:
1874
+ """The urn of the associated access request workflow."""
1875
+ return self._inner_dict.get('workflow') # type: ignore
1876
+
1877
+ @workflow.setter
1878
+ def workflow(self, value: str) -> None:
1879
+ self._inner_dict['workflow'] = value
1880
+
1881
+
1882
+ @property
1883
+ def category(self) -> Union[str, "ActionWorkflowCategoryClass"]:
1884
+ """The category of the workflow.
1885
+ Primarily used for searching / filtering action requests."""
1886
+ return self._inner_dict.get('category') # type: ignore
1887
+
1888
+ @category.setter
1889
+ def category(self, value: Union[str, "ActionWorkflowCategoryClass"]) -> None:
1890
+ self._inner_dict['category'] = value
1891
+
1892
+
1893
+ @property
1894
+ def customCategory(self) -> Union[None, str]:
1895
+ """The custom category of the workflow, if category is custom.
1896
+ Primarily used for searching / filtering action requests."""
1897
+ return self._inner_dict.get('customCategory') # type: ignore
1898
+
1899
+ @customCategory.setter
1900
+ def customCategory(self, value: Union[None, str]) -> None:
1901
+ self._inner_dict['customCategory'] = value
1902
+
1903
+
1904
+ @property
1905
+ def fields(self) -> List["ActionWorkflowFormRequestFieldClass"]:
1906
+ """Custom fields provided by the user making the request if the action request is of type FORM_SUBMITTED
1907
+ Eventually, these may need to become search indexed. For now, not indexed."""
1908
+ return self._inner_dict.get('fields') # type: ignore
1909
+
1910
+ @fields.setter
1911
+ def fields(self, value: List["ActionWorkflowFormRequestFieldClass"]) -> None:
1912
+ self._inner_dict['fields'] = value
1913
+
1914
+
1915
+ @property
1916
+ def access(self) -> Union[None, "ActionWorkflowRequestAccessClass"]:
1917
+ """Details specific for access request workflow requests."""
1918
+ return self._inner_dict.get('access') # type: ignore
1919
+
1920
+ @access.setter
1921
+ def access(self, value: Union[None, "ActionWorkflowRequestAccessClass"]) -> None:
1922
+ self._inner_dict['access'] = value
1923
+
1924
+
1925
+ @property
1926
+ def stepState(self) -> "ActionWorkflowRequestStepStateClass":
1927
+ """State related to steps. This should correspond to a step of type ACTION_REQUEST_REVIEW in the workflow
1928
+ definition."""
1929
+ return self._inner_dict.get('stepState') # type: ignore
1930
+
1931
+ @stepState.setter
1932
+ def stepState(self, value: "ActionWorkflowRequestStepStateClass") -> None:
1933
+ self._inner_dict['stepState'] = value
1934
+
1935
+
1936
+ class ActionWorkflowFormRequestFieldClass(DictWrapper):
1937
+ """Simply capture the field id + the value."""
1938
+
1939
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFormRequestField")
1940
+ def __init__(self,
1941
+ id: str,
1942
+ values: List[Union[str, float]],
1943
+ ):
1944
+ super().__init__()
1945
+
1946
+ self.id = id
1947
+ self.values = values
1948
+
1949
+ def _restore_defaults(self) -> None:
1950
+ self.id = str()
1951
+ self.values = list()
1952
+
1953
+
1954
+ @property
1955
+ def id(self) -> str:
1956
+ """Workflow-local id for the field"""
1957
+ return self._inner_dict.get('id') # type: ignore
1958
+
1959
+ @id.setter
1960
+ def id(self, value: str) -> None:
1961
+ self._inner_dict['id'] = value
1962
+
1963
+
1964
+ @property
1965
+ def values(self) -> List[Union[str, float]]:
1966
+ """Value, reused model from structured properties. Empty if no response was provided."""
1967
+ return self._inner_dict.get('values') # type: ignore
1968
+
1969
+ @values.setter
1970
+ def values(self, value: List[Union[str, float]]) -> None:
1971
+ self._inner_dict['values'] = value
1972
+
1973
+
1974
+ class ActionWorkflowInfoClass(_Aspect):
1975
+ """The ActionWorkflowInfo record captures the metadata and configuration of a workflow.
1976
+ TODO: In the future, we may store the serialized camunda / flowable workflow instance ID inside.
1977
+ We'll likely also need to add the "steps" into here since we'll need that to inform state transitions."""
1978
+
1979
+
1980
+ ASPECT_NAME = 'actionWorkflowInfo'
1981
+ ASPECT_INFO = {}
1982
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowInfo")
1983
+
1984
+ def __init__(self,
1985
+ name: str,
1986
+ category: Union[str, "ActionWorkflowCategoryClass"],
1987
+ trigger: "ActionWorkflowTriggerClass",
1988
+ steps: List["ActionWorkflowStepClass"],
1989
+ created: "AuditStampClass",
1990
+ lastModified: "AuditStampClass",
1991
+ customCategory: Union[None, str]=None,
1992
+ description: Union[None, str]=None,
1993
+ ):
1994
+ super().__init__()
1995
+
1996
+ self.name = name
1997
+ self.category = category
1998
+ self.customCategory = customCategory
1999
+ self.description = description
2000
+ self.trigger = trigger
2001
+ self.steps = steps
2002
+ self.created = created
2003
+ self.lastModified = lastModified
2004
+
2005
+ def _restore_defaults(self) -> None:
2006
+ self.name = str()
2007
+ self.category = ActionWorkflowCategoryClass.ACCESS
2008
+ self.customCategory = self.RECORD_SCHEMA.fields_dict["customCategory"].default
2009
+ self.description = self.RECORD_SCHEMA.fields_dict["description"].default
2010
+ self.trigger = ActionWorkflowTriggerClass._construct_with_defaults()
2011
+ self.steps = list()
2012
+ self.created = AuditStampClass._construct_with_defaults()
2013
+ self.lastModified = AuditStampClass._construct_with_defaults()
2014
+
2015
+
2016
+ @property
2017
+ def name(self) -> str:
2018
+ """Display name of the workflow"""
2019
+ return self._inner_dict.get('name') # type: ignore
2020
+
2021
+ @name.setter
2022
+ def name(self, value: str) -> None:
2023
+ self._inner_dict['name'] = value
2024
+
2025
+
2026
+ @property
2027
+ def category(self) -> Union[str, "ActionWorkflowCategoryClass"]:
2028
+ """Top-level category of the workflow, e.g. ACCESS"""
2029
+ return self._inner_dict.get('category') # type: ignore
2030
+
2031
+ @category.setter
2032
+ def category(self, value: Union[str, "ActionWorkflowCategoryClass"]) -> None:
2033
+ self._inner_dict['category'] = value
2034
+
2035
+
2036
+ @property
2037
+ def customCategory(self) -> Union[None, str]:
2038
+ """Custom category for the workflow, if applicable.
2039
+
2040
+ This is used to group workflows that are not part of the standard types.
2041
+ Should be provided when the type is CUSTOM."""
2042
+ return self._inner_dict.get('customCategory') # type: ignore
2043
+
2044
+ @customCategory.setter
2045
+ def customCategory(self, value: Union[None, str]) -> None:
2046
+ self._inner_dict['customCategory'] = value
2047
+
2048
+
2049
+ @property
2050
+ def description(self) -> Union[None, str]:
2051
+ """Description of the workflow.
2052
+ If this is based on a Form trigger, this will be displayed to users when completing the form. """
2053
+ return self._inner_dict.get('description') # type: ignore
2054
+
2055
+ @description.setter
2056
+ def description(self, value: Union[None, str]) -> None:
2057
+ self._inner_dict['description'] = value
2058
+
2059
+
2060
+ @property
2061
+ def trigger(self) -> "ActionWorkflowTriggerClass":
2062
+ """The action or event that triggers the workflow. This MUST be stored here, because there is no other
2063
+ place to capture dynamic form state like this. """
2064
+ return self._inner_dict.get('trigger') # type: ignore
2065
+
2066
+ @trigger.setter
2067
+ def trigger(self, value: "ActionWorkflowTriggerClass") -> None:
2068
+ self._inner_dict['trigger'] = value
2069
+
2070
+
2071
+ @property
2072
+ def steps(self) -> List["ActionWorkflowStepClass"]:
2073
+ """Definition of the steps / tasks / nodes comprising the workflow definition. This is the part we can aim
2074
+ to be able to convert / transform into serialized XML BPMN Format. For now, we model it strongly here.
2075
+ If we can successfully use BPMN for step state, we can deprecate this field in place of the XML serialization.
2076
+
2077
+ This is the part we'll try to build a transpiler to BPMN for execution for. Ultimately, we do need
2078
+ a representation we can easily convert into the frontend framework for display. This represents the set of
2079
+ well known workflow step types - across tasks, conditionals, notifications, etc - that are officially supported today.
2080
+
2081
+ If necessary, we'll extend this to represent conditional branching nodes as a step / node in the Workflow, e.g. Conditional Step, Notification Step, Review Step"""
2082
+ return self._inner_dict.get('steps') # type: ignore
2083
+
2084
+ @steps.setter
2085
+ def steps(self, value: List["ActionWorkflowStepClass"]) -> None:
2086
+ self._inner_dict['steps'] = value
2087
+
2088
+
2089
+ @property
2090
+ def created(self) -> "AuditStampClass":
2091
+ """Audit stamp capturing the time and actor who created the workflow."""
2092
+ return self._inner_dict.get('created') # type: ignore
2093
+
2094
+ @created.setter
2095
+ def created(self, value: "AuditStampClass") -> None:
2096
+ self._inner_dict['created'] = value
2097
+
2098
+
2099
+ @property
2100
+ def lastModified(self) -> "AuditStampClass":
2101
+ """Audit stamp capturing the time and actor who last modified the workflow."""
2102
+ return self._inner_dict.get('lastModified') # type: ignore
2103
+
2104
+ @lastModified.setter
2105
+ def lastModified(self, value: "AuditStampClass") -> None:
2106
+ self._inner_dict['lastModified'] = value
2107
+
2108
+
2109
+ class ActionWorkflowRequestAccessClass(DictWrapper):
2110
+ # No docs available.
2111
+
2112
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowRequestAccess")
2113
+ def __init__(self,
2114
+ expiresAt: Union[None, int]=None,
2115
+ ):
2116
+ super().__init__()
2117
+
2118
+ self.expiresAt = expiresAt
2119
+
2120
+ def _restore_defaults(self) -> None:
2121
+ self.expiresAt = self.RECORD_SCHEMA.fields_dict["expiresAt"].default
2122
+
2123
+
2124
+ @property
2125
+ def expiresAt(self) -> Union[None, int]:
2126
+ """Expiration time for the action request (optional, if part of the template)."""
2127
+ return self._inner_dict.get('expiresAt') # type: ignore
2128
+
2129
+ @expiresAt.setter
2130
+ def expiresAt(self, value: Union[None, int]) -> None:
2131
+ self._inner_dict['expiresAt'] = value
2132
+
2133
+
2134
+ class ActionWorkflowRequestStepStateClass(DictWrapper):
2135
+ # No docs available.
2136
+
2137
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowRequestStepState")
2138
+ def __init__(self,
2139
+ stepId: str,
2140
+ ):
2141
+ super().__init__()
2142
+
2143
+ self.stepId = stepId
2144
+
2145
+ def _restore_defaults(self) -> None:
2146
+ self.stepId = str()
2147
+
2148
+
2149
+ @property
2150
+ def stepId(self) -> str:
2151
+ """The id of the current step in the workflow, which should be of type ACTION_REQUEST_REVIEW."""
2152
+ return self._inner_dict.get('stepId') # type: ignore
2153
+
2154
+ @stepId.setter
2155
+ def stepId(self, value: str) -> None:
2156
+ self._inner_dict['stepId'] = value
2157
+
2158
+
2159
+ class ActionWorkflowSingleFieldValueConditionClass(DictWrapper):
2160
+ """A specific type of field condition that checks whether a field should be shown based on the value of a previously completed field."""
2161
+
2162
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowSingleFieldValueCondition")
2163
+ def __init__(self,
2164
+ field: str,
2165
+ values: Optional[List[str]]=None,
2166
+ condition: Optional[Union[str, "ConditionClass"]]=None,
2167
+ negated: Optional[bool]=None,
2168
+ ):
2169
+ super().__init__()
2170
+
2171
+ self.field = field
2172
+ if values is None:
2173
+ # default: []
2174
+ self.values = list()
2175
+ else:
2176
+ self.values = values
2177
+ if condition is None:
2178
+ # default: 'EQUAL'
2179
+ self.condition = self.RECORD_SCHEMA.fields_dict["condition"].default
2180
+ else:
2181
+ self.condition = condition
2182
+ if negated is None:
2183
+ # default: False
2184
+ self.negated = self.RECORD_SCHEMA.fields_dict["negated"].default
2185
+ else:
2186
+ self.negated = negated
2187
+
2188
+ def _restore_defaults(self) -> None:
2189
+ self.field = str()
2190
+ self.values = list()
2191
+ self.condition = self.RECORD_SCHEMA.fields_dict["condition"].default
2192
+ self.negated = self.RECORD_SCHEMA.fields_dict["negated"].default
2193
+
2194
+
2195
+ @property
2196
+ def field(self) -> str:
2197
+ """The id / name of the field that the criterion refers to"""
2198
+ return self._inner_dict.get('field') # type: ignore
2199
+
2200
+ @field.setter
2201
+ def field(self, value: str) -> None:
2202
+ self._inner_dict['field'] = value
2203
+
2204
+
2205
+ @property
2206
+ def values(self) -> List[str]:
2207
+ """Values. one of which the intended field should match
2208
+ Note, if values is set, the above "value" field will be ignored"""
2209
+ return self._inner_dict.get('values') # type: ignore
2210
+
2211
+ @values.setter
2212
+ def values(self, value: List[str]) -> None:
2213
+ self._inner_dict['values'] = value
2214
+
2215
+
2216
+ @property
2217
+ def condition(self) -> Union[str, "ConditionClass"]:
2218
+ """The condition for the criterion, e.g. EQUAL, START_WITH"""
2219
+ return self._inner_dict.get('condition') # type: ignore
2220
+
2221
+ @condition.setter
2222
+ def condition(self, value: Union[str, "ConditionClass"]) -> None:
2223
+ self._inner_dict['condition'] = value
2224
+
2225
+
2226
+ @property
2227
+ def negated(self) -> bool:
2228
+ """Whether the condition should be negated"""
2229
+ return self._inner_dict.get('negated') # type: ignore
2230
+
2231
+ @negated.setter
2232
+ def negated(self, value: bool) -> None:
2233
+ self._inner_dict['negated'] = value
2234
+
2235
+
2236
+ class ActionWorkflowStepClass(DictWrapper):
2237
+ """Defines a single review step in a workflow.
2238
+
2239
+ Today, steps are simple. They execute in sequence after the trigger event.
2240
+
2241
+ In the future, we may extend steps to include "depends on steps" to form a DAG structure across
2242
+ steps. For now, steps execute in linear sequence after the trigger event -- however the expectation
2243
+ is that they COULD run in parallel after the trigger event without a problem in the future.
2244
+
2245
+ If necessary, we'll extend this to represent conditional branching nodes as a step / node in the Workflow, e.g. Conditional Step, Notification Step, Review Step
2246
+
2247
+ Today, step state is reflected via a single entity representing the workflow instance: the ActionRequest entity.
2248
+ In the future we'll explore modeling individual step states separately if required."""
2249
+
2250
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStep")
2251
+ def __init__(self,
2252
+ id: str,
2253
+ type: Union[str, "ActionWorkflowStepTypeClass"],
2254
+ description: Union[None, str]=None,
2255
+ actors: Union[None, "ActionWorkflowStepActorsClass"]=None,
2256
+ ):
2257
+ super().__init__()
2258
+
2259
+ self.id = id
2260
+ self.type = type
2261
+ self.description = description
2262
+ self.actors = actors
2263
+
2264
+ def _restore_defaults(self) -> None:
2265
+ self.id = str()
2266
+ self.type = ActionWorkflowStepTypeClass.APPROVAL
2267
+ self.description = self.RECORD_SCHEMA.fields_dict["description"].default
2268
+ self.actors = self.RECORD_SCHEMA.fields_dict["actors"].default
2269
+
2270
+
2271
+ @property
2272
+ def id(self) -> str:
2273
+ """A unique identifier for this step within the workflow.
2274
+ This ID must be unique within the workflow and is used to match values during workflow execution."""
2275
+ return self._inner_dict.get('id') # type: ignore
2276
+
2277
+ @id.setter
2278
+ def id(self, value: str) -> None:
2279
+ self._inner_dict['id'] = value
2280
+
2281
+
2282
+ @property
2283
+ def type(self) -> Union[str, "ActionWorkflowStepTypeClass"]:
2284
+ """A type of step / task / node in the Action Workflow. """
2285
+ return self._inner_dict.get('type') # type: ignore
2286
+
2287
+ @type.setter
2288
+ def type(self, value: Union[str, "ActionWorkflowStepTypeClass"]) -> None:
2289
+ self._inner_dict['type'] = value
2290
+
2291
+
2292
+ @property
2293
+ def description(self) -> Union[None, str]:
2294
+ """Optional description shown alongside the step to explain its purpose."""
2295
+ return self._inner_dict.get('description') # type: ignore
2296
+
2297
+ @description.setter
2298
+ def description(self, value: Union[None, str]) -> None:
2299
+ self._inner_dict['description'] = value
2300
+
2301
+
2302
+ @property
2303
+ def actors(self) -> Union[None, "ActionWorkflowStepActorsClass"]:
2304
+ """A definition of the actors required to execute the step, if there are any.
2305
+
2306
+ For steps of type REQUEST_REVIEW, this field MUST be provided! """
2307
+ return self._inner_dict.get('actors') # type: ignore
2308
+
2309
+ @actors.setter
2310
+ def actors(self, value: Union[None, "ActionWorkflowStepActorsClass"]) -> None:
2311
+ self._inner_dict['actors'] = value
2312
+
2313
+
2314
+ class ActionWorkflowStepActorsClass(DictWrapper):
2315
+ """A definition of the actors required to review."""
2316
+
2317
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepActors")
2318
+ def __init__(self,
2319
+ users: List[str],
2320
+ groups: List[str],
2321
+ roles: List[str],
2322
+ dynamicAssignment: Union[None, "ActionWorkflowStepDynamicAssignmentClass"]=None,
2323
+ ):
2324
+ super().__init__()
2325
+
2326
+ self.users = users
2327
+ self.groups = groups
2328
+ self.roles = roles
2329
+ self.dynamicAssignment = dynamicAssignment
2330
+
2331
+ def _restore_defaults(self) -> None:
2332
+ self.users = list()
2333
+ self.groups = list()
2334
+ self.roles = list()
2335
+ self.dynamicAssignment = self.RECORD_SCHEMA.fields_dict["dynamicAssignment"].default
2336
+
2337
+
2338
+ @property
2339
+ def users(self) -> List[str]:
2340
+ """Users statically assigned to perform the review step."""
2341
+ return self._inner_dict.get('users') # type: ignore
2342
+
2343
+ @users.setter
2344
+ def users(self, value: List[str]) -> None:
2345
+ self._inner_dict['users'] = value
2346
+
2347
+
2348
+ @property
2349
+ def groups(self) -> List[str]:
2350
+ """Groups statically assigned to perform the review step."""
2351
+ return self._inner_dict.get('groups') # type: ignore
2352
+
2353
+ @groups.setter
2354
+ def groups(self, value: List[str]) -> None:
2355
+ self._inner_dict['groups'] = value
2356
+
2357
+
2358
+ @property
2359
+ def roles(self) -> List[str]:
2360
+ """Roles statically assigned to perform the review step."""
2361
+ return self._inner_dict.get('roles') # type: ignore
2362
+
2363
+ @roles.setter
2364
+ def roles(self, value: List[str]) -> None:
2365
+ self._inner_dict['roles'] = value
2366
+
2367
+
2368
+ @property
2369
+ def dynamicAssignment(self) -> Union[None, "ActionWorkflowStepDynamicAssignmentClass"]:
2370
+ """Dynamic assignment type for the review step."""
2371
+ return self._inner_dict.get('dynamicAssignment') # type: ignore
2372
+
2373
+ @dynamicAssignment.setter
2374
+ def dynamicAssignment(self, value: Union[None, "ActionWorkflowStepDynamicAssignmentClass"]) -> None:
2375
+ self._inner_dict['dynamicAssignment'] = value
2376
+
2377
+
2378
+ class ActionWorkflowStepDynamicAssignmentClass(DictWrapper):
2379
+ # No docs available.
2380
+
2381
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepDynamicAssignment")
2382
+ def __init__(self,
2383
+ type: Union[str, "ActionWorkflowStepDynamicAssignmentTypeClass"],
2384
+ ownershipTypeUrns: Union[None, List[str]]=None,
2385
+ ):
2386
+ super().__init__()
2387
+
2388
+ self.type = type
2389
+ self.ownershipTypeUrns = ownershipTypeUrns
2390
+
2391
+ def _restore_defaults(self) -> None:
2392
+ self.type = ActionWorkflowStepDynamicAssignmentTypeClass.ENTITY_OWNERS
2393
+ self.ownershipTypeUrns = self.RECORD_SCHEMA.fields_dict["ownershipTypeUrns"].default
2394
+
2395
+
2396
+ @property
2397
+ def type(self) -> Union[str, "ActionWorkflowStepDynamicAssignmentTypeClass"]:
2398
+ """A standardized policy for resolving actors dynamically for an access request."""
2399
+ return self._inner_dict.get('type') # type: ignore
2400
+
2401
+ @type.setter
2402
+ def type(self, value: Union[str, "ActionWorkflowStepDynamicAssignmentTypeClass"]) -> None:
2403
+ self._inner_dict['type'] = value
2404
+
2405
+
2406
+ @property
2407
+ def ownershipTypeUrns(self) -> Union[None, List[str]]:
2408
+ """Optional: A well defined set of ownership type urns to including in routing."""
2409
+ return self._inner_dict.get('ownershipTypeUrns') # type: ignore
2410
+
2411
+ @ownershipTypeUrns.setter
2412
+ def ownershipTypeUrns(self, value: Union[None, List[str]]) -> None:
2413
+ self._inner_dict['ownershipTypeUrns'] = value
2414
+
2415
+
2416
+ class ActionWorkflowStepDynamicAssignmentTypeClass(object):
2417
+ # No docs available.
2418
+
2419
+ ENTITY_OWNERS = "ENTITY_OWNERS"
2420
+ """Assign the entity owners."""
2421
+
2422
+ ENTITY_DOMAIN_OWNERS = "ENTITY_DOMAIN_OWNERS"
2423
+ """Assign the entity domain owners."""
2424
+
2425
+ ENTITY_DATA_PRODUCT_OWNERS = "ENTITY_DATA_PRODUCT_OWNERS"
2426
+ """Assign the entity data product owners."""
2427
+
2428
+
2429
+
2430
+ class ActionWorkflowStepTypeClass(object):
2431
+ # No docs available.
2432
+
2433
+ APPROVAL = "APPROVAL"
2434
+ """The only step type currently supported - a human review step.
2435
+ This step type requires that an assigned user reviews an action request associated with this workflow.
2436
+ reviews the request, approving or denying it (currently the actions supported, may extend later). """
2437
+
2438
+
2439
+
2440
+ class ActionWorkflowTriggerClass(DictWrapper):
2441
+ """Defines the conditions on which the action workflow is triggered.
2442
+
2443
+ Currently we have only one trigger type, but we expect this to extend e.g. in the case that change events, proposals,
2444
+ or other actions can trigger workflows.
2445
+
2446
+ Currently, the workflow must have exactly 1 trigger condition. We don't expect this to change. """
2447
+
2448
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowTrigger")
2449
+ def __init__(self,
2450
+ type: Union[str, "ActionWorkflowTriggerTypeClass"],
2451
+ form: Union[None, "ActionWorkflowFormClass"]=None,
2452
+ ):
2453
+ super().__init__()
2454
+
2455
+ self.type = type
2456
+ self.form = form
2457
+
2458
+ def _restore_defaults(self) -> None:
2459
+ self.type = ActionWorkflowTriggerTypeClass.FORM_SUBMITTED
2460
+ self.form = self.RECORD_SCHEMA.fields_dict["form"].default
2461
+
2462
+
2463
+ @property
2464
+ def type(self) -> Union[str, "ActionWorkflowTriggerTypeClass"]:
2465
+ """A type of step / task / node in the Action Workflow. """
2466
+ return self._inner_dict.get('type') # type: ignore
2467
+
2468
+ @type.setter
2469
+ def type(self, value: Union[str, "ActionWorkflowTriggerTypeClass"]) -> None:
2470
+ self._inner_dict['type'] = value
2471
+
2472
+
2473
+ @property
2474
+ def form(self) -> Union[None, "ActionWorkflowFormClass"]:
2475
+ """The form definition that will trigger the action workflow when submitted. """
2476
+ return self._inner_dict.get('form') # type: ignore
2477
+
2478
+ @form.setter
2479
+ def form(self, value: Union[None, "ActionWorkflowFormClass"]) -> None:
2480
+ self._inner_dict['form'] = value
2481
+
2482
+
2483
+ class ActionWorkflowTriggerTypeClass(object):
2484
+ # No docs available.
2485
+
2486
+ FORM_SUBMITTED = "FORM_SUBMITTED"
2487
+ """The only trigger type currently supported - a workflow request form is submitted successfully.
2488
+ This enables admins to create forms and display them on various entrypoints.
2489
+ The form is also captured in the field "form" below. """
2490
+
2491
+
2492
+
1501
2493
  class AiInferenceMetadataClass(_Aspect):
1502
2494
  """AI Inference Metadata of various types."""
1503
2495
 
@@ -2288,6 +3280,7 @@ class AssertionAnalyticsRunEventClass(_Aspect):
2288
3280
  asserteeGlossaryTerms: Union[None, List[str]]=None,
2289
3281
  asserteeOwners: Union[None, List[str]]=None,
2290
3282
  asserteeDataPlatform: Union[None, str]=None,
3283
+ asserteeContainer: Union[None, str]=None,
2291
3284
  asserteeDataPlatformInstance: Union[None, str]=None,
2292
3285
  asserteeSchemaFieldGlossaryTerms: Union[None, List[str]]=None,
2293
3286
  asserteeSchemaFieldTags: Union[None, List[str]]=None,
@@ -2306,6 +3299,7 @@ class AssertionAnalyticsRunEventClass(_Aspect):
2306
3299
  self.asserteeGlossaryTerms = asserteeGlossaryTerms
2307
3300
  self.asserteeOwners = asserteeOwners
2308
3301
  self.asserteeDataPlatform = asserteeDataPlatform
3302
+ self.asserteeContainer = asserteeContainer
2309
3303
  self.asserteeDataPlatformInstance = asserteeDataPlatformInstance
2310
3304
  self.asserteeSchemaFieldGlossaryTerms = asserteeSchemaFieldGlossaryTerms
2311
3305
  self.asserteeSchemaFieldTags = asserteeSchemaFieldTags
@@ -2332,6 +3326,7 @@ class AssertionAnalyticsRunEventClass(_Aspect):
2332
3326
  self.asserteeGlossaryTerms = self.RECORD_SCHEMA.fields_dict["asserteeGlossaryTerms"].default
2333
3327
  self.asserteeOwners = self.RECORD_SCHEMA.fields_dict["asserteeOwners"].default
2334
3328
  self.asserteeDataPlatform = self.RECORD_SCHEMA.fields_dict["asserteeDataPlatform"].default
3329
+ self.asserteeContainer = self.RECORD_SCHEMA.fields_dict["asserteeContainer"].default
2335
3330
  self.asserteeDataPlatformInstance = self.RECORD_SCHEMA.fields_dict["asserteeDataPlatformInstance"].default
2336
3331
  self.asserteeSchemaFieldGlossaryTerms = self.RECORD_SCHEMA.fields_dict["asserteeSchemaFieldGlossaryTerms"].default
2337
3332
  self.asserteeSchemaFieldTags = self.RECORD_SCHEMA.fields_dict["asserteeSchemaFieldTags"].default
@@ -2427,6 +3422,16 @@ class AssertionAnalyticsRunEventClass(_Aspect):
2427
3422
  self._inner_dict['asserteeDataPlatform'] = value
2428
3423
 
2429
3424
 
3425
+ @property
3426
+ def asserteeContainer(self) -> Union[None, str]:
3427
+ """The Container attached to the entity's parent Asset"""
3428
+ return self._inner_dict.get('asserteeContainer') # type: ignore
3429
+
3430
+ @asserteeContainer.setter
3431
+ def asserteeContainer(self, value: Union[None, str]) -> None:
3432
+ self._inner_dict['asserteeContainer'] = value
3433
+
3434
+
2430
3435
  @property
2431
3436
  def asserteeDataPlatformInstance(self) -> Union[None, str]:
2432
3437
  """Instance of the parent's data platform (e.g. db instance)"""
@@ -2986,6 +3991,7 @@ class AssertionInfoClass(_Aspect):
2986
3991
  source: Union[None, "AssertionSourceClass"]=None,
2987
3992
  lastUpdated: Union[None, "AuditStampClass"]=None,
2988
3993
  description: Union[None, str]=None,
3994
+ note: Union[None, "AssertionNoteClass"]=None,
2989
3995
  ):
2990
3996
  super().__init__()
2991
3997
 
@@ -3006,6 +4012,7 @@ class AssertionInfoClass(_Aspect):
3006
4012
  self.source = source
3007
4013
  self.lastUpdated = lastUpdated
3008
4014
  self.description = description
4015
+ self.note = note
3009
4016
 
3010
4017
  def _restore_defaults(self) -> None:
3011
4018
  self.customProperties = dict()
@@ -3021,6 +4028,7 @@ class AssertionInfoClass(_Aspect):
3021
4028
  self.source = self.RECORD_SCHEMA.fields_dict["source"].default
3022
4029
  self.lastUpdated = self.RECORD_SCHEMA.fields_dict["lastUpdated"].default
3023
4030
  self.description = self.RECORD_SCHEMA.fields_dict["description"].default
4031
+ self.note = self.RECORD_SCHEMA.fields_dict["note"].default
3024
4032
 
3025
4033
 
3026
4034
  @property
@@ -3157,6 +4165,17 @@ class AssertionInfoClass(_Aspect):
3157
4165
  self._inner_dict['description'] = value
3158
4166
 
3159
4167
 
4168
+ @property
4169
+ def note(self) -> Union[None, "AssertionNoteClass"]:
4170
+ """An optional note to give technical owners more context about the assertion, and how to troubleshoot it.
4171
+ The UI will render this in markdown format."""
4172
+ return self._inner_dict.get('note') # type: ignore
4173
+
4174
+ @note.setter
4175
+ def note(self, value: Union[None, "AssertionNoteClass"]) -> None:
4176
+ self._inner_dict['note'] = value
4177
+
4178
+
3160
4179
  class AssertionMetricClass(DictWrapper):
3161
4180
  # No docs available.
3162
4181
 
@@ -3220,6 +4239,44 @@ class AssertionMonitorSensitivityClass(DictWrapper):
3220
4239
  self._inner_dict['level'] = value
3221
4240
 
3222
4241
 
4242
+ class AssertionNoteClass(DictWrapper):
4243
+ # No docs available.
4244
+
4245
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.assertion.AssertionNote")
4246
+ def __init__(self,
4247
+ content: str,
4248
+ lastModified: "AuditStampClass",
4249
+ ):
4250
+ super().__init__()
4251
+
4252
+ self.content = content
4253
+ self.lastModified = lastModified
4254
+
4255
+ def _restore_defaults(self) -> None:
4256
+ self.content = str()
4257
+ self.lastModified = AuditStampClass._construct_with_defaults()
4258
+
4259
+
4260
+ @property
4261
+ def content(self) -> str:
4262
+ """The note to give technical owners more context about the assertion, and how to troubleshoot it."""
4263
+ return self._inner_dict.get('content') # type: ignore
4264
+
4265
+ @content.setter
4266
+ def content(self, value: str) -> None:
4267
+ self._inner_dict['content'] = value
4268
+
4269
+
4270
+ @property
4271
+ def lastModified(self) -> "AuditStampClass":
4272
+ """The time at which the note was last modified."""
4273
+ return self._inner_dict.get('lastModified') # type: ignore
4274
+
4275
+ @lastModified.setter
4276
+ def lastModified(self, value: "AuditStampClass") -> None:
4277
+ self._inner_dict['lastModified'] = value
4278
+
4279
+
3223
4280
  class AssertionResultClass(DictWrapper):
3224
4281
  """The result of running an assertion"""
3225
4282
 
@@ -17581,6 +18638,12 @@ class NotificationTemplateTypeClass(object):
17581
18638
 
17582
18639
  BROADCAST_COMPLIANCE_FORM_PUBLISH = "BROADCAST_COMPLIANCE_FORM_PUBLISH"
17583
18640
 
18641
+ BROADCAST_NEW_ACTION_WORKFLOW_FORM_REQUEST = "BROADCAST_NEW_ACTION_WORKFLOW_FORM_REQUEST"
18642
+ """Broadcast that a new action workflow form request has been created or needs review."""
18643
+
18644
+ BROADCAST_ACTION_WORKFLOW_FORM_REQUEST_STATUS_CHANGE = "BROADCAST_ACTION_WORKFLOW_FORM_REQUEST_STATUS_CHANGE"
18645
+ """Broadcast that an action workflow form request has been completed (approved or denied)."""
18646
+
17584
18647
  INVALID_TEMPLATE = "INVALID_TEMPLATE"
17585
18648
 
17586
18649
 
@@ -19945,6 +21008,44 @@ class CorpUserEditableInfoClass(_Aspect):
19945
21008
  self._inner_dict['informationSources'] = value
19946
21009
 
19947
21010
 
21011
+ class CorpUserHomePageSettingsClass(DictWrapper):
21012
+ """Settings related to the home page for a user"""
21013
+
21014
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.identity.CorpUserHomePageSettings")
21015
+ def __init__(self,
21016
+ pageTemplate: Union[None, str]=None,
21017
+ dismissedAnnouncements: Union[None, List[str]]=None,
21018
+ ):
21019
+ super().__init__()
21020
+
21021
+ self.pageTemplate = pageTemplate
21022
+ self.dismissedAnnouncements = dismissedAnnouncements
21023
+
21024
+ def _restore_defaults(self) -> None:
21025
+ self.pageTemplate = self.RECORD_SCHEMA.fields_dict["pageTemplate"].default
21026
+ self.dismissedAnnouncements = self.RECORD_SCHEMA.fields_dict["dismissedAnnouncements"].default
21027
+
21028
+
21029
+ @property
21030
+ def pageTemplate(self) -> Union[None, str]:
21031
+ """The page template that will be rendered in the UI by default for this user"""
21032
+ return self._inner_dict.get('pageTemplate') # type: ignore
21033
+
21034
+ @pageTemplate.setter
21035
+ def pageTemplate(self, value: Union[None, str]) -> None:
21036
+ self._inner_dict['pageTemplate'] = value
21037
+
21038
+
21039
+ @property
21040
+ def dismissedAnnouncements(self) -> Union[None, List[str]]:
21041
+ """The list of announcement urns that have been dismissed by the user"""
21042
+ return self._inner_dict.get('dismissedAnnouncements') # type: ignore
21043
+
21044
+ @dismissedAnnouncements.setter
21045
+ def dismissedAnnouncements(self, value: Union[None, List[str]]) -> None:
21046
+ self._inner_dict['dismissedAnnouncements'] = value
21047
+
21048
+
19948
21049
  class CorpUserInfoClass(_Aspect):
19949
21050
  """Linkedin corp user information"""
19950
21051
 
@@ -20150,17 +21251,20 @@ class CorpUserSettingsClass(_Aspect):
20150
21251
  appearance: "CorpUserAppearanceSettingsClass",
20151
21252
  views: Union[None, "CorpUserViewsSettingsClass"]=None,
20152
21253
  notificationSettings: Union[None, "NotificationSettingsClass"]=None,
21254
+ homePage: Union[None, "CorpUserHomePageSettingsClass"]=None,
20153
21255
  ):
20154
21256
  super().__init__()
20155
21257
 
20156
21258
  self.appearance = appearance
20157
21259
  self.views = views
20158
21260
  self.notificationSettings = notificationSettings
21261
+ self.homePage = homePage
20159
21262
 
20160
21263
  def _restore_defaults(self) -> None:
20161
21264
  self.appearance = CorpUserAppearanceSettingsClass._construct_with_defaults()
20162
21265
  self.views = self.RECORD_SCHEMA.fields_dict["views"].default
20163
21266
  self.notificationSettings = self.RECORD_SCHEMA.fields_dict["notificationSettings"].default
21267
+ self.homePage = self.RECORD_SCHEMA.fields_dict["homePage"].default
20164
21268
 
20165
21269
 
20166
21270
  @property
@@ -20193,6 +21297,16 @@ class CorpUserSettingsClass(_Aspect):
20193
21297
  self._inner_dict['notificationSettings'] = value
20194
21298
 
20195
21299
 
21300
+ @property
21301
+ def homePage(self) -> Union[None, "CorpUserHomePageSettingsClass"]:
21302
+ """Settings related to the home page for a user"""
21303
+ return self._inner_dict.get('homePage') # type: ignore
21304
+
21305
+ @homePage.setter
21306
+ def homePage(self, value: Union[None, "CorpUserHomePageSettingsClass"]) -> None:
21307
+ self._inner_dict['homePage'] = value
21308
+
21309
+
20196
21310
  class CorpUserStatusClass(_Aspect):
20197
21311
  """The status of the user, e.g. provisioned, active, suspended, etc."""
20198
21312
 
@@ -21939,6 +23053,35 @@ class LinkPreviewTypeClass(object):
21939
23053
 
21940
23054
 
21941
23055
 
23056
+ class LogicalParentClass(_Aspect):
23057
+ # No docs available.
23058
+
23059
+
23060
+ ASPECT_NAME = 'logicalParent'
23061
+ ASPECT_INFO = {}
23062
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.logical.LogicalParent")
23063
+
23064
+ def __init__(self,
23065
+ parent: "EdgeClass",
23066
+ ):
23067
+ super().__init__()
23068
+
23069
+ self.parent = parent
23070
+
23071
+ def _restore_defaults(self) -> None:
23072
+ self.parent = EdgeClass._construct_with_defaults()
23073
+
23074
+
23075
+ @property
23076
+ def parent(self) -> "EdgeClass":
23077
+ # No docs available.
23078
+ return self._inner_dict.get('parent') # type: ignore
23079
+
23080
+ @parent.setter
23081
+ def parent(self, value: "EdgeClass") -> None:
23082
+ self._inner_dict['parent'] = value
23083
+
23084
+
21942
23085
  class ActionRequestKeyClass(_Aspect):
21943
23086
  """Key for an ActionRequest"""
21944
23087
 
@@ -21968,6 +23111,35 @@ class ActionRequestKeyClass(_Aspect):
21968
23111
  self._inner_dict['id'] = value
21969
23112
 
21970
23113
 
23114
+ class ActionWorkflowKeyClass(_Aspect):
23115
+ """Key for an ActionRequestWorkflow"""
23116
+
23117
+
23118
+ ASPECT_NAME = 'actionWorkflowKey'
23119
+ ASPECT_INFO = {'keyForEntity': 'actionWorkflow', 'entityCategory': 'internal', 'entityAspects': ['actionWorkflowInfo']}
23120
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.ActionWorkflowKey")
23121
+
23122
+ def __init__(self,
23123
+ id: str,
23124
+ ):
23125
+ super().__init__()
23126
+
23127
+ self.id = id
23128
+
23129
+ def _restore_defaults(self) -> None:
23130
+ self.id = str()
23131
+
23132
+
23133
+ @property
23134
+ def id(self) -> str:
23135
+ """ The unique identifier for the workflow """
23136
+ return self._inner_dict.get('id') # type: ignore
23137
+
23138
+ @id.setter
23139
+ def id(self, value: str) -> None:
23140
+ self._inner_dict['id'] = value
23141
+
23142
+
21971
23143
  class AnomalyKeyClass(_Aspect):
21972
23144
  """Key for an asset Anomaly"""
21973
23145
 
@@ -22484,6 +23656,64 @@ class DataHubOpenAPISchemaKeyClass(_Aspect):
22484
23656
  self._inner_dict['id'] = value
22485
23657
 
22486
23658
 
23659
+ class DataHubPageModuleKeyClass(_Aspect):
23660
+ """Key for a DataHubPageModule"""
23661
+
23662
+
23663
+ ASPECT_NAME = 'dataHubPageModuleKey'
23664
+ ASPECT_INFO = {'keyForEntity': 'dataHubPageModule', 'entityCategory': 'core', 'entityAspects': ['dataHubPageModuleProperties']}
23665
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.DataHubPageModuleKey")
23666
+
23667
+ def __init__(self,
23668
+ id: str,
23669
+ ):
23670
+ super().__init__()
23671
+
23672
+ self.id = id
23673
+
23674
+ def _restore_defaults(self) -> None:
23675
+ self.id = str()
23676
+
23677
+
23678
+ @property
23679
+ def id(self) -> str:
23680
+ """Unique id for the module."""
23681
+ return self._inner_dict.get('id') # type: ignore
23682
+
23683
+ @id.setter
23684
+ def id(self, value: str) -> None:
23685
+ self._inner_dict['id'] = value
23686
+
23687
+
23688
+ class DataHubPageTemplateKeyClass(_Aspect):
23689
+ """Key for a DataHubPageTemplate"""
23690
+
23691
+
23692
+ ASPECT_NAME = 'dataHubPageTemplateKey'
23693
+ ASPECT_INFO = {'keyForEntity': 'dataHubPageTemplate', 'entityCategory': 'core', 'entityAspects': ['dataHubPageTemplateProperties']}
23694
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.DataHubPageTemplateKey")
23695
+
23696
+ def __init__(self,
23697
+ id: str,
23698
+ ):
23699
+ super().__init__()
23700
+
23701
+ self.id = id
23702
+
23703
+ def _restore_defaults(self) -> None:
23704
+ self.id = str()
23705
+
23706
+
23707
+ @property
23708
+ def id(self) -> str:
23709
+ """Unique id for the template."""
23710
+ return self._inner_dict.get('id') # type: ignore
23711
+
23712
+ @id.setter
23713
+ def id(self, value: str) -> None:
23714
+ self._inner_dict['id'] = value
23715
+
23716
+
22487
23717
  class DataHubPersonaKeyClass(_Aspect):
22488
23718
  """Key for a persona type"""
22489
23719
 
@@ -22932,7 +24162,7 @@ class DatasetKeyClass(_Aspect):
22932
24162
 
22933
24163
 
22934
24164
  ASPECT_NAME = 'datasetKey'
22935
- ASPECT_INFO = {'keyForEntity': 'dataset', 'entityCategory': 'core', 'entityAspects': ['viewProperties', 'subTypes', 'datasetProfile', 'datasetUsageStatistics', 'operation', 'domains', 'applications', 'schemaMetadata', 'status', 'container', 'deprecation', 'testResults', 'siblings', 'embed', 'incidentsSummary', 'datasetProperties', 'editableDatasetProperties', 'datasetDeprecation', 'datasetUpstreamLineage', 'upstreamLineage', 'institutionalMemory', 'ownership', 'editableSchemaMetadata', 'globalTags', 'glossaryTerms', 'browsePaths', 'dataPlatformInstance', 'browsePathsV2', 'access', 'structuredProperties', 'forms', 'partitionsSummary', 'versionProperties', 'icebergCatalogInfo', 'inferredNeighbors', 'inferredMetadata', 'schemaFieldsInferredMetadata', 'schemaFieldsInferredNeighbors', 'assertionsSummary', 'usageFeatures', 'storageFeatures', 'lineageFeatures', 'proposals', 'schemaProposals', 'anomaliesSummary', 'share', 'origin', 'documentation', 'entityInferenceMetadata'], 'entityDoc': 'Datasets represent logical or physical data assets stored or represented in various data platforms. Tables, Views, Streams are all instances of datasets.'}
24165
+ ASPECT_INFO = {'keyForEntity': 'dataset', 'entityCategory': 'core', 'entityAspects': ['viewProperties', 'subTypes', 'datasetProfile', 'datasetUsageStatistics', 'operation', 'domains', 'applications', 'schemaMetadata', 'status', 'container', 'deprecation', 'testResults', 'siblings', 'embed', 'incidentsSummary', 'datasetProperties', 'editableDatasetProperties', 'datasetDeprecation', 'datasetUpstreamLineage', 'upstreamLineage', 'institutionalMemory', 'ownership', 'editableSchemaMetadata', 'globalTags', 'glossaryTerms', 'browsePaths', 'dataPlatformInstance', 'browsePathsV2', 'access', 'structuredProperties', 'forms', 'partitionsSummary', 'versionProperties', 'icebergCatalogInfo', 'logicalParent', 'inferredNeighbors', 'inferredMetadata', 'schemaFieldsInferredMetadata', 'schemaFieldsInferredNeighbors', 'assertionsSummary', 'usageFeatures', 'storageFeatures', 'lineageFeatures', 'proposals', 'schemaProposals', 'anomaliesSummary', 'share', 'origin', 'documentation', 'entityInferenceMetadata'], 'entityDoc': 'Datasets represent logical or physical data assets stored or represented in various data platforms. Tables, Views, Streams are all instances of datasets.'}
22936
24166
  RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.DatasetKey")
22937
24167
 
22938
24168
  def __init__(self,
@@ -23960,7 +25190,7 @@ class SchemaFieldKeyClass(_Aspect):
23960
25190
 
23961
25191
 
23962
25192
  ASPECT_NAME = 'schemaFieldKey'
23963
- ASPECT_INFO = {'keyForEntity': 'schemaField', 'entityCategory': 'core', 'entityAspects': ['schemafieldInfo', 'structuredProperties', 'forms', 'businessAttributes', 'status', 'schemaFieldAliases', 'documentation', 'testResults', 'deprecation', 'subTypes', 'schemaFieldProfile', 'lineageFeatures']}
25193
+ ASPECT_INFO = {'keyForEntity': 'schemaField', 'entityCategory': 'core', 'entityAspects': ['schemafieldInfo', 'structuredProperties', 'forms', 'businessAttributes', 'status', 'schemaFieldAliases', 'documentation', 'testResults', 'deprecation', 'subTypes', 'logicalParent', 'schemaFieldProfile', 'lineageFeatures']}
23964
25194
  RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.SchemaFieldKey")
23965
25195
 
23966
25196
  def __init__(self,
@@ -28209,6 +29439,382 @@ class TrainingDataClass(_Aspect):
28209
29439
  self._inner_dict['trainingData'] = value
28210
29440
 
28211
29441
 
29442
+ class AssetCollectionModuleParamsClass(DictWrapper):
29443
+ """The params required if the module is type ASSET_COLLECTION"""
29444
+
29445
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.AssetCollectionModuleParams")
29446
+ def __init__(self,
29447
+ assetUrns: List[str],
29448
+ ):
29449
+ super().__init__()
29450
+
29451
+ self.assetUrns = assetUrns
29452
+
29453
+ def _restore_defaults(self) -> None:
29454
+ self.assetUrns = list()
29455
+
29456
+
29457
+ @property
29458
+ def assetUrns(self) -> List[str]:
29459
+ # No docs available.
29460
+ return self._inner_dict.get('assetUrns') # type: ignore
29461
+
29462
+ @assetUrns.setter
29463
+ def assetUrns(self, value: List[str]) -> None:
29464
+ self._inner_dict['assetUrns'] = value
29465
+
29466
+
29467
+ class DataHubPageModuleParamsClass(DictWrapper):
29468
+ """The specific parameters stored for a module"""
29469
+
29470
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.DataHubPageModuleParams")
29471
+ def __init__(self,
29472
+ linkParams: Union[None, "LinkModuleParamsClass"]=None,
29473
+ richTextParams: Union[None, "RichTextModuleParamsClass"]=None,
29474
+ assetCollectionParams: Union[None, "AssetCollectionModuleParamsClass"]=None,
29475
+ hierarchyViewParams: Union[None, "HierarchyModuleParamsClass"]=None,
29476
+ ):
29477
+ super().__init__()
29478
+
29479
+ self.linkParams = linkParams
29480
+ self.richTextParams = richTextParams
29481
+ self.assetCollectionParams = assetCollectionParams
29482
+ self.hierarchyViewParams = hierarchyViewParams
29483
+
29484
+ def _restore_defaults(self) -> None:
29485
+ self.linkParams = self.RECORD_SCHEMA.fields_dict["linkParams"].default
29486
+ self.richTextParams = self.RECORD_SCHEMA.fields_dict["richTextParams"].default
29487
+ self.assetCollectionParams = self.RECORD_SCHEMA.fields_dict["assetCollectionParams"].default
29488
+ self.hierarchyViewParams = self.RECORD_SCHEMA.fields_dict["hierarchyViewParams"].default
29489
+
29490
+
29491
+ @property
29492
+ def linkParams(self) -> Union[None, "LinkModuleParamsClass"]:
29493
+ """The params required if the module is type LINK"""
29494
+ return self._inner_dict.get('linkParams') # type: ignore
29495
+
29496
+ @linkParams.setter
29497
+ def linkParams(self, value: Union[None, "LinkModuleParamsClass"]) -> None:
29498
+ self._inner_dict['linkParams'] = value
29499
+
29500
+
29501
+ @property
29502
+ def richTextParams(self) -> Union[None, "RichTextModuleParamsClass"]:
29503
+ """The params required if the module is type RICH_TEXT"""
29504
+ return self._inner_dict.get('richTextParams') # type: ignore
29505
+
29506
+ @richTextParams.setter
29507
+ def richTextParams(self, value: Union[None, "RichTextModuleParamsClass"]) -> None:
29508
+ self._inner_dict['richTextParams'] = value
29509
+
29510
+
29511
+ @property
29512
+ def assetCollectionParams(self) -> Union[None, "AssetCollectionModuleParamsClass"]:
29513
+ """The params required if the module is type ASSET_COLLECTION"""
29514
+ return self._inner_dict.get('assetCollectionParams') # type: ignore
29515
+
29516
+ @assetCollectionParams.setter
29517
+ def assetCollectionParams(self, value: Union[None, "AssetCollectionModuleParamsClass"]) -> None:
29518
+ self._inner_dict['assetCollectionParams'] = value
29519
+
29520
+
29521
+ @property
29522
+ def hierarchyViewParams(self) -> Union[None, "HierarchyModuleParamsClass"]:
29523
+ """The params required if the module is type HIERARCHY_VIEW"""
29524
+ return self._inner_dict.get('hierarchyViewParams') # type: ignore
29525
+
29526
+ @hierarchyViewParams.setter
29527
+ def hierarchyViewParams(self, value: Union[None, "HierarchyModuleParamsClass"]) -> None:
29528
+ self._inner_dict['hierarchyViewParams'] = value
29529
+
29530
+
29531
+ class DataHubPageModulePropertiesClass(_Aspect):
29532
+ """The main properties of a DataHub page module"""
29533
+
29534
+
29535
+ ASPECT_NAME = 'dataHubPageModuleProperties'
29536
+ ASPECT_INFO = {}
29537
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.DataHubPageModuleProperties")
29538
+
29539
+ def __init__(self,
29540
+ name: str,
29541
+ type: Union[str, "DataHubPageModuleTypeClass"],
29542
+ visibility: "DataHubPageModuleVisibilityClass",
29543
+ params: "DataHubPageModuleParamsClass",
29544
+ created: "AuditStampClass",
29545
+ lastModified: "AuditStampClass",
29546
+ ):
29547
+ super().__init__()
29548
+
29549
+ self.name = name
29550
+ self.type = type
29551
+ self.visibility = visibility
29552
+ self.params = params
29553
+ self.created = created
29554
+ self.lastModified = lastModified
29555
+
29556
+ def _restore_defaults(self) -> None:
29557
+ self.name = str()
29558
+ self.type = DataHubPageModuleTypeClass.LINK
29559
+ self.visibility = DataHubPageModuleVisibilityClass._construct_with_defaults()
29560
+ self.params = DataHubPageModuleParamsClass._construct_with_defaults()
29561
+ self.created = AuditStampClass._construct_with_defaults()
29562
+ self.lastModified = AuditStampClass._construct_with_defaults()
29563
+
29564
+
29565
+ @property
29566
+ def name(self) -> str:
29567
+ """The display name of this module"""
29568
+ return self._inner_dict.get('name') # type: ignore
29569
+
29570
+ @name.setter
29571
+ def name(self, value: str) -> None:
29572
+ self._inner_dict['name'] = value
29573
+
29574
+
29575
+ @property
29576
+ def type(self) -> Union[str, "DataHubPageModuleTypeClass"]:
29577
+ """The type of this module - the purpose it serves"""
29578
+ return self._inner_dict.get('type') # type: ignore
29579
+
29580
+ @type.setter
29581
+ def type(self, value: Union[str, "DataHubPageModuleTypeClass"]) -> None:
29582
+ self._inner_dict['type'] = value
29583
+
29584
+
29585
+ @property
29586
+ def visibility(self) -> "DataHubPageModuleVisibilityClass":
29587
+ """Info about the visibility of this module"""
29588
+ return self._inner_dict.get('visibility') # type: ignore
29589
+
29590
+ @visibility.setter
29591
+ def visibility(self, value: "DataHubPageModuleVisibilityClass") -> None:
29592
+ self._inner_dict['visibility'] = value
29593
+
29594
+
29595
+ @property
29596
+ def params(self) -> "DataHubPageModuleParamsClass":
29597
+ """The specific parameters stored for this module"""
29598
+ return self._inner_dict.get('params') # type: ignore
29599
+
29600
+ @params.setter
29601
+ def params(self, value: "DataHubPageModuleParamsClass") -> None:
29602
+ self._inner_dict['params'] = value
29603
+
29604
+
29605
+ @property
29606
+ def created(self) -> "AuditStampClass":
29607
+ """Audit stamp for when and by whom this template was created"""
29608
+ return self._inner_dict.get('created') # type: ignore
29609
+
29610
+ @created.setter
29611
+ def created(self, value: "AuditStampClass") -> None:
29612
+ self._inner_dict['created'] = value
29613
+
29614
+
29615
+ @property
29616
+ def lastModified(self) -> "AuditStampClass":
29617
+ """Audit stamp for when and by whom this template was last updated"""
29618
+ return self._inner_dict.get('lastModified') # type: ignore
29619
+
29620
+ @lastModified.setter
29621
+ def lastModified(self, value: "AuditStampClass") -> None:
29622
+ self._inner_dict['lastModified'] = value
29623
+
29624
+
29625
+ class DataHubPageModuleTypeClass(object):
29626
+ """Enum containing the types of page modules that there are"""
29627
+
29628
+ LINK = "LINK"
29629
+ """Link type module"""
29630
+
29631
+ RICH_TEXT = "RICH_TEXT"
29632
+ """Module containing rich text to be rendered"""
29633
+
29634
+ ASSET_COLLECTION = "ASSET_COLLECTION"
29635
+ """A module with a collection of assets"""
29636
+
29637
+ HIERARCHY = "HIERARCHY"
29638
+ """A module displaying a hierarchy to navigate"""
29639
+
29640
+ OWNED_ASSETS = "OWNED_ASSETS"
29641
+ """Module displaying assets owned by a user"""
29642
+
29643
+ DOMAINS = "DOMAINS"
29644
+ """Module displaying the top domains"""
29645
+
29646
+ SUBSCRIBED_ASSETS = "SUBSCRIBED_ASSETS"
29647
+ """Module displaying assets subscribed to by a given user"""
29648
+
29649
+
29650
+
29651
+ class DataHubPageModuleVisibilityClass(DictWrapper):
29652
+ """Info about the visibility of this module"""
29653
+
29654
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.DataHubPageModuleVisibility")
29655
+ def __init__(self,
29656
+ scope: Union[str, "PageModuleScopeClass"],
29657
+ ):
29658
+ super().__init__()
29659
+
29660
+ self.scope = scope
29661
+
29662
+ def _restore_defaults(self) -> None:
29663
+ self.scope = PageModuleScopeClass.PERSONAL
29664
+
29665
+
29666
+ @property
29667
+ def scope(self) -> Union[str, "PageModuleScopeClass"]:
29668
+ """Audit stamp for when and by whom this module was created"""
29669
+ return self._inner_dict.get('scope') # type: ignore
29670
+
29671
+ @scope.setter
29672
+ def scope(self, value: Union[str, "PageModuleScopeClass"]) -> None:
29673
+ self._inner_dict['scope'] = value
29674
+
29675
+
29676
+ class HierarchyModuleParamsClass(DictWrapper):
29677
+ """The params required if the module is type HIERARCHY_VIEW"""
29678
+
29679
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.HierarchyModuleParams")
29680
+ def __init__(self,
29681
+ showRelatedEntities: bool,
29682
+ assetUrns: Union[None, List[str]]=None,
29683
+ relatedEntitiesFilterJson: Union[None, str]=None,
29684
+ ):
29685
+ super().__init__()
29686
+
29687
+ self.assetUrns = assetUrns
29688
+ self.showRelatedEntities = showRelatedEntities
29689
+ self.relatedEntitiesFilterJson = relatedEntitiesFilterJson
29690
+
29691
+ def _restore_defaults(self) -> None:
29692
+ self.assetUrns = self.RECORD_SCHEMA.fields_dict["assetUrns"].default
29693
+ self.showRelatedEntities = bool()
29694
+ self.relatedEntitiesFilterJson = self.RECORD_SCHEMA.fields_dict["relatedEntitiesFilterJson"].default
29695
+
29696
+
29697
+ @property
29698
+ def assetUrns(self) -> Union[None, List[str]]:
29699
+ # No docs available.
29700
+ return self._inner_dict.get('assetUrns') # type: ignore
29701
+
29702
+ @assetUrns.setter
29703
+ def assetUrns(self, value: Union[None, List[str]]) -> None:
29704
+ self._inner_dict['assetUrns'] = value
29705
+
29706
+
29707
+ @property
29708
+ def showRelatedEntities(self) -> bool:
29709
+ # No docs available.
29710
+ return self._inner_dict.get('showRelatedEntities') # type: ignore
29711
+
29712
+ @showRelatedEntities.setter
29713
+ def showRelatedEntities(self, value: bool) -> None:
29714
+ self._inner_dict['showRelatedEntities'] = value
29715
+
29716
+
29717
+ @property
29718
+ def relatedEntitiesFilterJson(self) -> Union[None, str]:
29719
+ """Optional filters to filter relatedEntities (assetUrns) out
29720
+
29721
+ The stringified json representing the logical predicate built in the UI to select assets.
29722
+ This predicate is turned into orFilters to send through graphql since graphql doesn't support
29723
+ arbitrary nesting. This string is used to restore the UI for this logical predicate."""
29724
+ return self._inner_dict.get('relatedEntitiesFilterJson') # type: ignore
29725
+
29726
+ @relatedEntitiesFilterJson.setter
29727
+ def relatedEntitiesFilterJson(self, value: Union[None, str]) -> None:
29728
+ self._inner_dict['relatedEntitiesFilterJson'] = value
29729
+
29730
+
29731
+ class LinkModuleParamsClass(DictWrapper):
29732
+ # No docs available.
29733
+
29734
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.LinkModuleParams")
29735
+ def __init__(self,
29736
+ linkUrl: str,
29737
+ imageUrl: Union[None, str]=None,
29738
+ description: Union[None, str]=None,
29739
+ ):
29740
+ super().__init__()
29741
+
29742
+ self.linkUrl = linkUrl
29743
+ self.imageUrl = imageUrl
29744
+ self.description = description
29745
+
29746
+ def _restore_defaults(self) -> None:
29747
+ self.linkUrl = str()
29748
+ self.imageUrl = self.RECORD_SCHEMA.fields_dict["imageUrl"].default
29749
+ self.description = self.RECORD_SCHEMA.fields_dict["description"].default
29750
+
29751
+
29752
+ @property
29753
+ def linkUrl(self) -> str:
29754
+ # No docs available.
29755
+ return self._inner_dict.get('linkUrl') # type: ignore
29756
+
29757
+ @linkUrl.setter
29758
+ def linkUrl(self, value: str) -> None:
29759
+ self._inner_dict['linkUrl'] = value
29760
+
29761
+
29762
+ @property
29763
+ def imageUrl(self) -> Union[None, str]:
29764
+ # No docs available.
29765
+ return self._inner_dict.get('imageUrl') # type: ignore
29766
+
29767
+ @imageUrl.setter
29768
+ def imageUrl(self, value: Union[None, str]) -> None:
29769
+ self._inner_dict['imageUrl'] = value
29770
+
29771
+
29772
+ @property
29773
+ def description(self) -> Union[None, str]:
29774
+ # No docs available.
29775
+ return self._inner_dict.get('description') # type: ignore
29776
+
29777
+ @description.setter
29778
+ def description(self, value: Union[None, str]) -> None:
29779
+ self._inner_dict['description'] = value
29780
+
29781
+
29782
+ class PageModuleScopeClass(object):
29783
+ # No docs available.
29784
+
29785
+ PERSONAL = "PERSONAL"
29786
+ """This module is used for individual use only"""
29787
+
29788
+ GLOBAL = "GLOBAL"
29789
+ """This module is discoverable and can be used by any user on the platform"""
29790
+
29791
+
29792
+
29793
+ class RichTextModuleParamsClass(DictWrapper):
29794
+ # No docs available.
29795
+
29796
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.RichTextModuleParams")
29797
+ def __init__(self,
29798
+ content: str,
29799
+ ):
29800
+ super().__init__()
29801
+
29802
+ self.content = content
29803
+
29804
+ def _restore_defaults(self) -> None:
29805
+ self.content = str()
29806
+
29807
+
29808
+ @property
29809
+ def content(self) -> str:
29810
+ # No docs available.
29811
+ return self._inner_dict.get('content') # type: ignore
29812
+
29813
+ @content.setter
29814
+ def content(self, value: str) -> None:
29815
+ self._inner_dict['content'] = value
29816
+
29817
+
28212
29818
  class AssertionEvaluationContextClass(DictWrapper):
28213
29819
  """Additional context about assertion being evaluated."""
28214
29820
 
@@ -30107,6 +31713,8 @@ class SystemMetadataClass(_Aspect):
30107
31713
  registryVersion: Union[None, str]=None,
30108
31714
  properties: Union[None, Dict[str, str]]=None,
30109
31715
  version: Union[None, str]=None,
31716
+ aspectCreated: Union[None, "AuditStampClass"]=None,
31717
+ aspectModified: Union[None, "AuditStampClass"]=None,
30110
31718
  ):
30111
31719
  super().__init__()
30112
31720
 
@@ -30130,6 +31738,8 @@ class SystemMetadataClass(_Aspect):
30130
31738
  self.registryVersion = registryVersion
30131
31739
  self.properties = properties
30132
31740
  self.version = version
31741
+ self.aspectCreated = aspectCreated
31742
+ self.aspectModified = aspectModified
30133
31743
 
30134
31744
  def _restore_defaults(self) -> None:
30135
31745
  self.lastObserved = self.RECORD_SCHEMA.fields_dict["lastObserved"].default
@@ -30140,6 +31750,8 @@ class SystemMetadataClass(_Aspect):
30140
31750
  self.registryVersion = self.RECORD_SCHEMA.fields_dict["registryVersion"].default
30141
31751
  self.properties = self.RECORD_SCHEMA.fields_dict["properties"].default
30142
31752
  self.version = self.RECORD_SCHEMA.fields_dict["version"].default
31753
+ self.aspectCreated = self.RECORD_SCHEMA.fields_dict["aspectCreated"].default
31754
+ self.aspectModified = self.RECORD_SCHEMA.fields_dict["aspectModified"].default
30143
31755
 
30144
31756
 
30145
31757
  @property
@@ -30224,6 +31836,26 @@ class SystemMetadataClass(_Aspect):
30224
31836
  self._inner_dict['version'] = value
30225
31837
 
30226
31838
 
31839
+ @property
31840
+ def aspectCreated(self) -> Union[None, "AuditStampClass"]:
31841
+ """When the aspect was initially created and who created it, detected by version 0 -> 1 change"""
31842
+ return self._inner_dict.get('aspectCreated') # type: ignore
31843
+
31844
+ @aspectCreated.setter
31845
+ def aspectCreated(self, value: Union[None, "AuditStampClass"]) -> None:
31846
+ self._inner_dict['aspectCreated'] = value
31847
+
31848
+
31849
+ @property
31850
+ def aspectModified(self) -> Union[None, "AuditStampClass"]:
31851
+ """When the aspect was last modified and the actor that performed the modification"""
31852
+ return self._inner_dict.get('aspectModified') # type: ignore
31853
+
31854
+ @aspectModified.setter
31855
+ def aspectModified(self, value: Union[None, "AuditStampClass"]) -> None:
31856
+ self._inner_dict['aspectModified'] = value
31857
+
31858
+
30227
31859
  class ChartCellClass(DictWrapper):
30228
31860
  """Chart cell in a notebook, which will present content in chart format"""
30229
31861
 
@@ -34184,6 +35816,59 @@ class NotificationSettingValueClass(object):
34184
35816
 
34185
35817
 
34186
35818
 
35819
+ class ApplicationsSettingsClass(DictWrapper):
35820
+ # No docs available.
35821
+
35822
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.settings.global.ApplicationsSettings")
35823
+ def __init__(self,
35824
+ enabled: bool,
35825
+ config: Union[None, str]=None,
35826
+ configVersion: Union[None, str]=None,
35827
+ ):
35828
+ super().__init__()
35829
+
35830
+ self.enabled = enabled
35831
+ self.config = config
35832
+ self.configVersion = configVersion
35833
+
35834
+ def _restore_defaults(self) -> None:
35835
+ self.enabled = bool()
35836
+ self.config = self.RECORD_SCHEMA.fields_dict["config"].default
35837
+ self.configVersion = self.RECORD_SCHEMA.fields_dict["configVersion"].default
35838
+
35839
+
35840
+ @property
35841
+ def enabled(self) -> bool:
35842
+ # No docs available.
35843
+ return self._inner_dict.get('enabled') # type: ignore
35844
+
35845
+ @enabled.setter
35846
+ def enabled(self, value: bool) -> None:
35847
+ self._inner_dict['enabled'] = value
35848
+
35849
+
35850
+ @property
35851
+ def config(self) -> Union[None, str]:
35852
+ """The configuration for the feature, in JSON format."""
35853
+ return self._inner_dict.get('config') # type: ignore
35854
+
35855
+ @config.setter
35856
+ def config(self, value: Union[None, str]) -> None:
35857
+ self._inner_dict['config'] = value
35858
+
35859
+
35860
+ @property
35861
+ def configVersion(self) -> Union[None, str]:
35862
+ """The version of the configuration schema that has been used to serialize
35863
+ the config.
35864
+ If not provided, the version is assumed to be the latest version."""
35865
+ return self._inner_dict.get('configVersion') # type: ignore
35866
+
35867
+ @configVersion.setter
35868
+ def configVersion(self, value: Union[None, str]) -> None:
35869
+ self._inner_dict['configVersion'] = value
35870
+
35871
+
34187
35872
  class DocPropagationFeatureSettingsClass(DictWrapper):
34188
35873
  # No docs available.
34189
35874
 
@@ -34308,6 +35993,31 @@ class EmailIntegrationSettingsClass(DictWrapper):
34308
35993
  self._inner_dict['defaultEmail'] = value
34309
35994
 
34310
35995
 
35996
+ class GlobalHomePageSettingsClass(DictWrapper):
35997
+ """Global settings related to the home page for an instance"""
35998
+
35999
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.settings.global.GlobalHomePageSettings")
36000
+ def __init__(self,
36001
+ defaultTemplate: str,
36002
+ ):
36003
+ super().__init__()
36004
+
36005
+ self.defaultTemplate = defaultTemplate
36006
+
36007
+ def _restore_defaults(self) -> None:
36008
+ self.defaultTemplate = str()
36009
+
36010
+
36011
+ @property
36012
+ def defaultTemplate(self) -> str:
36013
+ """The urn that will be rendered in the UI by default for all users"""
36014
+ return self._inner_dict.get('defaultTemplate') # type: ignore
36015
+
36016
+ @defaultTemplate.setter
36017
+ def defaultTemplate(self, value: str) -> None:
36018
+ self._inner_dict['defaultTemplate'] = value
36019
+
36020
+
34311
36021
  class GlobalIncidentsSettingsClass(DictWrapper):
34312
36022
  # No docs available.
34313
36023
 
@@ -34441,6 +36151,8 @@ class GlobalSettingsInfoClass(_Aspect):
34441
36151
  sso: Union[None, "SsoSettingsClass"]=None,
34442
36152
  views: Union[None, "GlobalViewsSettingsClass"]=None,
34443
36153
  docPropagation: Optional[Union["DocPropagationFeatureSettingsClass", None]]=None,
36154
+ homePage: Union[None, "GlobalHomePageSettingsClass"]=None,
36155
+ applications: Union[None, "ApplicationsSettingsClass"]=None,
34444
36156
  documentationAi: Union[None, "DocumentationAiSettingsClass"]=None,
34445
36157
  visual: Union[None, "GlobalVisualSettingsClass"]=None,
34446
36158
  ):
@@ -34455,6 +36167,8 @@ class GlobalSettingsInfoClass(_Aspect):
34455
36167
  self.docPropagation = _json_converter.from_json_object(self.RECORD_SCHEMA.fields_dict["docPropagation"].default, writers_schema=self.RECORD_SCHEMA.fields_dict["docPropagation"].type)
34456
36168
  else:
34457
36169
  self.docPropagation = docPropagation
36170
+ self.homePage = homePage
36171
+ self.applications = applications
34458
36172
  self.documentationAi = documentationAi
34459
36173
  self.visual = visual
34460
36174
 
@@ -34464,6 +36178,8 @@ class GlobalSettingsInfoClass(_Aspect):
34464
36178
  self.sso = self.RECORD_SCHEMA.fields_dict["sso"].default
34465
36179
  self.views = self.RECORD_SCHEMA.fields_dict["views"].default
34466
36180
  self.docPropagation = _json_converter.from_json_object(self.RECORD_SCHEMA.fields_dict["docPropagation"].default, writers_schema=self.RECORD_SCHEMA.fields_dict["docPropagation"].type)
36181
+ self.homePage = self.RECORD_SCHEMA.fields_dict["homePage"].default
36182
+ self.applications = self.RECORD_SCHEMA.fields_dict["applications"].default
34467
36183
  self.documentationAi = self.RECORD_SCHEMA.fields_dict["documentationAi"].default
34468
36184
  self.visual = self.RECORD_SCHEMA.fields_dict["visual"].default
34469
36185
 
@@ -34518,6 +36234,26 @@ class GlobalSettingsInfoClass(_Aspect):
34518
36234
  self._inner_dict['docPropagation'] = value
34519
36235
 
34520
36236
 
36237
+ @property
36238
+ def homePage(self) -> Union[None, "GlobalHomePageSettingsClass"]:
36239
+ """Global settings related to the home page for an instance"""
36240
+ return self._inner_dict.get('homePage') # type: ignore
36241
+
36242
+ @homePage.setter
36243
+ def homePage(self, value: Union[None, "GlobalHomePageSettingsClass"]) -> None:
36244
+ self._inner_dict['homePage'] = value
36245
+
36246
+
36247
+ @property
36248
+ def applications(self) -> Union[None, "ApplicationsSettingsClass"]:
36249
+ """Settings related to applications. If not enabled, applications won't show up in navigation"""
36250
+ return self._inner_dict.get('applications') # type: ignore
36251
+
36252
+ @applications.setter
36253
+ def applications(self, value: Union[None, "ApplicationsSettingsClass"]) -> None:
36254
+ self._inner_dict['applications'] = value
36255
+
36256
+
34521
36257
  @property
34522
36258
  def documentationAi(self) -> Union[None, "DocumentationAiSettingsClass"]:
34523
36259
  """Settings related to AI-powered documentation."""
@@ -34932,6 +36668,7 @@ class SlackIntegrationSettingsClass(DictWrapper):
34932
36668
  enabled: Optional[bool]=None,
34933
36669
  encryptedBotToken: Union[None, str]=None,
34934
36670
  defaultChannelName: Union[None, str]=None,
36671
+ datahubAtMentionEnabled: Union[None, bool]=None,
34935
36672
  ):
34936
36673
  super().__init__()
34937
36674
 
@@ -34942,11 +36679,13 @@ class SlackIntegrationSettingsClass(DictWrapper):
34942
36679
  self.enabled = enabled
34943
36680
  self.encryptedBotToken = encryptedBotToken
34944
36681
  self.defaultChannelName = defaultChannelName
36682
+ self.datahubAtMentionEnabled = datahubAtMentionEnabled
34945
36683
 
34946
36684
  def _restore_defaults(self) -> None:
34947
36685
  self.enabled = self.RECORD_SCHEMA.fields_dict["enabled"].default
34948
36686
  self.encryptedBotToken = self.RECORD_SCHEMA.fields_dict["encryptedBotToken"].default
34949
36687
  self.defaultChannelName = self.RECORD_SCHEMA.fields_dict["defaultChannelName"].default
36688
+ self.datahubAtMentionEnabled = self.RECORD_SCHEMA.fields_dict["datahubAtMentionEnabled"].default
34950
36689
 
34951
36690
 
34952
36691
  @property
@@ -34982,6 +36721,17 @@ class SlackIntegrationSettingsClass(DictWrapper):
34982
36721
  self._inner_dict['defaultChannelName'] = value
34983
36722
 
34984
36723
 
36724
+ @property
36725
+ def datahubAtMentionEnabled(self) -> Union[None, bool]:
36726
+ """Whether the Slack @DataHub bot mention functionality is enabled.
36727
+ If null, use the default value from feature flags."""
36728
+ return self._inner_dict.get('datahubAtMentionEnabled') # type: ignore
36729
+
36730
+ @datahubAtMentionEnabled.setter
36731
+ def datahubAtMentionEnabled(self, value: Union[None, bool]) -> None:
36732
+ self._inner_dict['datahubAtMentionEnabled'] = value
36733
+
36734
+
34985
36735
  class SsoSettingsClass(DictWrapper):
34986
36736
  """SSO Integrations, supported on the UI."""
34987
36737
 
@@ -35955,6 +37705,181 @@ class TelemetryClientIdClass(_Aspect):
35955
37705
  self._inner_dict['clientId'] = value
35956
37706
 
35957
37707
 
37708
+ class DataHubPageTemplatePropertiesClass(_Aspect):
37709
+ """The main properties of a DataHub page template"""
37710
+
37711
+
37712
+ ASPECT_NAME = 'dataHubPageTemplateProperties'
37713
+ ASPECT_INFO = {}
37714
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.template.DataHubPageTemplateProperties")
37715
+
37716
+ def __init__(self,
37717
+ rows: List["DataHubPageTemplateRowClass"],
37718
+ surface: "DataHubPageTemplateSurfaceClass",
37719
+ visibility: "DataHubPageTemplateVisibilityClass",
37720
+ created: "AuditStampClass",
37721
+ lastModified: "AuditStampClass",
37722
+ ):
37723
+ super().__init__()
37724
+
37725
+ self.rows = rows
37726
+ self.surface = surface
37727
+ self.visibility = visibility
37728
+ self.created = created
37729
+ self.lastModified = lastModified
37730
+
37731
+ def _restore_defaults(self) -> None:
37732
+ self.rows = list()
37733
+ self.surface = DataHubPageTemplateSurfaceClass._construct_with_defaults()
37734
+ self.visibility = DataHubPageTemplateVisibilityClass._construct_with_defaults()
37735
+ self.created = AuditStampClass._construct_with_defaults()
37736
+ self.lastModified = AuditStampClass._construct_with_defaults()
37737
+
37738
+
37739
+ @property
37740
+ def rows(self) -> List["DataHubPageTemplateRowClass"]:
37741
+ """The rows of modules contained in this template"""
37742
+ return self._inner_dict.get('rows') # type: ignore
37743
+
37744
+ @rows.setter
37745
+ def rows(self, value: List["DataHubPageTemplateRowClass"]) -> None:
37746
+ self._inner_dict['rows'] = value
37747
+
37748
+
37749
+ @property
37750
+ def surface(self) -> "DataHubPageTemplateSurfaceClass":
37751
+ """Info about the surface area of the product that this template is deployed in"""
37752
+ return self._inner_dict.get('surface') # type: ignore
37753
+
37754
+ @surface.setter
37755
+ def surface(self, value: "DataHubPageTemplateSurfaceClass") -> None:
37756
+ self._inner_dict['surface'] = value
37757
+
37758
+
37759
+ @property
37760
+ def visibility(self) -> "DataHubPageTemplateVisibilityClass":
37761
+ """Info about the visibility of this template"""
37762
+ return self._inner_dict.get('visibility') # type: ignore
37763
+
37764
+ @visibility.setter
37765
+ def visibility(self, value: "DataHubPageTemplateVisibilityClass") -> None:
37766
+ self._inner_dict['visibility'] = value
37767
+
37768
+
37769
+ @property
37770
+ def created(self) -> "AuditStampClass":
37771
+ """Audit stamp for when and by whom this template was created"""
37772
+ return self._inner_dict.get('created') # type: ignore
37773
+
37774
+ @created.setter
37775
+ def created(self, value: "AuditStampClass") -> None:
37776
+ self._inner_dict['created'] = value
37777
+
37778
+
37779
+ @property
37780
+ def lastModified(self) -> "AuditStampClass":
37781
+ """Audit stamp for when and by whom this template was last updated"""
37782
+ return self._inner_dict.get('lastModified') # type: ignore
37783
+
37784
+ @lastModified.setter
37785
+ def lastModified(self, value: "AuditStampClass") -> None:
37786
+ self._inner_dict['lastModified'] = value
37787
+
37788
+
37789
+ class DataHubPageTemplateRowClass(DictWrapper):
37790
+ """A row of modules contained in a template"""
37791
+
37792
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.template.DataHubPageTemplateRow")
37793
+ def __init__(self,
37794
+ modules: List[str],
37795
+ ):
37796
+ super().__init__()
37797
+
37798
+ self.modules = modules
37799
+
37800
+ def _restore_defaults(self) -> None:
37801
+ self.modules = list()
37802
+
37803
+
37804
+ @property
37805
+ def modules(self) -> List[str]:
37806
+ """The modules that exist in this template row"""
37807
+ return self._inner_dict.get('modules') # type: ignore
37808
+
37809
+ @modules.setter
37810
+ def modules(self, value: List[str]) -> None:
37811
+ self._inner_dict['modules'] = value
37812
+
37813
+
37814
+ class DataHubPageTemplateSurfaceClass(DictWrapper):
37815
+ """Info about the surface area of the product that this template is deployed in"""
37816
+
37817
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.template.DataHubPageTemplateSurface")
37818
+ def __init__(self,
37819
+ surfaceType: Union[str, "PageTemplateSurfaceTypeClass"],
37820
+ ):
37821
+ super().__init__()
37822
+
37823
+ self.surfaceType = surfaceType
37824
+
37825
+ def _restore_defaults(self) -> None:
37826
+ self.surfaceType = PageTemplateSurfaceTypeClass.HOME_PAGE
37827
+
37828
+
37829
+ @property
37830
+ def surfaceType(self) -> Union[str, "PageTemplateSurfaceTypeClass"]:
37831
+ """Where exactly is this template being used"""
37832
+ return self._inner_dict.get('surfaceType') # type: ignore
37833
+
37834
+ @surfaceType.setter
37835
+ def surfaceType(self, value: Union[str, "PageTemplateSurfaceTypeClass"]) -> None:
37836
+ self._inner_dict['surfaceType'] = value
37837
+
37838
+
37839
+ class DataHubPageTemplateVisibilityClass(DictWrapper):
37840
+ """Info about the visibility of this template"""
37841
+
37842
+ RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.template.DataHubPageTemplateVisibility")
37843
+ def __init__(self,
37844
+ scope: Union[str, "PageTemplateScopeClass"],
37845
+ ):
37846
+ super().__init__()
37847
+
37848
+ self.scope = scope
37849
+
37850
+ def _restore_defaults(self) -> None:
37851
+ self.scope = PageTemplateScopeClass.PERSONAL
37852
+
37853
+
37854
+ @property
37855
+ def scope(self) -> Union[str, "PageTemplateScopeClass"]:
37856
+ """The scope of this template and who can use/see it"""
37857
+ return self._inner_dict.get('scope') # type: ignore
37858
+
37859
+ @scope.setter
37860
+ def scope(self, value: Union[str, "PageTemplateScopeClass"]) -> None:
37861
+ self._inner_dict['scope'] = value
37862
+
37863
+
37864
+ class PageTemplateScopeClass(object):
37865
+ # No docs available.
37866
+
37867
+ PERSONAL = "PERSONAL"
37868
+ """This template is used for individual use only"""
37869
+
37870
+ GLOBAL = "GLOBAL"
37871
+ """This template is used across users"""
37872
+
37873
+
37874
+
37875
+ class PageTemplateSurfaceTypeClass(object):
37876
+ # No docs available.
37877
+
37878
+ HOME_PAGE = "HOME_PAGE"
37879
+ """This template applies to what to display on the home page for users."""
37880
+
37881
+
37882
+
35958
37883
  class BatchTestRunEventClass(_Aspect):
35959
37884
  """An event representing the current status of evaluating a batch metadata test (run offline)"""
35960
37885
 
@@ -37647,6 +39572,26 @@ __SCHEMA_TYPES = {
37647
39572
  'com.linkedin.pegasus2avro.actionrequest.OwnerProposal': OwnerProposalClass,
37648
39573
  'com.linkedin.pegasus2avro.actionrequest.StructuredPropertyProposal': StructuredPropertyProposalClass,
37649
39574
  'com.linkedin.pegasus2avro.actionrequest.TagProposal': TagProposalClass,
39575
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowCategory': ActionWorkflowCategoryClass,
39576
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowEntrypoint': ActionWorkflowEntrypointClass,
39577
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowEntrypointType': ActionWorkflowEntrypointTypeClass,
39578
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowField': ActionWorkflowFieldClass,
39579
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFieldCondition': ActionWorkflowFieldConditionClass,
39580
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFieldConditionType': ActionWorkflowFieldConditionTypeClass,
39581
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowForm': ActionWorkflowFormClass,
39582
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFormRequest': ActionWorkflowFormRequestClass,
39583
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFormRequestField': ActionWorkflowFormRequestFieldClass,
39584
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowInfo': ActionWorkflowInfoClass,
39585
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowRequestAccess': ActionWorkflowRequestAccessClass,
39586
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowRequestStepState': ActionWorkflowRequestStepStateClass,
39587
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowSingleFieldValueCondition': ActionWorkflowSingleFieldValueConditionClass,
39588
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStep': ActionWorkflowStepClass,
39589
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepActors': ActionWorkflowStepActorsClass,
39590
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepDynamicAssignment': ActionWorkflowStepDynamicAssignmentClass,
39591
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepDynamicAssignmentType': ActionWorkflowStepDynamicAssignmentTypeClass,
39592
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepType': ActionWorkflowStepTypeClass,
39593
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowTrigger': ActionWorkflowTriggerClass,
39594
+ 'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowTriggerType': ActionWorkflowTriggerTypeClass,
37650
39595
  'com.linkedin.pegasus2avro.ai.AiInferenceMetadata': AiInferenceMetadataClass,
37651
39596
  'com.linkedin.pegasus2avro.ai.EntityInferenceMetadata': EntityInferenceMetadataClass,
37652
39597
  'com.linkedin.pegasus2avro.ai.GlossaryTermsInferenceMetadata': GlossaryTermsInferenceMetadataClass,
@@ -37674,6 +39619,7 @@ __SCHEMA_TYPES = {
37674
39619
  'com.linkedin.pegasus2avro.assertion.AssertionInfo': AssertionInfoClass,
37675
39620
  'com.linkedin.pegasus2avro.assertion.AssertionMetric': AssertionMetricClass,
37676
39621
  'com.linkedin.pegasus2avro.assertion.AssertionMonitorSensitivity': AssertionMonitorSensitivityClass,
39622
+ 'com.linkedin.pegasus2avro.assertion.AssertionNote': AssertionNoteClass,
37677
39623
  'com.linkedin.pegasus2avro.assertion.AssertionResult': AssertionResultClass,
37678
39624
  'com.linkedin.pegasus2avro.assertion.AssertionResultError': AssertionResultErrorClass,
37679
39625
  'com.linkedin.pegasus2avro.assertion.AssertionResultErrorType': AssertionResultErrorTypeClass,
@@ -37962,6 +39908,7 @@ __SCHEMA_TYPES = {
37962
39908
  'com.linkedin.pegasus2avro.identity.CorpUserAppearanceSettings': CorpUserAppearanceSettingsClass,
37963
39909
  'com.linkedin.pegasus2avro.identity.CorpUserCredentials': CorpUserCredentialsClass,
37964
39910
  'com.linkedin.pegasus2avro.identity.CorpUserEditableInfo': CorpUserEditableInfoClass,
39911
+ 'com.linkedin.pegasus2avro.identity.CorpUserHomePageSettings': CorpUserHomePageSettingsClass,
37965
39912
  'com.linkedin.pegasus2avro.identity.CorpUserInfo': CorpUserInfoClass,
37966
39913
  'com.linkedin.pegasus2avro.identity.CorpUserSettings': CorpUserSettingsClass,
37967
39914
  'com.linkedin.pegasus2avro.identity.CorpUserStatus': CorpUserStatusClass,
@@ -38004,7 +39951,9 @@ __SCHEMA_TYPES = {
38004
39951
  'com.linkedin.pegasus2avro.ingestion.DataHubIngestionSourceSourceType': DataHubIngestionSourceSourceTypeClass,
38005
39952
  'com.linkedin.pegasus2avro.link.LinkPreviewInfo': LinkPreviewInfoClass,
38006
39953
  'com.linkedin.pegasus2avro.link.LinkPreviewType': LinkPreviewTypeClass,
39954
+ 'com.linkedin.pegasus2avro.logical.LogicalParent': LogicalParentClass,
38007
39955
  'com.linkedin.pegasus2avro.metadata.key.ActionRequestKey': ActionRequestKeyClass,
39956
+ 'com.linkedin.pegasus2avro.metadata.key.ActionWorkflowKey': ActionWorkflowKeyClass,
38008
39957
  'com.linkedin.pegasus2avro.metadata.key.AnomalyKey': AnomalyKeyClass,
38009
39958
  'com.linkedin.pegasus2avro.metadata.key.AssertionKey': AssertionKeyClass,
38010
39959
  'com.linkedin.pegasus2avro.metadata.key.ChartKey': ChartKeyClass,
@@ -38021,6 +39970,8 @@ __SCHEMA_TYPES = {
38021
39970
  'com.linkedin.pegasus2avro.metadata.key.DataHubIngestionSourceKey': DataHubIngestionSourceKeyClass,
38022
39971
  'com.linkedin.pegasus2avro.metadata.key.DataHubMetricCubeKey': DataHubMetricCubeKeyClass,
38023
39972
  'com.linkedin.pegasus2avro.metadata.key.DataHubOpenAPISchemaKey': DataHubOpenAPISchemaKeyClass,
39973
+ 'com.linkedin.pegasus2avro.metadata.key.DataHubPageModuleKey': DataHubPageModuleKeyClass,
39974
+ 'com.linkedin.pegasus2avro.metadata.key.DataHubPageTemplateKey': DataHubPageTemplateKeyClass,
38024
39975
  'com.linkedin.pegasus2avro.metadata.key.DataHubPersonaKey': DataHubPersonaKeyClass,
38025
39976
  'com.linkedin.pegasus2avro.metadata.key.DataHubPolicyKey': DataHubPolicyKeyClass,
38026
39977
  'com.linkedin.pegasus2avro.metadata.key.DataHubRetentionKey': DataHubRetentionKeyClass,
@@ -38145,6 +40096,15 @@ __SCHEMA_TYPES = {
38145
40096
  'com.linkedin.pegasus2avro.ml.metadata.SourceCodeUrl': SourceCodeUrlClass,
38146
40097
  'com.linkedin.pegasus2avro.ml.metadata.SourceCodeUrlType': SourceCodeUrlTypeClass,
38147
40098
  'com.linkedin.pegasus2avro.ml.metadata.TrainingData': TrainingDataClass,
40099
+ 'com.linkedin.pegasus2avro.module.AssetCollectionModuleParams': AssetCollectionModuleParamsClass,
40100
+ 'com.linkedin.pegasus2avro.module.DataHubPageModuleParams': DataHubPageModuleParamsClass,
40101
+ 'com.linkedin.pegasus2avro.module.DataHubPageModuleProperties': DataHubPageModulePropertiesClass,
40102
+ 'com.linkedin.pegasus2avro.module.DataHubPageModuleType': DataHubPageModuleTypeClass,
40103
+ 'com.linkedin.pegasus2avro.module.DataHubPageModuleVisibility': DataHubPageModuleVisibilityClass,
40104
+ 'com.linkedin.pegasus2avro.module.HierarchyModuleParams': HierarchyModuleParamsClass,
40105
+ 'com.linkedin.pegasus2avro.module.LinkModuleParams': LinkModuleParamsClass,
40106
+ 'com.linkedin.pegasus2avro.module.PageModuleScope': PageModuleScopeClass,
40107
+ 'com.linkedin.pegasus2avro.module.RichTextModuleParams': RichTextModuleParamsClass,
38148
40108
  'com.linkedin.pegasus2avro.monitor.AssertionEvaluationContext': AssertionEvaluationContextClass,
38149
40109
  'com.linkedin.pegasus2avro.monitor.AssertionEvaluationParameters': AssertionEvaluationParametersClass,
38150
40110
  'com.linkedin.pegasus2avro.monitor.AssertionEvaluationParametersType': AssertionEvaluationParametersTypeClass,
@@ -38270,9 +40230,11 @@ __SCHEMA_TYPES = {
38270
40230
  'com.linkedin.pegasus2avro.secret.DataHubSecretValue': DataHubSecretValueClass,
38271
40231
  'com.linkedin.pegasus2avro.settings.NotificationSetting': NotificationSettingClass,
38272
40232
  'com.linkedin.pegasus2avro.settings.NotificationSettingValue': NotificationSettingValueClass,
40233
+ 'com.linkedin.pegasus2avro.settings.global.ApplicationsSettings': ApplicationsSettingsClass,
38273
40234
  'com.linkedin.pegasus2avro.settings.global.DocPropagationFeatureSettings': DocPropagationFeatureSettingsClass,
38274
40235
  'com.linkedin.pegasus2avro.settings.global.DocumentationAiSettings': DocumentationAiSettingsClass,
38275
40236
  'com.linkedin.pegasus2avro.settings.global.EmailIntegrationSettings': EmailIntegrationSettingsClass,
40237
+ 'com.linkedin.pegasus2avro.settings.global.GlobalHomePageSettings': GlobalHomePageSettingsClass,
38276
40238
  'com.linkedin.pegasus2avro.settings.global.GlobalIncidentsSettings': GlobalIncidentsSettingsClass,
38277
40239
  'com.linkedin.pegasus2avro.settings.global.GlobalIntegrationSettings': GlobalIntegrationSettingsClass,
38278
40240
  'com.linkedin.pegasus2avro.settings.global.GlobalNotificationSettings': GlobalNotificationSettingsClass,
@@ -38300,6 +40262,12 @@ __SCHEMA_TYPES = {
38300
40262
  'com.linkedin.pegasus2avro.subscription.SubscriptionType': SubscriptionTypeClass,
38301
40263
  'com.linkedin.pegasus2avro.tag.TagProperties': TagPropertiesClass,
38302
40264
  'com.linkedin.pegasus2avro.telemetry.TelemetryClientId': TelemetryClientIdClass,
40265
+ 'com.linkedin.pegasus2avro.template.DataHubPageTemplateProperties': DataHubPageTemplatePropertiesClass,
40266
+ 'com.linkedin.pegasus2avro.template.DataHubPageTemplateRow': DataHubPageTemplateRowClass,
40267
+ 'com.linkedin.pegasus2avro.template.DataHubPageTemplateSurface': DataHubPageTemplateSurfaceClass,
40268
+ 'com.linkedin.pegasus2avro.template.DataHubPageTemplateVisibility': DataHubPageTemplateVisibilityClass,
40269
+ 'com.linkedin.pegasus2avro.template.PageTemplateScope': PageTemplateScopeClass,
40270
+ 'com.linkedin.pegasus2avro.template.PageTemplateSurfaceType': PageTemplateSurfaceTypeClass,
38303
40271
  'com.linkedin.pegasus2avro.test.BatchTestRunEvent': BatchTestRunEventClass,
38304
40272
  'com.linkedin.pegasus2avro.test.BatchTestRunResult': BatchTestRunResultClass,
38305
40273
  'com.linkedin.pegasus2avro.test.BatchTestRunStatus': BatchTestRunStatusClass,
@@ -38364,6 +40332,26 @@ __SCHEMA_TYPES = {
38364
40332
  'OwnerProposal': OwnerProposalClass,
38365
40333
  'StructuredPropertyProposal': StructuredPropertyProposalClass,
38366
40334
  'TagProposal': TagProposalClass,
40335
+ 'ActionWorkflowCategory': ActionWorkflowCategoryClass,
40336
+ 'ActionWorkflowEntrypoint': ActionWorkflowEntrypointClass,
40337
+ 'ActionWorkflowEntrypointType': ActionWorkflowEntrypointTypeClass,
40338
+ 'ActionWorkflowField': ActionWorkflowFieldClass,
40339
+ 'ActionWorkflowFieldCondition': ActionWorkflowFieldConditionClass,
40340
+ 'ActionWorkflowFieldConditionType': ActionWorkflowFieldConditionTypeClass,
40341
+ 'ActionWorkflowForm': ActionWorkflowFormClass,
40342
+ 'ActionWorkflowFormRequest': ActionWorkflowFormRequestClass,
40343
+ 'ActionWorkflowFormRequestField': ActionWorkflowFormRequestFieldClass,
40344
+ 'ActionWorkflowInfo': ActionWorkflowInfoClass,
40345
+ 'ActionWorkflowRequestAccess': ActionWorkflowRequestAccessClass,
40346
+ 'ActionWorkflowRequestStepState': ActionWorkflowRequestStepStateClass,
40347
+ 'ActionWorkflowSingleFieldValueCondition': ActionWorkflowSingleFieldValueConditionClass,
40348
+ 'ActionWorkflowStep': ActionWorkflowStepClass,
40349
+ 'ActionWorkflowStepActors': ActionWorkflowStepActorsClass,
40350
+ 'ActionWorkflowStepDynamicAssignment': ActionWorkflowStepDynamicAssignmentClass,
40351
+ 'ActionWorkflowStepDynamicAssignmentType': ActionWorkflowStepDynamicAssignmentTypeClass,
40352
+ 'ActionWorkflowStepType': ActionWorkflowStepTypeClass,
40353
+ 'ActionWorkflowTrigger': ActionWorkflowTriggerClass,
40354
+ 'ActionWorkflowTriggerType': ActionWorkflowTriggerTypeClass,
38367
40355
  'AiInferenceMetadata': AiInferenceMetadataClass,
38368
40356
  'EntityInferenceMetadata': EntityInferenceMetadataClass,
38369
40357
  'GlossaryTermsInferenceMetadata': GlossaryTermsInferenceMetadataClass,
@@ -38391,6 +40379,7 @@ __SCHEMA_TYPES = {
38391
40379
  'AssertionInfo': AssertionInfoClass,
38392
40380
  'AssertionMetric': AssertionMetricClass,
38393
40381
  'AssertionMonitorSensitivity': AssertionMonitorSensitivityClass,
40382
+ 'AssertionNote': AssertionNoteClass,
38394
40383
  'AssertionResult': AssertionResultClass,
38395
40384
  'AssertionResultError': AssertionResultErrorClass,
38396
40385
  'AssertionResultErrorType': AssertionResultErrorTypeClass,
@@ -38679,6 +40668,7 @@ __SCHEMA_TYPES = {
38679
40668
  'CorpUserAppearanceSettings': CorpUserAppearanceSettingsClass,
38680
40669
  'CorpUserCredentials': CorpUserCredentialsClass,
38681
40670
  'CorpUserEditableInfo': CorpUserEditableInfoClass,
40671
+ 'CorpUserHomePageSettings': CorpUserHomePageSettingsClass,
38682
40672
  'CorpUserInfo': CorpUserInfoClass,
38683
40673
  'CorpUserSettings': CorpUserSettingsClass,
38684
40674
  'CorpUserStatus': CorpUserStatusClass,
@@ -38721,7 +40711,9 @@ __SCHEMA_TYPES = {
38721
40711
  'DataHubIngestionSourceSourceType': DataHubIngestionSourceSourceTypeClass,
38722
40712
  'LinkPreviewInfo': LinkPreviewInfoClass,
38723
40713
  'LinkPreviewType': LinkPreviewTypeClass,
40714
+ 'LogicalParent': LogicalParentClass,
38724
40715
  'ActionRequestKey': ActionRequestKeyClass,
40716
+ 'ActionWorkflowKey': ActionWorkflowKeyClass,
38725
40717
  'AnomalyKey': AnomalyKeyClass,
38726
40718
  'AssertionKey': AssertionKeyClass,
38727
40719
  'ChartKey': ChartKeyClass,
@@ -38738,6 +40730,8 @@ __SCHEMA_TYPES = {
38738
40730
  'DataHubIngestionSourceKey': DataHubIngestionSourceKeyClass,
38739
40731
  'DataHubMetricCubeKey': DataHubMetricCubeKeyClass,
38740
40732
  'DataHubOpenAPISchemaKey': DataHubOpenAPISchemaKeyClass,
40733
+ 'DataHubPageModuleKey': DataHubPageModuleKeyClass,
40734
+ 'DataHubPageTemplateKey': DataHubPageTemplateKeyClass,
38741
40735
  'DataHubPersonaKey': DataHubPersonaKeyClass,
38742
40736
  'DataHubPolicyKey': DataHubPolicyKeyClass,
38743
40737
  'DataHubRetentionKey': DataHubRetentionKeyClass,
@@ -38862,6 +40856,15 @@ __SCHEMA_TYPES = {
38862
40856
  'SourceCodeUrl': SourceCodeUrlClass,
38863
40857
  'SourceCodeUrlType': SourceCodeUrlTypeClass,
38864
40858
  'TrainingData': TrainingDataClass,
40859
+ 'AssetCollectionModuleParams': AssetCollectionModuleParamsClass,
40860
+ 'DataHubPageModuleParams': DataHubPageModuleParamsClass,
40861
+ 'DataHubPageModuleProperties': DataHubPageModulePropertiesClass,
40862
+ 'DataHubPageModuleType': DataHubPageModuleTypeClass,
40863
+ 'DataHubPageModuleVisibility': DataHubPageModuleVisibilityClass,
40864
+ 'HierarchyModuleParams': HierarchyModuleParamsClass,
40865
+ 'LinkModuleParams': LinkModuleParamsClass,
40866
+ 'PageModuleScope': PageModuleScopeClass,
40867
+ 'RichTextModuleParams': RichTextModuleParamsClass,
38865
40868
  'AssertionEvaluationContext': AssertionEvaluationContextClass,
38866
40869
  'AssertionEvaluationParameters': AssertionEvaluationParametersClass,
38867
40870
  'AssertionEvaluationParametersType': AssertionEvaluationParametersTypeClass,
@@ -38987,9 +40990,11 @@ __SCHEMA_TYPES = {
38987
40990
  'DataHubSecretValue': DataHubSecretValueClass,
38988
40991
  'NotificationSetting': NotificationSettingClass,
38989
40992
  'NotificationSettingValue': NotificationSettingValueClass,
40993
+ 'ApplicationsSettings': ApplicationsSettingsClass,
38990
40994
  'DocPropagationFeatureSettings': DocPropagationFeatureSettingsClass,
38991
40995
  'DocumentationAiSettings': DocumentationAiSettingsClass,
38992
40996
  'EmailIntegrationSettings': EmailIntegrationSettingsClass,
40997
+ 'GlobalHomePageSettings': GlobalHomePageSettingsClass,
38993
40998
  'GlobalIncidentsSettings': GlobalIncidentsSettingsClass,
38994
40999
  'GlobalIntegrationSettings': GlobalIntegrationSettingsClass,
38995
41000
  'GlobalNotificationSettings': GlobalNotificationSettingsClass,
@@ -39017,6 +41022,12 @@ __SCHEMA_TYPES = {
39017
41022
  'SubscriptionType': SubscriptionTypeClass,
39018
41023
  'TagProperties': TagPropertiesClass,
39019
41024
  'TelemetryClientId': TelemetryClientIdClass,
41025
+ 'DataHubPageTemplateProperties': DataHubPageTemplatePropertiesClass,
41026
+ 'DataHubPageTemplateRow': DataHubPageTemplateRowClass,
41027
+ 'DataHubPageTemplateSurface': DataHubPageTemplateSurfaceClass,
41028
+ 'DataHubPageTemplateVisibility': DataHubPageTemplateVisibilityClass,
41029
+ 'PageTemplateScope': PageTemplateScopeClass,
41030
+ 'PageTemplateSurfaceType': PageTemplateSurfaceTypeClass,
39020
41031
  'BatchTestRunEvent': BatchTestRunEventClass,
39021
41032
  'BatchTestRunResult': BatchTestRunResultClass,
39022
41033
  'BatchTestRunStatus': BatchTestRunStatusClass,
@@ -39136,7 +41147,9 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
39136
41147
  CorpGroupKeyClass,
39137
41148
  VersionSetKeyClass,
39138
41149
  AnomalyKeyClass,
41150
+ ActionWorkflowKeyClass,
39139
41151
  ChartKeyClass,
41152
+ DataHubPageTemplateKeyClass,
39140
41153
  OwnershipTypeKeyClass,
39141
41154
  RemoteExecutorPoolKeyClass,
39142
41155
  GenericEntityKeyClass,
@@ -39171,6 +41184,7 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
39171
41184
  GlobalSettingsKeyClass,
39172
41185
  RemoteExecutorGlobalConfigKeyClass,
39173
41186
  ContainerKeyClass,
41187
+ DataHubPageModuleKeyClass,
39174
41188
  LineageFeaturesClass,
39175
41189
  StorageFeaturesClass,
39176
41190
  UsageFeaturesClass,
@@ -39224,6 +41238,7 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
39224
41238
  BusinessAttributeInfoClass,
39225
41239
  BusinessAttributeKeyClass,
39226
41240
  BusinessAttributesClass,
41241
+ LogicalParentClass,
39227
41242
  LinkPreviewInfoClass,
39228
41243
  GlobalSettingsInfoClass,
39229
41244
  TelemetryClientIdClass,
@@ -39291,6 +41306,7 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
39291
41306
  DataContractPropertiesClass,
39292
41307
  DataContractStatusClass,
39293
41308
  MonitorAnomalyEventClass,
41309
+ ActionWorkflowInfoClass,
39294
41310
  DataHubIngestionSourceInfoClass,
39295
41311
  GlossaryTermInfoClass,
39296
41312
  GlossaryNodeInfoClass,
@@ -39311,6 +41327,7 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
39311
41327
  DataProcessInstanceRelationshipsClass,
39312
41328
  DataProcessInstancePropertiesClass,
39313
41329
  RemoteExecutorPoolGlobalConfigClass,
41330
+ DataHubPageTemplatePropertiesClass,
39314
41331
  InferredMetadataClass,
39315
41332
  SchemaFieldsInferredMetadataClass,
39316
41333
  InferredNeighborsClass,
@@ -39326,6 +41343,7 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
39326
41343
  StructuredPropertySettingsClass,
39327
41344
  StructuredPropertiesClass,
39328
41345
  StructuredPropertyDefinitionClass,
41346
+ DataHubPageModulePropertiesClass,
39329
41347
  ExecutionRequestResultClass,
39330
41348
  ExecutionRequestInputClass,
39331
41349
  ExecutionRequestSignalClass,
@@ -39348,7 +41366,7 @@ ASPECT_NAME_MAP: Dict[str, Type[_Aspect]] = {
39348
41366
  for aspect in ASPECT_CLASSES
39349
41367
  }
39350
41368
 
39351
- from typing import Literal
41369
+ from typing import Literal, Set
39352
41370
  from typing_extensions import TypedDict
39353
41371
 
39354
41372
  class AspectBag(TypedDict, total=False):
@@ -39423,7 +41441,9 @@ class AspectBag(TypedDict, total=False):
39423
41441
  corpGroupKey: CorpGroupKeyClass
39424
41442
  versionSetKey: VersionSetKeyClass
39425
41443
  anomalyKey: AnomalyKeyClass
41444
+ actionWorkflowKey: ActionWorkflowKeyClass
39426
41445
  chartKey: ChartKeyClass
41446
+ dataHubPageTemplateKey: DataHubPageTemplateKeyClass
39427
41447
  ownershipTypeKey: OwnershipTypeKeyClass
39428
41448
  dataHubRemoteExecutorPoolKey: RemoteExecutorPoolKeyClass
39429
41449
  genericEntityKey: GenericEntityKeyClass
@@ -39458,6 +41478,7 @@ class AspectBag(TypedDict, total=False):
39458
41478
  globalSettingsKey: GlobalSettingsKeyClass
39459
41479
  dataHubRemoteExecutorGlobalConfigKey: RemoteExecutorGlobalConfigKeyClass
39460
41480
  containerKey: ContainerKeyClass
41481
+ dataHubPageModuleKey: DataHubPageModuleKeyClass
39461
41482
  lineageFeatures: LineageFeaturesClass
39462
41483
  storageFeatures: StorageFeaturesClass
39463
41484
  usageFeatures: UsageFeaturesClass
@@ -39511,6 +41532,7 @@ class AspectBag(TypedDict, total=False):
39511
41532
  businessAttributeInfo: BusinessAttributeInfoClass
39512
41533
  businessAttributeKey: BusinessAttributeKeyClass
39513
41534
  businessAttributes: BusinessAttributesClass
41535
+ logicalParent: LogicalParentClass
39514
41536
  linkPreviewInfo: LinkPreviewInfoClass
39515
41537
  globalSettingsInfo: GlobalSettingsInfoClass
39516
41538
  telemetryClientId: TelemetryClientIdClass
@@ -39578,6 +41600,7 @@ class AspectBag(TypedDict, total=False):
39578
41600
  dataContractProperties: DataContractPropertiesClass
39579
41601
  dataContractStatus: DataContractStatusClass
39580
41602
  monitorAnomalyEvent: MonitorAnomalyEventClass
41603
+ actionWorkflowInfo: ActionWorkflowInfoClass
39581
41604
  dataHubIngestionSourceInfo: DataHubIngestionSourceInfoClass
39582
41605
  glossaryTermInfo: GlossaryTermInfoClass
39583
41606
  glossaryNodeInfo: GlossaryNodeInfoClass
@@ -39598,6 +41621,7 @@ class AspectBag(TypedDict, total=False):
39598
41621
  dataProcessInstanceRelationships: DataProcessInstanceRelationshipsClass
39599
41622
  dataProcessInstanceProperties: DataProcessInstancePropertiesClass
39600
41623
  dataHubRemoteExecutorPoolGlobalConfig: RemoteExecutorPoolGlobalConfigClass
41624
+ dataHubPageTemplateProperties: DataHubPageTemplatePropertiesClass
39601
41625
  inferredMetadata: InferredMetadataClass
39602
41626
  schemaFieldsInferredMetadata: SchemaFieldsInferredMetadataClass
39603
41627
  inferredNeighbors: InferredNeighborsClass
@@ -39613,6 +41637,7 @@ class AspectBag(TypedDict, total=False):
39613
41637
  structuredPropertySettings: StructuredPropertySettingsClass
39614
41638
  structuredProperties: StructuredPropertiesClass
39615
41639
  propertyDefinition: StructuredPropertyDefinitionClass
41640
+ dataHubPageModuleProperties: DataHubPageModulePropertiesClass
39616
41641
  dataHubExecutionRequestResult: ExecutionRequestResultClass
39617
41642
  dataHubExecutionRequestInput: ExecutionRequestInputClass
39618
41643
  dataHubExecutionRequestSignal: ExecutionRequestSignalClass
@@ -39662,7 +41687,9 @@ KEY_ASPECTS: Dict[str, Type[_Aspect]] = {
39662
41687
  'mlPrimaryKey': MLPrimaryKeyKeyClass,
39663
41688
  'corpGroup': CorpGroupKeyClass,
39664
41689
  'versionSet': VersionSetKeyClass,
41690
+ 'actionWorkflow': ActionWorkflowKeyClass,
39665
41691
  'chart': ChartKeyClass,
41692
+ 'dataHubPageTemplate': DataHubPageTemplateKeyClass,
39666
41693
  'ownershipType': OwnershipTypeKeyClass,
39667
41694
  'dataHubRemoteExecutorPool': RemoteExecutorPoolKeyClass,
39668
41695
  'telemetry': TelemetryKeyClass,
@@ -39696,6 +41723,7 @@ KEY_ASPECTS: Dict[str, Type[_Aspect]] = {
39696
41723
  'globalSettings': GlobalSettingsKeyClass,
39697
41724
  'dataHubRemoteExecutorGlobalConfig': RemoteExecutorGlobalConfigKeyClass,
39698
41725
  'container': ContainerKeyClass,
41726
+ 'dataHubPageModule': DataHubPageModuleKeyClass,
39699
41727
  'entityType': EntityTypeKeyClass,
39700
41728
  'dataProduct': DataProductKeyClass,
39701
41729
  'application': ApplicationKeyClass,
@@ -39703,6 +41731,8 @@ KEY_ASPECTS: Dict[str, Type[_Aspect]] = {
39703
41731
  'structuredProperty': StructuredPropertyKeyClass
39704
41732
  }
39705
41733
 
41734
+ KEY_ASPECT_NAMES: Set[str] = {cls.ASPECT_NAME for cls in KEY_ASPECTS.values()}
41735
+
39706
41736
  ENTITY_TYPE_NAMES: List[str] = [
39707
41737
  'platformResource',
39708
41738
  'dataType',
@@ -39735,7 +41765,9 @@ ENTITY_TYPE_NAMES: List[str] = [
39735
41765
  'mlPrimaryKey',
39736
41766
  'corpGroup',
39737
41767
  'versionSet',
41768
+ 'actionWorkflow',
39738
41769
  'chart',
41770
+ 'dataHubPageTemplate',
39739
41771
  'ownershipType',
39740
41772
  'dataHubRemoteExecutorPool',
39741
41773
  'telemetry',
@@ -39769,6 +41801,7 @@ ENTITY_TYPE_NAMES: List[str] = [
39769
41801
  'globalSettings',
39770
41802
  'dataHubRemoteExecutorGlobalConfig',
39771
41803
  'container',
41804
+ 'dataHubPageModule',
39772
41805
  'entityType',
39773
41806
  'dataProduct',
39774
41807
  'application',
@@ -39807,7 +41840,9 @@ EntityTypeName = Literal[
39807
41840
  'mlPrimaryKey',
39808
41841
  'corpGroup',
39809
41842
  'versionSet',
41843
+ 'actionWorkflow',
39810
41844
  'chart',
41845
+ 'dataHubPageTemplate',
39811
41846
  'ownershipType',
39812
41847
  'dataHubRemoteExecutorPool',
39813
41848
  'telemetry',
@@ -39841,6 +41876,7 @@ EntityTypeName = Literal[
39841
41876
  'globalSettings',
39842
41877
  'dataHubRemoteExecutorGlobalConfig',
39843
41878
  'container',
41879
+ 'dataHubPageModule',
39844
41880
  'entityType',
39845
41881
  'dataProduct',
39846
41882
  'application',