Source code for zcloud.pubsub.util

from enum import Enum

[docs] class MessageSchemaFields(Enum): """Enum for standard message schema fields used in pub/sub messages.""" SOURCE = "source" MESSAGE_TYPE = "messageType" MESSAGE_SUBJECT = "messageSubject" PRIORITY = "priority" PAYLOAD = "payload" METADATA = "metadata"
[docs] class MessageMetadataFields(Enum): """Enum for standard message metadata fields used in pub/sub messages.""" CORRELATION_ID = "correlationId" TAGS = "tags"
[docs] class MessageData(Enum): """Enum for standard message data fields used in pub/sub messages.""" CLIENT_ID = "clientID" STRUCTURE_ENTITY_IDS = "structureEntityIDs" STRUCTURE_CORRELATION_IDS = "StructureCorrelationIDs" STRUCTURE_CORRELATION_IDS_FOUND = "structureCorrelationIDs_found" STRUCTURE_CORRELATION_IDS_UNFOUND = "structureCorrelationIDs_unfound" ENTITY_IDS = "entityIDs" WEBSOCKET_MESSAGE = "websocketMessage" STATUS = "status" DETAILS = "details" UPLOAD_UUID = "uploadUUID" # the messaging field for the upload UUID, differs from the bq and manifest key: upload_uuid
[docs] class MessageType(Enum): """Enum for standard message types.""" EVENT = "event" ALERT = "alert" METRIC = "metric" ERROR = "error" SUCCESS = "success"
[docs] class Priority(Enum): """Enum for message priority levels.""" LOW = "low" MEDIUM = "medium" HIGH = "high"
[docs] class AttributeKeys(Enum): """Enum for standard attribute keys used in pub/sub messages.""" EVENT_AUDIENCE = "event_audience" # CORRELATION_ID = "correlationID" ORIGIN_SERVICE = "origin_service"
[docs] class EventAudience(Enum): """Enum for event audience types.""" RAW_STRUCTURE_POSTED = "raw_structure_posted" WEBSOCKET_NOTIFICATION = "websocket-notification" BQ_TABLE_PUBLICATION = "bq-table-publication" GET_STRUCTURE_DATA = "get-structure-data" GET_STRUCTURE_DATA_BACKOFF = "get-structure-data-backoff" STRUCTURE_POSTED = "structure-posted" ETL_SERVICE = "standardize-structure-data" STANDARD_STRUCTURE_AVRO_POSTED = "standard-structure-avro-posted" CHECK_UPLOAD_FOR_STRUCTURE = "check-upload-for-structure" METADATA_UPDATE = "metadata-update"
[docs] class Topic(Enum): """Enum for pub/sub topics.""" COLUMNA_TEST = "columna-test"
# COLUMNA_PROD = "columna-prod"
[docs] class Schema(Enum): """Enum for pub/sub schemas.""" COLUMNA_PRIMARY = "columna-primary"
[docs] class GCPMessageFields(Enum): """Enum for top level pub/sub message fields.""" """Enum for standard GCP pub/sub message fields.""" DATA = "data" ATTRIBUTES = "attributes" MESSAGE_ID = "messageId" PUBLISH_TIME = "publishTime" ORDERING_KEY = "orderingKey"