v1/events.proto#

Messages#

DPSEvent#

DPSEvent contains the event payload.

Field

Type

Description

when

google.protobuf.Timestamp

none

event_name

string

none

correlation_id

string

none

oneof event.ping

google.protobuf.Empty

none

oneof event.power_state

PowerStateEvent

none

EventSubscriptionRequest#

Subscribes to one or more events. The subscriber id identifies the receiver, and must be unique among subscribers.

Field

Type

Description

event_names

repeated string

Names of the events to subscribe. If multiple, the returned stream will have all these subscribed events. Each event name must not be empty.

subscriber_id

string

The unique id of the subscriber. Messages will be queued by subscriber. Must not be empty.

persistent

bool

If persistent, the subscription is a persistent subscription. An event queue will be kept for the subscriber and events will be queued when the subscriber is not actively connected. If a subscriber is not persistent, events will be delivered only when the subscriber is connected. Undelivered events will not be queued.

PowerStateEvent#

PowerStateEvent is used by nvgrid APIs to notify power state changes

Field

Type

Description

feeds

map PowerStateEvent.FeedsEntry

none

PowerStateEvent.FeedState#

Field

Type

Description

metadata

FeedMetadata.Entry

Feed limits and constraints

targets

repeated PowerStateEvent.LoadTarget

Load targets currently active and future targets

calculated_load

LoadValue

Calculated current load

in_flight

bool

Is this load target in flight?

power_event_start_time

google.protobuf.Timestamp

Event start time

compliant

bool

Is the data center compliant?

power_event

PowerStateEvent.EventType

none

PowerStateEvent.FeedsEntry#

Field

Type

Description

key

string

none

value

PowerStateEvent.FeedState

none

PowerStateEvent.LoadTarget#

LoadTarget is a copy of the nvgrid load target message, with the added ‘active’ field

Field

Type

Description

interval

Interval

The start_time is the the time in the future when the constraint should be activated. If omitted, the current local time is assumed. The end_time is the end time for this load target. If there are no overlapping load targets and if the end time is specified, the power will revert back to the default level at this time. If there is an overlapping target, the most recent overlapping target is used. If omitted, there is no end time.

load_constraint

LoadValue

The load constraint. If nil, it removes any constraints at the given time, which results in the system falling back to its default constraint.

load_target_strategy

LoadTargetStrategy

The strategy specifies what strategy will be used to achieve the desired load_constraint.

active

bool

Whether this load target is active

correlation_id

string

Optional string that can be used by the caller to identify load targets. The correlation id can be at most 36 bytes, and can contain ascii letters/digits and “-”. It must be a unique id. If not provided, a UUID will be generated.

Scalar Value Types#

.proto Type

Notes

C++ Type

Java Type

Python Type

double

double

double

float

float

float

float

float

int32

Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.

int32

int

int

int64

Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.

int64

long

int/long

uint32

Uses variable-length encoding.

uint32

int

int/long

uint64

Uses variable-length encoding.

uint64

long

int/long

sint32

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.

int32

int

int

sint64

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.

int64

long

int/long

fixed32

Always four bytes. More efficient than uint32 if values are often greater than 2^28.

uint32

int

int

fixed64

Always eight bytes. More efficient than uint64 if values are often greater than 2^56.

uint64

long

int/long

sfixed32

Always four bytes.

int32

int

int

sfixed64

Always eight bytes.

int64

long

int/long

bool

bool

boolean

boolean

string

A string must always contain UTF-8 encoded or 7-bit ASCII text.

string

String

str/unicode

bytes

May contain any arbitrary sequence of bytes.

string

ByteString

str