Skip to content

Latest commit

 

History

History
223 lines (154 loc) · 7.14 KB

task.proto.md

File metadata and controls

223 lines (154 loc) · 7.14 KB

Package: zaphiro.platform.v1

Copyright 2024 Zaphiro Technologies Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Messages to support coordination among processes/services in the platform. At the time being this is a proof of concept. Different changes may occurs when we actually start to use the event driven approach to coordinate services.

Imports

Import Description
google/protobuf/any.proto To support messages with fields of any type

Options

Name Value Description
go_package ./platform/v1

Enum: TaskType

FQN: zaphiro.platform.v1.TaskType

The different type of tasks run by the real time processing.

Name Ordinal Description
TASK_TYPE_UNSPECIFIED 0
TASK_TYPE_COLLECTION 1
TASK_TYPE_TOPOLOGY 2
TASK_TYPE_STATE 3
TASK_TYPE_FAULT 4

Enum: NotificationType

FQN: zaphiro.platform.v1.NotificationType

The different type of notifications generated by the real time processing.

Name Ordinal Description
NOTIFICATION_TYPE_UNSPECIFIED 0
NOTIFICATION_TYPE_DATA_COMPLETE 1
NOTIFICATION_TYPE_DATA_TIMEOUT_SHORT 2
NOTIFICATION_TYPE_DATA_TIMEOUT_MEDIUM 3
NOTIFICATION_TYPE_TRIGGER 4
NOTIFICATION_TYPE_TOPOLOGY_COMPUTED 5

TaskType Diagram

classDiagram
direction LR
%% The different type of tasks run by the real time processing.

class TaskType{
  <<enumeration>>
  TASK_TYPE_UNSPECIFIED
  TASK_TYPE_COLLECTION
  TASK_TYPE_TOPOLOGY
  TASK_TYPE_STATE
  TASK_TYPE_FAULT
}
Loading

NotificationType Diagram

classDiagram
direction LR
%% The different type of notifications generated by the real time processing.

class NotificationType{
  <<enumeration>>
  NOTIFICATION_TYPE_UNSPECIFIED
  NOTIFICATION_TYPE_DATA_COMPLETE
  NOTIFICATION_TYPE_DATA_TIMEOUT_SHORT
  NOTIFICATION_TYPE_DATA_TIMEOUT_MEDIUM
  NOTIFICATION_TYPE_TRIGGER
  NOTIFICATION_TYPE_TOPOLOGY_COMPUTED
}
Loading

Parameter Diagram

classDiagram
direction LR

%% A parameter of a `Task` or `Notification`

class Parameter {
  + string name
  + google.protobuf.Any value
}
Parameter --> `google.protobuf.Any`

Loading

Task Diagram

classDiagram
direction LR

%% A task message.
%% Headers used in rabbitMQ:
%% * `id` (string): id of the `Task`
%% * `type` (string): always `Task`
%% * `producerId` (string): the id of the producer (e.g. a PMU) linked to the notification.
%% * `timestampId` (int64): related measurement Unix msec timestamp (if any)
%% * `taskType` (int8): The textual representation of the task type.
%% 

class Task {
  + TaskType taskType
  + int64 createdAt
  + List~Parameter~ parameters
}
Task --> `TaskType`
Task --> `Parameter`

Loading

Notification Diagram

classDiagram
direction LR

%% A notification message.
%% Headers used in rabbitMQ:
%% * `id` (string): id of the `Notification`
%% * `type` (string): always `Notification`
%% * `producerId` (string): the id of the producer (e.g. a PMU) linked to the notification.
%% * `timestampId` (int64): related measurement Unix msec timestamp (if any)
%% * `notificationType` (int8): The textual representation of the notification type.
%% 

class Notification {
  + NotificationType notificationType
  + int64 createdAt
  + string message
  + List~Parameter~ parameters
}
Notification --> `NotificationType`
Notification --> `Parameter`

Loading

Message: Parameter

FQN: zaphiro.platform.v1.Parameter

A parameter of a Task or Notification

Field Ordinal Type Label Description
name 1 string The parameter name
value 2 google.protobuf.Any The parameter value

Message: Task

FQN: zaphiro.platform.v1.Task

A task message. Headers used in rabbitMQ:

  • id (string): id of the Task
  • type (string): always Task
  • producerId (string): the id of the producer (e.g. a PMU) linked to the notification.
  • timestampId (int64): related measurement Unix msec timestamp (if any)
  • taskType (int8): The textual representation of the task type.
Field Ordinal Type Label Description
taskType 1 TaskType Type of the task
createdAt 2 int64 Task creation time (Unix msec timestamp)
parameters 3 Parameter Repeated

Message: Notification

FQN: zaphiro.platform.v1.Notification

A notification message. Headers used in rabbitMQ:

  • id (string): id of the Notification
  • type (string): always Notification
  • producerId (string): the id of the producer (e.g. a PMU) linked to the notification.
  • timestampId (int64): related measurement Unix msec timestamp (if any)
  • notificationType (int8): The textual representation of the notification type.
Field Ordinal Type Label Description
notificationType 1 NotificationType Notification type
createdAt 2 int64 Notification creation time (Unix msec timestamp)
message 3 string Notification message, it can be a string or a integer (which maps to a enum value).
parameters 4 Parameter Repeated