diff --git a/packages/google-cloud-dataplex/google/cloud/dataplex/__init__.py b/packages/google-cloud-dataplex/google/cloud/dataplex/__init__.py index 8062e83cbbc1..c082eaaef6a9 100644 --- a/packages/google-cloud-dataplex/google/cloud/dataplex/__init__.py +++ b/packages/google-cloud-dataplex/google/cloud/dataplex/__init__.py @@ -112,6 +112,7 @@ DataQualityScanRuleResult, DataScanEvent, DiscoveryEvent, + GovernanceEvent, JobEvent, SessionEvent, ) @@ -257,6 +258,7 @@ "DataQualityScanRuleResult", "DataScanEvent", "DiscoveryEvent", + "GovernanceEvent", "JobEvent", "SessionEvent", "CreateEntityRequest", diff --git a/packages/google-cloud-dataplex/google/cloud/dataplex_v1/__init__.py b/packages/google-cloud-dataplex/google/cloud/dataplex_v1/__init__.py index 5e40692a6241..36e097fdfeed 100644 --- a/packages/google-cloud-dataplex/google/cloud/dataplex_v1/__init__.py +++ b/packages/google-cloud-dataplex/google/cloud/dataplex_v1/__init__.py @@ -90,6 +90,7 @@ DataQualityScanRuleResult, DataScanEvent, DiscoveryEvent, + GovernanceEvent, JobEvent, SessionEvent, ) @@ -236,6 +237,7 @@ "GetPartitionRequest", "GetTaskRequest", "GetZoneRequest", + "GovernanceEvent", "Job", "JobEvent", "Lake", diff --git a/packages/google-cloud-dataplex/google/cloud/dataplex_v1/types/__init__.py b/packages/google-cloud-dataplex/google/cloud/dataplex_v1/types/__init__.py index c326f5016ca5..30609981b159 100644 --- a/packages/google-cloud-dataplex/google/cloud/dataplex_v1/types/__init__.py +++ b/packages/google-cloud-dataplex/google/cloud/dataplex_v1/types/__init__.py @@ -74,6 +74,7 @@ DataQualityScanRuleResult, DataScanEvent, DiscoveryEvent, + GovernanceEvent, JobEvent, SessionEvent, ) @@ -202,6 +203,7 @@ "DataQualityScanRuleResult", "DataScanEvent", "DiscoveryEvent", + "GovernanceEvent", "JobEvent", "SessionEvent", "CreateEntityRequest", diff --git a/packages/google-cloud-dataplex/google/cloud/dataplex_v1/types/logs.py b/packages/google-cloud-dataplex/google/cloud/dataplex_v1/types/logs.py index 1b690ebc730b..bef517baf78a 100644 --- a/packages/google-cloud-dataplex/google/cloud/dataplex_v1/types/logs.py +++ b/packages/google-cloud-dataplex/google/cloud/dataplex_v1/types/logs.py @@ -27,6 +27,7 @@ "DiscoveryEvent", "JobEvent", "SessionEvent", + "GovernanceEvent", "DataScanEvent", "DataQualityScanRuleResult", }, @@ -565,6 +566,123 @@ class Engine(proto.Enum): ) +class GovernanceEvent(proto.Message): + r"""Payload associated with Governance related log events. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + message (str): + The log message. + event_type (google.cloud.dataplex_v1.types.GovernanceEvent.EventType): + The type of the event. + entity (google.cloud.dataplex_v1.types.GovernanceEvent.Entity): + Entity resource information if the log event + is associated with a specific entity. + + This field is a member of `oneof`_ ``_entity``. + """ + + class EventType(proto.Enum): + r"""Type of governance log event. + + Values: + EVENT_TYPE_UNSPECIFIED (0): + An unspecified event type. + RESOURCE_IAM_POLICY_UPDATE (1): + Resource IAM policy update event. + BIGQUERY_TABLE_CREATE (2): + BigQuery table create event. + BIGQUERY_TABLE_UPDATE (3): + BigQuery table update event. + BIGQUERY_TABLE_DELETE (4): + BigQuery table delete event. + BIGQUERY_CONNECTION_CREATE (5): + BigQuery connection create event. + BIGQUERY_CONNECTION_UPDATE (6): + BigQuery connection update event. + BIGQUERY_CONNECTION_DELETE (7): + BigQuery connection delete event. + BIGQUERY_TAXONOMY_CREATE (10): + BigQuery taxonomy created. + BIGQUERY_POLICY_TAG_CREATE (11): + BigQuery policy tag created. + BIGQUERY_POLICY_TAG_DELETE (12): + BigQuery policy tag deleted. + BIGQUERY_POLICY_TAG_SET_IAM_POLICY (13): + BigQuery set iam policy for policy tag. + ACCESS_POLICY_UPDATE (14): + Access policy update event. + """ + EVENT_TYPE_UNSPECIFIED = 0 + RESOURCE_IAM_POLICY_UPDATE = 1 + BIGQUERY_TABLE_CREATE = 2 + BIGQUERY_TABLE_UPDATE = 3 + BIGQUERY_TABLE_DELETE = 4 + BIGQUERY_CONNECTION_CREATE = 5 + BIGQUERY_CONNECTION_UPDATE = 6 + BIGQUERY_CONNECTION_DELETE = 7 + BIGQUERY_TAXONOMY_CREATE = 10 + BIGQUERY_POLICY_TAG_CREATE = 11 + BIGQUERY_POLICY_TAG_DELETE = 12 + BIGQUERY_POLICY_TAG_SET_IAM_POLICY = 13 + ACCESS_POLICY_UPDATE = 14 + + class Entity(proto.Message): + r"""Information about Entity resource that the log event is + associated with. + + Attributes: + entity (str): + The Entity resource the log event is associated with. + Format: + ``projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}`` + entity_type (google.cloud.dataplex_v1.types.GovernanceEvent.Entity.EntityType): + Type of entity. + """ + + class EntityType(proto.Enum): + r"""Type of entity. + + Values: + ENTITY_TYPE_UNSPECIFIED (0): + An unspecified Entity type. + TABLE (1): + Table entity type. + FILESET (2): + Fileset entity type. + """ + ENTITY_TYPE_UNSPECIFIED = 0 + TABLE = 1 + FILESET = 2 + + entity: str = proto.Field( + proto.STRING, + number=1, + ) + entity_type: "GovernanceEvent.Entity.EntityType" = proto.Field( + proto.ENUM, + number=2, + enum="GovernanceEvent.Entity.EntityType", + ) + + message: str = proto.Field( + proto.STRING, + number=1, + ) + event_type: EventType = proto.Field( + proto.ENUM, + number=2, + enum=EventType, + ) + entity: Entity = proto.Field( + proto.MESSAGE, + number=3, + optional=True, + message=Entity, + ) + + class DataScanEvent(proto.Message): r"""These messages contain information about the execution of a datascan. The monitored resource is 'DataScan' diff --git a/packages/google-cloud-dataplex/noxfile.py b/packages/google-cloud-dataplex/noxfile.py index 822eb41debf3..b5020dd1873b 100644 --- a/packages/google-cloud-dataplex/noxfile.py +++ b/packages/google-cloud-dataplex/noxfile.py @@ -29,8 +29,10 @@ BLACK_VERSION = "black[jupyter]==23.7.0" ISORT_VERSION = "isort==5.11.0" + LINT_PATHS = ["docs", "google", "tests", "noxfile.py", "setup.py"] + DEFAULT_PYTHON_VERSION = "3.9" UNIT_TEST_PYTHON_VERSIONS: List[str] = ["3.7", "3.8", "3.9", "3.10", "3.11"] @@ -89,6 +91,7 @@ def lint(session): "--check", *LINT_PATHS, ) + session.run("flake8", "google", "tests")