acryl-datahub-cloud 0.3.13rc3__py3-none-any.whl → 0.3.13rc4__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.
- acryl_datahub_cloud/_codegen_config.json +1 -1
- acryl_datahub_cloud/metadata/_urns/urn_defs.py +56 -0
- acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/actionworkflow/__init__.py +53 -0
- acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/assertion/__init__.py +0 -2
- acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/metadata/key/__init__.py +2 -0
- acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/module/__init__.py +0 -4
- acryl_datahub_cloud/metadata/schema.avsc +732 -291
- acryl_datahub_cloud/metadata/schema_classes.py +1077 -280
- acryl_datahub_cloud/metadata/schemas/ActionRequestInfo.avsc +136 -1
- acryl_datahub_cloud/metadata/schemas/ActionWorkflowInfo.avsc +683 -0
- acryl_datahub_cloud/metadata/schemas/ActionWorkflowKey.avsc +21 -0
- acryl_datahub_cloud/metadata/schemas/AssertionAnalyticsRunEvent.avsc +0 -46
- acryl_datahub_cloud/metadata/schemas/AssertionInfo.avsc +0 -25
- acryl_datahub_cloud/metadata/schemas/AssertionRunEvent.avsc +0 -25
- acryl_datahub_cloud/metadata/schemas/CorpUserSettings.avsc +1 -10
- acryl_datahub_cloud/metadata/schemas/DataHubPageModuleProperties.avsc +7 -88
- acryl_datahub_cloud/metadata/schemas/DatasetKey.avsc +0 -1
- acryl_datahub_cloud/metadata/schemas/GlobalSettingsInfo.avsc +0 -9
- acryl_datahub_cloud/metadata/schemas/MetadataChangeEvent.avsc +136 -19
- acryl_datahub_cloud/metadata/schemas/MetadataChangeLog.avsc +44 -62
- acryl_datahub_cloud/metadata/schemas/MetadataChangeProposal.avsc +0 -61
- acryl_datahub_cloud/metadata/schemas/MonitorInfo.avsc +0 -25
- acryl_datahub_cloud/metadata/schemas/NotificationRequest.avsc +4 -0
- acryl_datahub_cloud/metadata/schemas/QuerySubjects.avsc +12 -1
- acryl_datahub_cloud/metadata/schemas/SchemaFieldKey.avsc +0 -1
- acryl_datahub_cloud/metadata/schemas/SystemMetadata.avsc +0 -61
- {acryl_datahub_cloud-0.3.13rc3.dist-info → acryl_datahub_cloud-0.3.13rc4.dist-info}/METADATA +52 -52
- {acryl_datahub_cloud-0.3.13rc3.dist-info → acryl_datahub_cloud-0.3.13rc4.dist-info}/RECORD +31 -30
- acryl_datahub_cloud/metadata/com/linkedin/pegasus2avro/logical/__init__.py +0 -15
- acryl_datahub_cloud/metadata/schemas/LogicalParent.avsc +0 -140
- {acryl_datahub_cloud-0.3.13rc3.dist-info → acryl_datahub_cloud-0.3.13rc4.dist-info}/WHEEL +0 -0
- {acryl_datahub_cloud-0.3.13rc3.dist-info → acryl_datahub_cloud-0.3.13rc4.dist-info}/entry_points.txt +0 -0
- {acryl_datahub_cloud-0.3.13rc3.dist-info → acryl_datahub_cloud-0.3.13rc4.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,7 +3280,6 @@ 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,
|
|
2291
|
-
asserteeContainer: Union[None, str]=None,
|
|
2292
3283
|
asserteeDataPlatformInstance: Union[None, str]=None,
|
|
2293
3284
|
asserteeSchemaFieldGlossaryTerms: Union[None, List[str]]=None,
|
|
2294
3285
|
asserteeSchemaFieldTags: Union[None, List[str]]=None,
|
|
@@ -2307,7 +3298,6 @@ class AssertionAnalyticsRunEventClass(_Aspect):
|
|
|
2307
3298
|
self.asserteeGlossaryTerms = asserteeGlossaryTerms
|
|
2308
3299
|
self.asserteeOwners = asserteeOwners
|
|
2309
3300
|
self.asserteeDataPlatform = asserteeDataPlatform
|
|
2310
|
-
self.asserteeContainer = asserteeContainer
|
|
2311
3301
|
self.asserteeDataPlatformInstance = asserteeDataPlatformInstance
|
|
2312
3302
|
self.asserteeSchemaFieldGlossaryTerms = asserteeSchemaFieldGlossaryTerms
|
|
2313
3303
|
self.asserteeSchemaFieldTags = asserteeSchemaFieldTags
|
|
@@ -2334,7 +3324,6 @@ class AssertionAnalyticsRunEventClass(_Aspect):
|
|
|
2334
3324
|
self.asserteeGlossaryTerms = self.RECORD_SCHEMA.fields_dict["asserteeGlossaryTerms"].default
|
|
2335
3325
|
self.asserteeOwners = self.RECORD_SCHEMA.fields_dict["asserteeOwners"].default
|
|
2336
3326
|
self.asserteeDataPlatform = self.RECORD_SCHEMA.fields_dict["asserteeDataPlatform"].default
|
|
2337
|
-
self.asserteeContainer = self.RECORD_SCHEMA.fields_dict["asserteeContainer"].default
|
|
2338
3327
|
self.asserteeDataPlatformInstance = self.RECORD_SCHEMA.fields_dict["asserteeDataPlatformInstance"].default
|
|
2339
3328
|
self.asserteeSchemaFieldGlossaryTerms = self.RECORD_SCHEMA.fields_dict["asserteeSchemaFieldGlossaryTerms"].default
|
|
2340
3329
|
self.asserteeSchemaFieldTags = self.RECORD_SCHEMA.fields_dict["asserteeSchemaFieldTags"].default
|
|
@@ -2430,16 +3419,6 @@ class AssertionAnalyticsRunEventClass(_Aspect):
|
|
|
2430
3419
|
self._inner_dict['asserteeDataPlatform'] = value
|
|
2431
3420
|
|
|
2432
3421
|
|
|
2433
|
-
@property
|
|
2434
|
-
def asserteeContainer(self) -> Union[None, str]:
|
|
2435
|
-
"""The Container attached to the entity's parent Asset"""
|
|
2436
|
-
return self._inner_dict.get('asserteeContainer') # type: ignore
|
|
2437
|
-
|
|
2438
|
-
@asserteeContainer.setter
|
|
2439
|
-
def asserteeContainer(self, value: Union[None, str]) -> None:
|
|
2440
|
-
self._inner_dict['asserteeContainer'] = value
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
3422
|
@property
|
|
2444
3423
|
def asserteeDataPlatformInstance(self) -> Union[None, str]:
|
|
2445
3424
|
"""Instance of the parent's data platform (e.g. db instance)"""
|
|
@@ -2999,7 +3978,6 @@ class AssertionInfoClass(_Aspect):
|
|
|
2999
3978
|
source: Union[None, "AssertionSourceClass"]=None,
|
|
3000
3979
|
lastUpdated: Union[None, "AuditStampClass"]=None,
|
|
3001
3980
|
description: Union[None, str]=None,
|
|
3002
|
-
note: Union[None, "AssertionNoteClass"]=None,
|
|
3003
3981
|
):
|
|
3004
3982
|
super().__init__()
|
|
3005
3983
|
|
|
@@ -3020,7 +3998,6 @@ class AssertionInfoClass(_Aspect):
|
|
|
3020
3998
|
self.source = source
|
|
3021
3999
|
self.lastUpdated = lastUpdated
|
|
3022
4000
|
self.description = description
|
|
3023
|
-
self.note = note
|
|
3024
4001
|
|
|
3025
4002
|
def _restore_defaults(self) -> None:
|
|
3026
4003
|
self.customProperties = dict()
|
|
@@ -3036,7 +4013,6 @@ class AssertionInfoClass(_Aspect):
|
|
|
3036
4013
|
self.source = self.RECORD_SCHEMA.fields_dict["source"].default
|
|
3037
4014
|
self.lastUpdated = self.RECORD_SCHEMA.fields_dict["lastUpdated"].default
|
|
3038
4015
|
self.description = self.RECORD_SCHEMA.fields_dict["description"].default
|
|
3039
|
-
self.note = self.RECORD_SCHEMA.fields_dict["note"].default
|
|
3040
4016
|
|
|
3041
4017
|
|
|
3042
4018
|
@property
|
|
@@ -3173,17 +4149,6 @@ class AssertionInfoClass(_Aspect):
|
|
|
3173
4149
|
self._inner_dict['description'] = value
|
|
3174
4150
|
|
|
3175
4151
|
|
|
3176
|
-
@property
|
|
3177
|
-
def note(self) -> Union[None, "AssertionNoteClass"]:
|
|
3178
|
-
"""An optional note to give technical owners more context about the assertion, and how to troubleshoot it.
|
|
3179
|
-
The UI will render this in markdown format."""
|
|
3180
|
-
return self._inner_dict.get('note') # type: ignore
|
|
3181
|
-
|
|
3182
|
-
@note.setter
|
|
3183
|
-
def note(self, value: Union[None, "AssertionNoteClass"]) -> None:
|
|
3184
|
-
self._inner_dict['note'] = value
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
4152
|
class AssertionMetricClass(DictWrapper):
|
|
3188
4153
|
# No docs available.
|
|
3189
4154
|
|
|
@@ -3247,44 +4212,6 @@ class AssertionMonitorSensitivityClass(DictWrapper):
|
|
|
3247
4212
|
self._inner_dict['level'] = value
|
|
3248
4213
|
|
|
3249
4214
|
|
|
3250
|
-
class AssertionNoteClass(DictWrapper):
|
|
3251
|
-
# No docs available.
|
|
3252
|
-
|
|
3253
|
-
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.assertion.AssertionNote")
|
|
3254
|
-
def __init__(self,
|
|
3255
|
-
content: str,
|
|
3256
|
-
lastModified: "AuditStampClass",
|
|
3257
|
-
):
|
|
3258
|
-
super().__init__()
|
|
3259
|
-
|
|
3260
|
-
self.content = content
|
|
3261
|
-
self.lastModified = lastModified
|
|
3262
|
-
|
|
3263
|
-
def _restore_defaults(self) -> None:
|
|
3264
|
-
self.content = str()
|
|
3265
|
-
self.lastModified = AuditStampClass._construct_with_defaults()
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
@property
|
|
3269
|
-
def content(self) -> str:
|
|
3270
|
-
"""The note to give technical owners more context about the assertion, and how to troubleshoot it."""
|
|
3271
|
-
return self._inner_dict.get('content') # type: ignore
|
|
3272
|
-
|
|
3273
|
-
@content.setter
|
|
3274
|
-
def content(self, value: str) -> None:
|
|
3275
|
-
self._inner_dict['content'] = value
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
@property
|
|
3279
|
-
def lastModified(self) -> "AuditStampClass":
|
|
3280
|
-
"""The time at which the note was last modified."""
|
|
3281
|
-
return self._inner_dict.get('lastModified') # type: ignore
|
|
3282
|
-
|
|
3283
|
-
@lastModified.setter
|
|
3284
|
-
def lastModified(self, value: "AuditStampClass") -> None:
|
|
3285
|
-
self._inner_dict['lastModified'] = value
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
4215
|
class AssertionResultClass(DictWrapper):
|
|
3289
4216
|
"""The result of running an assertion"""
|
|
3290
4217
|
|
|
@@ -17646,6 +18573,12 @@ class NotificationTemplateTypeClass(object):
|
|
|
17646
18573
|
|
|
17647
18574
|
BROADCAST_COMPLIANCE_FORM_PUBLISH = "BROADCAST_COMPLIANCE_FORM_PUBLISH"
|
|
17648
18575
|
|
|
18576
|
+
BROADCAST_NEW_ACTION_WORKFLOW_FORM_REQUEST = "BROADCAST_NEW_ACTION_WORKFLOW_FORM_REQUEST"
|
|
18577
|
+
"""Broadcast that a new action workflow form request has been created or needs review."""
|
|
18578
|
+
|
|
18579
|
+
BROADCAST_ACTION_WORKFLOW_FORM_REQUEST_STATUS_CHANGE = "BROADCAST_ACTION_WORKFLOW_FORM_REQUEST_STATUS_CHANGE"
|
|
18580
|
+
"""Broadcast that an action workflow form request has been completed (approved or denied)."""
|
|
18581
|
+
|
|
17649
18582
|
INVALID_TEMPLATE = "INVALID_TEMPLATE"
|
|
17650
18583
|
|
|
17651
18584
|
|
|
@@ -22055,42 +22988,42 @@ class LinkPreviewTypeClass(object):
|
|
|
22055
22988
|
|
|
22056
22989
|
|
|
22057
22990
|
|
|
22058
|
-
class
|
|
22059
|
-
|
|
22991
|
+
class ActionRequestKeyClass(_Aspect):
|
|
22992
|
+
"""Key for an ActionRequest"""
|
|
22060
22993
|
|
|
22061
22994
|
|
|
22062
|
-
ASPECT_NAME = '
|
|
22063
|
-
ASPECT_INFO = {}
|
|
22064
|
-
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.
|
|
22995
|
+
ASPECT_NAME = 'actionRequestKey'
|
|
22996
|
+
ASPECT_INFO = {'keyForEntity': 'actionRequest', 'entityCategory': 'internal', 'entityAspects': ['actionRequestStatus', 'actionRequestInfo']}
|
|
22997
|
+
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.ActionRequestKey")
|
|
22065
22998
|
|
|
22066
22999
|
def __init__(self,
|
|
22067
|
-
|
|
23000
|
+
id: str,
|
|
22068
23001
|
):
|
|
22069
23002
|
super().__init__()
|
|
22070
23003
|
|
|
22071
|
-
self.
|
|
23004
|
+
self.id = id
|
|
22072
23005
|
|
|
22073
23006
|
def _restore_defaults(self) -> None:
|
|
22074
|
-
self.
|
|
23007
|
+
self.id = str()
|
|
22075
23008
|
|
|
22076
23009
|
|
|
22077
23010
|
@property
|
|
22078
|
-
def
|
|
23011
|
+
def id(self) -> str:
|
|
22079
23012
|
# No docs available.
|
|
22080
|
-
return self._inner_dict.get('
|
|
23013
|
+
return self._inner_dict.get('id') # type: ignore
|
|
22081
23014
|
|
|
22082
|
-
@
|
|
22083
|
-
def
|
|
22084
|
-
self._inner_dict['
|
|
23015
|
+
@id.setter
|
|
23016
|
+
def id(self, value: str) -> None:
|
|
23017
|
+
self._inner_dict['id'] = value
|
|
22085
23018
|
|
|
22086
23019
|
|
|
22087
|
-
class
|
|
22088
|
-
"""Key for an
|
|
23020
|
+
class ActionWorkflowKeyClass(_Aspect):
|
|
23021
|
+
"""Key for an ActionRequestWorkflow"""
|
|
22089
23022
|
|
|
22090
23023
|
|
|
22091
|
-
ASPECT_NAME = '
|
|
22092
|
-
ASPECT_INFO = {'keyForEntity': '
|
|
22093
|
-
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.
|
|
23024
|
+
ASPECT_NAME = 'actionWorkflowKey'
|
|
23025
|
+
ASPECT_INFO = {'keyForEntity': 'actionWorkflow', 'entityCategory': 'internal', 'entityAspects': ['actionWorkflowInfo']}
|
|
23026
|
+
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.ActionWorkflowKey")
|
|
22094
23027
|
|
|
22095
23028
|
def __init__(self,
|
|
22096
23029
|
id: str,
|
|
@@ -22105,7 +23038,7 @@ class ActionRequestKeyClass(_Aspect):
|
|
|
22105
23038
|
|
|
22106
23039
|
@property
|
|
22107
23040
|
def id(self) -> str:
|
|
22108
|
-
|
|
23041
|
+
""" The unique identifier for the workflow """
|
|
22109
23042
|
return self._inner_dict.get('id') # type: ignore
|
|
22110
23043
|
|
|
22111
23044
|
@id.setter
|
|
@@ -23135,7 +24068,7 @@ class DatasetKeyClass(_Aspect):
|
|
|
23135
24068
|
|
|
23136
24069
|
|
|
23137
24070
|
ASPECT_NAME = 'datasetKey'
|
|
23138
|
-
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', '
|
|
24071
|
+
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.'}
|
|
23139
24072
|
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.DatasetKey")
|
|
23140
24073
|
|
|
23141
24074
|
def __init__(self,
|
|
@@ -24163,7 +25096,7 @@ class SchemaFieldKeyClass(_Aspect):
|
|
|
24163
25096
|
|
|
24164
25097
|
|
|
24165
25098
|
ASPECT_NAME = 'schemaFieldKey'
|
|
24166
|
-
ASPECT_INFO = {'keyForEntity': 'schemaField', 'entityCategory': 'core', 'entityAspects': ['schemafieldInfo', 'structuredProperties', 'forms', 'businessAttributes', 'status', 'schemaFieldAliases', 'documentation', 'testResults', 'deprecation', 'subTypes', '
|
|
25099
|
+
ASPECT_INFO = {'keyForEntity': 'schemaField', 'entityCategory': 'core', 'entityAspects': ['schemafieldInfo', 'structuredProperties', 'forms', 'businessAttributes', 'status', 'schemaFieldAliases', 'documentation', 'testResults', 'deprecation', 'subTypes', 'schemaFieldProfile', 'lineageFeatures']}
|
|
24167
25100
|
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.metadata.key.SchemaFieldKey")
|
|
24168
25101
|
|
|
24169
25102
|
def __init__(self,
|
|
@@ -28412,31 +29345,6 @@ class TrainingDataClass(_Aspect):
|
|
|
28412
29345
|
self._inner_dict['trainingData'] = value
|
|
28413
29346
|
|
|
28414
29347
|
|
|
28415
|
-
class AssetCollectionModuleParamsClass(DictWrapper):
|
|
28416
|
-
"""The params required if the module is type ASSET_COLLECTION"""
|
|
28417
|
-
|
|
28418
|
-
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.AssetCollectionModuleParams")
|
|
28419
|
-
def __init__(self,
|
|
28420
|
-
assetUrns: List[str],
|
|
28421
|
-
):
|
|
28422
|
-
super().__init__()
|
|
28423
|
-
|
|
28424
|
-
self.assetUrns = assetUrns
|
|
28425
|
-
|
|
28426
|
-
def _restore_defaults(self) -> None:
|
|
28427
|
-
self.assetUrns = list()
|
|
28428
|
-
|
|
28429
|
-
|
|
28430
|
-
@property
|
|
28431
|
-
def assetUrns(self) -> List[str]:
|
|
28432
|
-
# No docs available.
|
|
28433
|
-
return self._inner_dict.get('assetUrns') # type: ignore
|
|
28434
|
-
|
|
28435
|
-
@assetUrns.setter
|
|
28436
|
-
def assetUrns(self, value: List[str]) -> None:
|
|
28437
|
-
self._inner_dict['assetUrns'] = value
|
|
28438
|
-
|
|
28439
|
-
|
|
28440
29348
|
class DataHubPageModuleParamsClass(DictWrapper):
|
|
28441
29349
|
"""The specific parameters stored for a module"""
|
|
28442
29350
|
|
|
@@ -28444,21 +29352,15 @@ class DataHubPageModuleParamsClass(DictWrapper):
|
|
|
28444
29352
|
def __init__(self,
|
|
28445
29353
|
linkParams: Union[None, "LinkModuleParamsClass"]=None,
|
|
28446
29354
|
richTextParams: Union[None, "RichTextModuleParamsClass"]=None,
|
|
28447
|
-
assetCollectionParams: Union[None, "AssetCollectionModuleParamsClass"]=None,
|
|
28448
|
-
hierarchyViewParams: Union[None, "HierarchyModuleParamsClass"]=None,
|
|
28449
29355
|
):
|
|
28450
29356
|
super().__init__()
|
|
28451
29357
|
|
|
28452
29358
|
self.linkParams = linkParams
|
|
28453
29359
|
self.richTextParams = richTextParams
|
|
28454
|
-
self.assetCollectionParams = assetCollectionParams
|
|
28455
|
-
self.hierarchyViewParams = hierarchyViewParams
|
|
28456
29360
|
|
|
28457
29361
|
def _restore_defaults(self) -> None:
|
|
28458
29362
|
self.linkParams = self.RECORD_SCHEMA.fields_dict["linkParams"].default
|
|
28459
29363
|
self.richTextParams = self.RECORD_SCHEMA.fields_dict["richTextParams"].default
|
|
28460
|
-
self.assetCollectionParams = self.RECORD_SCHEMA.fields_dict["assetCollectionParams"].default
|
|
28461
|
-
self.hierarchyViewParams = self.RECORD_SCHEMA.fields_dict["hierarchyViewParams"].default
|
|
28462
29364
|
|
|
28463
29365
|
|
|
28464
29366
|
@property
|
|
@@ -28481,26 +29383,6 @@ class DataHubPageModuleParamsClass(DictWrapper):
|
|
|
28481
29383
|
self._inner_dict['richTextParams'] = value
|
|
28482
29384
|
|
|
28483
29385
|
|
|
28484
|
-
@property
|
|
28485
|
-
def assetCollectionParams(self) -> Union[None, "AssetCollectionModuleParamsClass"]:
|
|
28486
|
-
"""The params required if the module is type ASSET_COLLECTION"""
|
|
28487
|
-
return self._inner_dict.get('assetCollectionParams') # type: ignore
|
|
28488
|
-
|
|
28489
|
-
@assetCollectionParams.setter
|
|
28490
|
-
def assetCollectionParams(self, value: Union[None, "AssetCollectionModuleParamsClass"]) -> None:
|
|
28491
|
-
self._inner_dict['assetCollectionParams'] = value
|
|
28492
|
-
|
|
28493
|
-
|
|
28494
|
-
@property
|
|
28495
|
-
def hierarchyViewParams(self) -> Union[None, "HierarchyModuleParamsClass"]:
|
|
28496
|
-
"""The params required if the module is type HIERARCHY_VIEW"""
|
|
28497
|
-
return self._inner_dict.get('hierarchyViewParams') # type: ignore
|
|
28498
|
-
|
|
28499
|
-
@hierarchyViewParams.setter
|
|
28500
|
-
def hierarchyViewParams(self, value: Union[None, "HierarchyModuleParamsClass"]) -> None:
|
|
28501
|
-
self._inner_dict['hierarchyViewParams'] = value
|
|
28502
|
-
|
|
28503
|
-
|
|
28504
29386
|
class DataHubPageModulePropertiesClass(_Aspect):
|
|
28505
29387
|
"""The main properties of a DataHub page module"""
|
|
28506
29388
|
|
|
@@ -28616,9 +29498,6 @@ class DataHubPageModuleTypeClass(object):
|
|
|
28616
29498
|
DOMAINS = "DOMAINS"
|
|
28617
29499
|
"""Module displaying the top domains"""
|
|
28618
29500
|
|
|
28619
|
-
SUBSCRIBED_ASSETS = "SUBSCRIBED_ASSETS"
|
|
28620
|
-
"""Module displaying assets subscribed to by a given user"""
|
|
28621
|
-
|
|
28622
29501
|
|
|
28623
29502
|
|
|
28624
29503
|
class DataHubPageModuleVisibilityClass(DictWrapper):
|
|
@@ -28646,110 +29525,29 @@ class DataHubPageModuleVisibilityClass(DictWrapper):
|
|
|
28646
29525
|
self._inner_dict['scope'] = value
|
|
28647
29526
|
|
|
28648
29527
|
|
|
28649
|
-
class HierarchyModuleParamsClass(DictWrapper):
|
|
28650
|
-
"""The params required if the module is type HIERARCHY_VIEW"""
|
|
28651
|
-
|
|
28652
|
-
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.HierarchyModuleParams")
|
|
28653
|
-
def __init__(self,
|
|
28654
|
-
showRelatedEntities: bool,
|
|
28655
|
-
assetUrns: Union[None, List[str]]=None,
|
|
28656
|
-
relatedEntitiesFilterJson: Union[None, str]=None,
|
|
28657
|
-
):
|
|
28658
|
-
super().__init__()
|
|
28659
|
-
|
|
28660
|
-
self.assetUrns = assetUrns
|
|
28661
|
-
self.showRelatedEntities = showRelatedEntities
|
|
28662
|
-
self.relatedEntitiesFilterJson = relatedEntitiesFilterJson
|
|
28663
|
-
|
|
28664
|
-
def _restore_defaults(self) -> None:
|
|
28665
|
-
self.assetUrns = self.RECORD_SCHEMA.fields_dict["assetUrns"].default
|
|
28666
|
-
self.showRelatedEntities = bool()
|
|
28667
|
-
self.relatedEntitiesFilterJson = self.RECORD_SCHEMA.fields_dict["relatedEntitiesFilterJson"].default
|
|
28668
|
-
|
|
28669
|
-
|
|
28670
|
-
@property
|
|
28671
|
-
def assetUrns(self) -> Union[None, List[str]]:
|
|
28672
|
-
# No docs available.
|
|
28673
|
-
return self._inner_dict.get('assetUrns') # type: ignore
|
|
28674
|
-
|
|
28675
|
-
@assetUrns.setter
|
|
28676
|
-
def assetUrns(self, value: Union[None, List[str]]) -> None:
|
|
28677
|
-
self._inner_dict['assetUrns'] = value
|
|
28678
|
-
|
|
28679
|
-
|
|
28680
|
-
@property
|
|
28681
|
-
def showRelatedEntities(self) -> bool:
|
|
28682
|
-
# No docs available.
|
|
28683
|
-
return self._inner_dict.get('showRelatedEntities') # type: ignore
|
|
28684
|
-
|
|
28685
|
-
@showRelatedEntities.setter
|
|
28686
|
-
def showRelatedEntities(self, value: bool) -> None:
|
|
28687
|
-
self._inner_dict['showRelatedEntities'] = value
|
|
28688
|
-
|
|
28689
|
-
|
|
28690
|
-
@property
|
|
28691
|
-
def relatedEntitiesFilterJson(self) -> Union[None, str]:
|
|
28692
|
-
"""Optional filters to filter relatedEntities (assetUrns) out
|
|
28693
|
-
|
|
28694
|
-
The stringified json representing the logical predicate built in the UI to select assets.
|
|
28695
|
-
This predicate is turned into orFilters to send through graphql since graphql doesn't support
|
|
28696
|
-
arbitrary nesting. This string is used to restore the UI for this logical predicate."""
|
|
28697
|
-
return self._inner_dict.get('relatedEntitiesFilterJson') # type: ignore
|
|
28698
|
-
|
|
28699
|
-
@relatedEntitiesFilterJson.setter
|
|
28700
|
-
def relatedEntitiesFilterJson(self, value: Union[None, str]) -> None:
|
|
28701
|
-
self._inner_dict['relatedEntitiesFilterJson'] = value
|
|
28702
|
-
|
|
28703
|
-
|
|
28704
29528
|
class LinkModuleParamsClass(DictWrapper):
|
|
28705
29529
|
# No docs available.
|
|
28706
29530
|
|
|
28707
29531
|
RECORD_SCHEMA = get_schema_type("com.linkedin.pegasus2avro.module.LinkModuleParams")
|
|
28708
29532
|
def __init__(self,
|
|
28709
|
-
|
|
28710
|
-
imageUrl: Union[None, str]=None,
|
|
28711
|
-
description: Union[None, str]=None,
|
|
29533
|
+
linkUrn: str,
|
|
28712
29534
|
):
|
|
28713
29535
|
super().__init__()
|
|
28714
29536
|
|
|
28715
|
-
self.
|
|
28716
|
-
self.imageUrl = imageUrl
|
|
28717
|
-
self.description = description
|
|
29537
|
+
self.linkUrn = linkUrn
|
|
28718
29538
|
|
|
28719
29539
|
def _restore_defaults(self) -> None:
|
|
28720
|
-
self.
|
|
28721
|
-
self.imageUrl = self.RECORD_SCHEMA.fields_dict["imageUrl"].default
|
|
28722
|
-
self.description = self.RECORD_SCHEMA.fields_dict["description"].default
|
|
28723
|
-
|
|
28724
|
-
|
|
28725
|
-
@property
|
|
28726
|
-
def linkUrl(self) -> str:
|
|
28727
|
-
# No docs available.
|
|
28728
|
-
return self._inner_dict.get('linkUrl') # type: ignore
|
|
28729
|
-
|
|
28730
|
-
@linkUrl.setter
|
|
28731
|
-
def linkUrl(self, value: str) -> None:
|
|
28732
|
-
self._inner_dict['linkUrl'] = value
|
|
29540
|
+
self.linkUrn = str()
|
|
28733
29541
|
|
|
28734
29542
|
|
|
28735
29543
|
@property
|
|
28736
|
-
def
|
|
29544
|
+
def linkUrn(self) -> str:
|
|
28737
29545
|
# No docs available.
|
|
28738
|
-
return self._inner_dict.get('
|
|
28739
|
-
|
|
28740
|
-
@imageUrl.setter
|
|
28741
|
-
def imageUrl(self, value: Union[None, str]) -> None:
|
|
28742
|
-
self._inner_dict['imageUrl'] = value
|
|
29546
|
+
return self._inner_dict.get('linkUrn') # type: ignore
|
|
28743
29547
|
|
|
28744
|
-
|
|
28745
|
-
|
|
28746
|
-
|
|
28747
|
-
# No docs available.
|
|
28748
|
-
return self._inner_dict.get('description') # type: ignore
|
|
28749
|
-
|
|
28750
|
-
@description.setter
|
|
28751
|
-
def description(self, value: Union[None, str]) -> None:
|
|
28752
|
-
self._inner_dict['description'] = value
|
|
29548
|
+
@linkUrn.setter
|
|
29549
|
+
def linkUrn(self, value: str) -> None:
|
|
29550
|
+
self._inner_dict['linkUrn'] = value
|
|
28753
29551
|
|
|
28754
29552
|
|
|
28755
29553
|
class PageModuleScopeClass(object):
|
|
@@ -30686,8 +31484,6 @@ class SystemMetadataClass(_Aspect):
|
|
|
30686
31484
|
registryVersion: Union[None, str]=None,
|
|
30687
31485
|
properties: Union[None, Dict[str, str]]=None,
|
|
30688
31486
|
version: Union[None, str]=None,
|
|
30689
|
-
aspectCreated: Union[None, "AuditStampClass"]=None,
|
|
30690
|
-
aspectModified: Union[None, "AuditStampClass"]=None,
|
|
30691
31487
|
):
|
|
30692
31488
|
super().__init__()
|
|
30693
31489
|
|
|
@@ -30711,8 +31507,6 @@ class SystemMetadataClass(_Aspect):
|
|
|
30711
31507
|
self.registryVersion = registryVersion
|
|
30712
31508
|
self.properties = properties
|
|
30713
31509
|
self.version = version
|
|
30714
|
-
self.aspectCreated = aspectCreated
|
|
30715
|
-
self.aspectModified = aspectModified
|
|
30716
31510
|
|
|
30717
31511
|
def _restore_defaults(self) -> None:
|
|
30718
31512
|
self.lastObserved = self.RECORD_SCHEMA.fields_dict["lastObserved"].default
|
|
@@ -30723,8 +31517,6 @@ class SystemMetadataClass(_Aspect):
|
|
|
30723
31517
|
self.registryVersion = self.RECORD_SCHEMA.fields_dict["registryVersion"].default
|
|
30724
31518
|
self.properties = self.RECORD_SCHEMA.fields_dict["properties"].default
|
|
30725
31519
|
self.version = self.RECORD_SCHEMA.fields_dict["version"].default
|
|
30726
|
-
self.aspectCreated = self.RECORD_SCHEMA.fields_dict["aspectCreated"].default
|
|
30727
|
-
self.aspectModified = self.RECORD_SCHEMA.fields_dict["aspectModified"].default
|
|
30728
31520
|
|
|
30729
31521
|
|
|
30730
31522
|
@property
|
|
@@ -30809,26 +31601,6 @@ class SystemMetadataClass(_Aspect):
|
|
|
30809
31601
|
self._inner_dict['version'] = value
|
|
30810
31602
|
|
|
30811
31603
|
|
|
30812
|
-
@property
|
|
30813
|
-
def aspectCreated(self) -> Union[None, "AuditStampClass"]:
|
|
30814
|
-
"""When the aspect was initially created and who created it, detected by version 0 -> 1 change"""
|
|
30815
|
-
return self._inner_dict.get('aspectCreated') # type: ignore
|
|
30816
|
-
|
|
30817
|
-
@aspectCreated.setter
|
|
30818
|
-
def aspectCreated(self, value: Union[None, "AuditStampClass"]) -> None:
|
|
30819
|
-
self._inner_dict['aspectCreated'] = value
|
|
30820
|
-
|
|
30821
|
-
|
|
30822
|
-
@property
|
|
30823
|
-
def aspectModified(self) -> Union[None, "AuditStampClass"]:
|
|
30824
|
-
"""When the aspect was last modified and the actor that performed the modification"""
|
|
30825
|
-
return self._inner_dict.get('aspectModified') # type: ignore
|
|
30826
|
-
|
|
30827
|
-
@aspectModified.setter
|
|
30828
|
-
def aspectModified(self, value: Union[None, "AuditStampClass"]) -> None:
|
|
30829
|
-
self._inner_dict['aspectModified'] = value
|
|
30830
|
-
|
|
30831
|
-
|
|
30832
31604
|
class ChartCellClass(DictWrapper):
|
|
30833
31605
|
"""Chart cell in a notebook, which will present content in chart format"""
|
|
30834
31606
|
|
|
@@ -35641,7 +36413,6 @@ class SlackIntegrationSettingsClass(DictWrapper):
|
|
|
35641
36413
|
enabled: Optional[bool]=None,
|
|
35642
36414
|
encryptedBotToken: Union[None, str]=None,
|
|
35643
36415
|
defaultChannelName: Union[None, str]=None,
|
|
35644
|
-
datahubAtMentionEnabled: Union[None, bool]=None,
|
|
35645
36416
|
):
|
|
35646
36417
|
super().__init__()
|
|
35647
36418
|
|
|
@@ -35652,13 +36423,11 @@ class SlackIntegrationSettingsClass(DictWrapper):
|
|
|
35652
36423
|
self.enabled = enabled
|
|
35653
36424
|
self.encryptedBotToken = encryptedBotToken
|
|
35654
36425
|
self.defaultChannelName = defaultChannelName
|
|
35655
|
-
self.datahubAtMentionEnabled = datahubAtMentionEnabled
|
|
35656
36426
|
|
|
35657
36427
|
def _restore_defaults(self) -> None:
|
|
35658
36428
|
self.enabled = self.RECORD_SCHEMA.fields_dict["enabled"].default
|
|
35659
36429
|
self.encryptedBotToken = self.RECORD_SCHEMA.fields_dict["encryptedBotToken"].default
|
|
35660
36430
|
self.defaultChannelName = self.RECORD_SCHEMA.fields_dict["defaultChannelName"].default
|
|
35661
|
-
self.datahubAtMentionEnabled = self.RECORD_SCHEMA.fields_dict["datahubAtMentionEnabled"].default
|
|
35662
36431
|
|
|
35663
36432
|
|
|
35664
36433
|
@property
|
|
@@ -35694,17 +36463,6 @@ class SlackIntegrationSettingsClass(DictWrapper):
|
|
|
35694
36463
|
self._inner_dict['defaultChannelName'] = value
|
|
35695
36464
|
|
|
35696
36465
|
|
|
35697
|
-
@property
|
|
35698
|
-
def datahubAtMentionEnabled(self) -> Union[None, bool]:
|
|
35699
|
-
"""Whether the Slack @DataHub bot mention functionality is enabled.
|
|
35700
|
-
If null, use the default value from feature flags."""
|
|
35701
|
-
return self._inner_dict.get('datahubAtMentionEnabled') # type: ignore
|
|
35702
|
-
|
|
35703
|
-
@datahubAtMentionEnabled.setter
|
|
35704
|
-
def datahubAtMentionEnabled(self, value: Union[None, bool]) -> None:
|
|
35705
|
-
self._inner_dict['datahubAtMentionEnabled'] = value
|
|
35706
|
-
|
|
35707
|
-
|
|
35708
36466
|
class SsoSettingsClass(DictWrapper):
|
|
35709
36467
|
"""SSO Integrations, supported on the UI."""
|
|
35710
36468
|
|
|
@@ -38545,6 +39303,26 @@ __SCHEMA_TYPES = {
|
|
|
38545
39303
|
'com.linkedin.pegasus2avro.actionrequest.OwnerProposal': OwnerProposalClass,
|
|
38546
39304
|
'com.linkedin.pegasus2avro.actionrequest.StructuredPropertyProposal': StructuredPropertyProposalClass,
|
|
38547
39305
|
'com.linkedin.pegasus2avro.actionrequest.TagProposal': TagProposalClass,
|
|
39306
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowCategory': ActionWorkflowCategoryClass,
|
|
39307
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowEntrypoint': ActionWorkflowEntrypointClass,
|
|
39308
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowEntrypointType': ActionWorkflowEntrypointTypeClass,
|
|
39309
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowField': ActionWorkflowFieldClass,
|
|
39310
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFieldCondition': ActionWorkflowFieldConditionClass,
|
|
39311
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFieldConditionType': ActionWorkflowFieldConditionTypeClass,
|
|
39312
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowForm': ActionWorkflowFormClass,
|
|
39313
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFormRequest': ActionWorkflowFormRequestClass,
|
|
39314
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowFormRequestField': ActionWorkflowFormRequestFieldClass,
|
|
39315
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowInfo': ActionWorkflowInfoClass,
|
|
39316
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowRequestAccess': ActionWorkflowRequestAccessClass,
|
|
39317
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowRequestStepState': ActionWorkflowRequestStepStateClass,
|
|
39318
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowSingleFieldValueCondition': ActionWorkflowSingleFieldValueConditionClass,
|
|
39319
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStep': ActionWorkflowStepClass,
|
|
39320
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepActors': ActionWorkflowStepActorsClass,
|
|
39321
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepDynamicAssignment': ActionWorkflowStepDynamicAssignmentClass,
|
|
39322
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepDynamicAssignmentType': ActionWorkflowStepDynamicAssignmentTypeClass,
|
|
39323
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowStepType': ActionWorkflowStepTypeClass,
|
|
39324
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowTrigger': ActionWorkflowTriggerClass,
|
|
39325
|
+
'com.linkedin.pegasus2avro.actionworkflow.ActionWorkflowTriggerType': ActionWorkflowTriggerTypeClass,
|
|
38548
39326
|
'com.linkedin.pegasus2avro.ai.AiInferenceMetadata': AiInferenceMetadataClass,
|
|
38549
39327
|
'com.linkedin.pegasus2avro.ai.EntityInferenceMetadata': EntityInferenceMetadataClass,
|
|
38550
39328
|
'com.linkedin.pegasus2avro.ai.GlossaryTermsInferenceMetadata': GlossaryTermsInferenceMetadataClass,
|
|
@@ -38572,7 +39350,6 @@ __SCHEMA_TYPES = {
|
|
|
38572
39350
|
'com.linkedin.pegasus2avro.assertion.AssertionInfo': AssertionInfoClass,
|
|
38573
39351
|
'com.linkedin.pegasus2avro.assertion.AssertionMetric': AssertionMetricClass,
|
|
38574
39352
|
'com.linkedin.pegasus2avro.assertion.AssertionMonitorSensitivity': AssertionMonitorSensitivityClass,
|
|
38575
|
-
'com.linkedin.pegasus2avro.assertion.AssertionNote': AssertionNoteClass,
|
|
38576
39353
|
'com.linkedin.pegasus2avro.assertion.AssertionResult': AssertionResultClass,
|
|
38577
39354
|
'com.linkedin.pegasus2avro.assertion.AssertionResultError': AssertionResultErrorClass,
|
|
38578
39355
|
'com.linkedin.pegasus2avro.assertion.AssertionResultErrorType': AssertionResultErrorTypeClass,
|
|
@@ -38904,8 +39681,8 @@ __SCHEMA_TYPES = {
|
|
|
38904
39681
|
'com.linkedin.pegasus2avro.ingestion.DataHubIngestionSourceSourceType': DataHubIngestionSourceSourceTypeClass,
|
|
38905
39682
|
'com.linkedin.pegasus2avro.link.LinkPreviewInfo': LinkPreviewInfoClass,
|
|
38906
39683
|
'com.linkedin.pegasus2avro.link.LinkPreviewType': LinkPreviewTypeClass,
|
|
38907
|
-
'com.linkedin.pegasus2avro.logical.LogicalParent': LogicalParentClass,
|
|
38908
39684
|
'com.linkedin.pegasus2avro.metadata.key.ActionRequestKey': ActionRequestKeyClass,
|
|
39685
|
+
'com.linkedin.pegasus2avro.metadata.key.ActionWorkflowKey': ActionWorkflowKeyClass,
|
|
38909
39686
|
'com.linkedin.pegasus2avro.metadata.key.AnomalyKey': AnomalyKeyClass,
|
|
38910
39687
|
'com.linkedin.pegasus2avro.metadata.key.AssertionKey': AssertionKeyClass,
|
|
38911
39688
|
'com.linkedin.pegasus2avro.metadata.key.ChartKey': ChartKeyClass,
|
|
@@ -39048,12 +39825,10 @@ __SCHEMA_TYPES = {
|
|
|
39048
39825
|
'com.linkedin.pegasus2avro.ml.metadata.SourceCodeUrl': SourceCodeUrlClass,
|
|
39049
39826
|
'com.linkedin.pegasus2avro.ml.metadata.SourceCodeUrlType': SourceCodeUrlTypeClass,
|
|
39050
39827
|
'com.linkedin.pegasus2avro.ml.metadata.TrainingData': TrainingDataClass,
|
|
39051
|
-
'com.linkedin.pegasus2avro.module.AssetCollectionModuleParams': AssetCollectionModuleParamsClass,
|
|
39052
39828
|
'com.linkedin.pegasus2avro.module.DataHubPageModuleParams': DataHubPageModuleParamsClass,
|
|
39053
39829
|
'com.linkedin.pegasus2avro.module.DataHubPageModuleProperties': DataHubPageModulePropertiesClass,
|
|
39054
39830
|
'com.linkedin.pegasus2avro.module.DataHubPageModuleType': DataHubPageModuleTypeClass,
|
|
39055
39831
|
'com.linkedin.pegasus2avro.module.DataHubPageModuleVisibility': DataHubPageModuleVisibilityClass,
|
|
39056
|
-
'com.linkedin.pegasus2avro.module.HierarchyModuleParams': HierarchyModuleParamsClass,
|
|
39057
39832
|
'com.linkedin.pegasus2avro.module.LinkModuleParams': LinkModuleParamsClass,
|
|
39058
39833
|
'com.linkedin.pegasus2avro.module.PageModuleScope': PageModuleScopeClass,
|
|
39059
39834
|
'com.linkedin.pegasus2avro.module.RichTextModuleParams': RichTextModuleParamsClass,
|
|
@@ -39284,6 +40059,26 @@ __SCHEMA_TYPES = {
|
|
|
39284
40059
|
'OwnerProposal': OwnerProposalClass,
|
|
39285
40060
|
'StructuredPropertyProposal': StructuredPropertyProposalClass,
|
|
39286
40061
|
'TagProposal': TagProposalClass,
|
|
40062
|
+
'ActionWorkflowCategory': ActionWorkflowCategoryClass,
|
|
40063
|
+
'ActionWorkflowEntrypoint': ActionWorkflowEntrypointClass,
|
|
40064
|
+
'ActionWorkflowEntrypointType': ActionWorkflowEntrypointTypeClass,
|
|
40065
|
+
'ActionWorkflowField': ActionWorkflowFieldClass,
|
|
40066
|
+
'ActionWorkflowFieldCondition': ActionWorkflowFieldConditionClass,
|
|
40067
|
+
'ActionWorkflowFieldConditionType': ActionWorkflowFieldConditionTypeClass,
|
|
40068
|
+
'ActionWorkflowForm': ActionWorkflowFormClass,
|
|
40069
|
+
'ActionWorkflowFormRequest': ActionWorkflowFormRequestClass,
|
|
40070
|
+
'ActionWorkflowFormRequestField': ActionWorkflowFormRequestFieldClass,
|
|
40071
|
+
'ActionWorkflowInfo': ActionWorkflowInfoClass,
|
|
40072
|
+
'ActionWorkflowRequestAccess': ActionWorkflowRequestAccessClass,
|
|
40073
|
+
'ActionWorkflowRequestStepState': ActionWorkflowRequestStepStateClass,
|
|
40074
|
+
'ActionWorkflowSingleFieldValueCondition': ActionWorkflowSingleFieldValueConditionClass,
|
|
40075
|
+
'ActionWorkflowStep': ActionWorkflowStepClass,
|
|
40076
|
+
'ActionWorkflowStepActors': ActionWorkflowStepActorsClass,
|
|
40077
|
+
'ActionWorkflowStepDynamicAssignment': ActionWorkflowStepDynamicAssignmentClass,
|
|
40078
|
+
'ActionWorkflowStepDynamicAssignmentType': ActionWorkflowStepDynamicAssignmentTypeClass,
|
|
40079
|
+
'ActionWorkflowStepType': ActionWorkflowStepTypeClass,
|
|
40080
|
+
'ActionWorkflowTrigger': ActionWorkflowTriggerClass,
|
|
40081
|
+
'ActionWorkflowTriggerType': ActionWorkflowTriggerTypeClass,
|
|
39287
40082
|
'AiInferenceMetadata': AiInferenceMetadataClass,
|
|
39288
40083
|
'EntityInferenceMetadata': EntityInferenceMetadataClass,
|
|
39289
40084
|
'GlossaryTermsInferenceMetadata': GlossaryTermsInferenceMetadataClass,
|
|
@@ -39311,7 +40106,6 @@ __SCHEMA_TYPES = {
|
|
|
39311
40106
|
'AssertionInfo': AssertionInfoClass,
|
|
39312
40107
|
'AssertionMetric': AssertionMetricClass,
|
|
39313
40108
|
'AssertionMonitorSensitivity': AssertionMonitorSensitivityClass,
|
|
39314
|
-
'AssertionNote': AssertionNoteClass,
|
|
39315
40109
|
'AssertionResult': AssertionResultClass,
|
|
39316
40110
|
'AssertionResultError': AssertionResultErrorClass,
|
|
39317
40111
|
'AssertionResultErrorType': AssertionResultErrorTypeClass,
|
|
@@ -39643,8 +40437,8 @@ __SCHEMA_TYPES = {
|
|
|
39643
40437
|
'DataHubIngestionSourceSourceType': DataHubIngestionSourceSourceTypeClass,
|
|
39644
40438
|
'LinkPreviewInfo': LinkPreviewInfoClass,
|
|
39645
40439
|
'LinkPreviewType': LinkPreviewTypeClass,
|
|
39646
|
-
'LogicalParent': LogicalParentClass,
|
|
39647
40440
|
'ActionRequestKey': ActionRequestKeyClass,
|
|
40441
|
+
'ActionWorkflowKey': ActionWorkflowKeyClass,
|
|
39648
40442
|
'AnomalyKey': AnomalyKeyClass,
|
|
39649
40443
|
'AssertionKey': AssertionKeyClass,
|
|
39650
40444
|
'ChartKey': ChartKeyClass,
|
|
@@ -39787,12 +40581,10 @@ __SCHEMA_TYPES = {
|
|
|
39787
40581
|
'SourceCodeUrl': SourceCodeUrlClass,
|
|
39788
40582
|
'SourceCodeUrlType': SourceCodeUrlTypeClass,
|
|
39789
40583
|
'TrainingData': TrainingDataClass,
|
|
39790
|
-
'AssetCollectionModuleParams': AssetCollectionModuleParamsClass,
|
|
39791
40584
|
'DataHubPageModuleParams': DataHubPageModuleParamsClass,
|
|
39792
40585
|
'DataHubPageModuleProperties': DataHubPageModulePropertiesClass,
|
|
39793
40586
|
'DataHubPageModuleType': DataHubPageModuleTypeClass,
|
|
39794
40587
|
'DataHubPageModuleVisibility': DataHubPageModuleVisibilityClass,
|
|
39795
|
-
'HierarchyModuleParams': HierarchyModuleParamsClass,
|
|
39796
40588
|
'LinkModuleParams': LinkModuleParamsClass,
|
|
39797
40589
|
'PageModuleScope': PageModuleScopeClass,
|
|
39798
40590
|
'RichTextModuleParams': RichTextModuleParamsClass,
|
|
@@ -40078,6 +40870,7 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
|
|
|
40078
40870
|
CorpGroupKeyClass,
|
|
40079
40871
|
VersionSetKeyClass,
|
|
40080
40872
|
AnomalyKeyClass,
|
|
40873
|
+
ActionWorkflowKeyClass,
|
|
40081
40874
|
ChartKeyClass,
|
|
40082
40875
|
DataHubPageTemplateKeyClass,
|
|
40083
40876
|
OwnershipTypeKeyClass,
|
|
@@ -40168,7 +40961,6 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
|
|
|
40168
40961
|
BusinessAttributeInfoClass,
|
|
40169
40962
|
BusinessAttributeKeyClass,
|
|
40170
40963
|
BusinessAttributesClass,
|
|
40171
|
-
LogicalParentClass,
|
|
40172
40964
|
LinkPreviewInfoClass,
|
|
40173
40965
|
GlobalSettingsInfoClass,
|
|
40174
40966
|
TelemetryClientIdClass,
|
|
@@ -40236,6 +41028,7 @@ ASPECT_CLASSES: List[Type[_Aspect]] = [
|
|
|
40236
41028
|
DataContractPropertiesClass,
|
|
40237
41029
|
DataContractStatusClass,
|
|
40238
41030
|
MonitorAnomalyEventClass,
|
|
41031
|
+
ActionWorkflowInfoClass,
|
|
40239
41032
|
DataHubIngestionSourceInfoClass,
|
|
40240
41033
|
GlossaryTermInfoClass,
|
|
40241
41034
|
GlossaryNodeInfoClass,
|
|
@@ -40370,6 +41163,7 @@ class AspectBag(TypedDict, total=False):
|
|
|
40370
41163
|
corpGroupKey: CorpGroupKeyClass
|
|
40371
41164
|
versionSetKey: VersionSetKeyClass
|
|
40372
41165
|
anomalyKey: AnomalyKeyClass
|
|
41166
|
+
actionWorkflowKey: ActionWorkflowKeyClass
|
|
40373
41167
|
chartKey: ChartKeyClass
|
|
40374
41168
|
dataHubPageTemplateKey: DataHubPageTemplateKeyClass
|
|
40375
41169
|
ownershipTypeKey: OwnershipTypeKeyClass
|
|
@@ -40460,7 +41254,6 @@ class AspectBag(TypedDict, total=False):
|
|
|
40460
41254
|
businessAttributeInfo: BusinessAttributeInfoClass
|
|
40461
41255
|
businessAttributeKey: BusinessAttributeKeyClass
|
|
40462
41256
|
businessAttributes: BusinessAttributesClass
|
|
40463
|
-
logicalParent: LogicalParentClass
|
|
40464
41257
|
linkPreviewInfo: LinkPreviewInfoClass
|
|
40465
41258
|
globalSettingsInfo: GlobalSettingsInfoClass
|
|
40466
41259
|
telemetryClientId: TelemetryClientIdClass
|
|
@@ -40528,6 +41321,7 @@ class AspectBag(TypedDict, total=False):
|
|
|
40528
41321
|
dataContractProperties: DataContractPropertiesClass
|
|
40529
41322
|
dataContractStatus: DataContractStatusClass
|
|
40530
41323
|
monitorAnomalyEvent: MonitorAnomalyEventClass
|
|
41324
|
+
actionWorkflowInfo: ActionWorkflowInfoClass
|
|
40531
41325
|
dataHubIngestionSourceInfo: DataHubIngestionSourceInfoClass
|
|
40532
41326
|
glossaryTermInfo: GlossaryTermInfoClass
|
|
40533
41327
|
glossaryNodeInfo: GlossaryNodeInfoClass
|
|
@@ -40614,6 +41408,7 @@ KEY_ASPECTS: Dict[str, Type[_Aspect]] = {
|
|
|
40614
41408
|
'mlPrimaryKey': MLPrimaryKeyKeyClass,
|
|
40615
41409
|
'corpGroup': CorpGroupKeyClass,
|
|
40616
41410
|
'versionSet': VersionSetKeyClass,
|
|
41411
|
+
'actionWorkflow': ActionWorkflowKeyClass,
|
|
40617
41412
|
'chart': ChartKeyClass,
|
|
40618
41413
|
'dataHubPageTemplate': DataHubPageTemplateKeyClass,
|
|
40619
41414
|
'ownershipType': OwnershipTypeKeyClass,
|
|
@@ -40691,6 +41486,7 @@ ENTITY_TYPE_NAMES: List[str] = [
|
|
|
40691
41486
|
'mlPrimaryKey',
|
|
40692
41487
|
'corpGroup',
|
|
40693
41488
|
'versionSet',
|
|
41489
|
+
'actionWorkflow',
|
|
40694
41490
|
'chart',
|
|
40695
41491
|
'dataHubPageTemplate',
|
|
40696
41492
|
'ownershipType',
|
|
@@ -40765,6 +41561,7 @@ EntityTypeName = Literal[
|
|
|
40765
41561
|
'mlPrimaryKey',
|
|
40766
41562
|
'corpGroup',
|
|
40767
41563
|
'versionSet',
|
|
41564
|
+
'actionWorkflow',
|
|
40768
41565
|
'chart',
|
|
40769
41566
|
'dataHubPageTemplate',
|
|
40770
41567
|
'ownershipType',
|