Table of Contents

Class EventDoc

Namespace
DatabentoDotNet.Reference
Assembly
DatabentoDotNet.Reference.dll

The server's own documentation for one corporate action event: what it is, what it populates, and what dates it carries.

public sealed record EventDoc : IEquatable<EventDoc>
Inheritance
EventDoc
Implements
Inherited Members

Remarks

Port of upstream's EventDoc (corporate.rs:483-505), returned by ListEventsAsync(CancellationToken) keyed by event code.

Seven of these nine properties are optional upstream, and the live endpoint filled all nine on every one of its 60 events but one. Only Subtypes was ever null — 41 times. The optionality is kept as upstream declares it rather than tightened to what one capture happened to contain: a server that starts omitting Description should hand a caller a null, not fail the whole document. The three SecurityMaster optionality disagreements #54 reproduced rather than reconciled are the same rule applied the same way.

Participation stays a string, and that was asked rather than assumed. MandVolu is a closed enum for what looks like the same concept, and folding one into the other is the shape of the mistake #45 was: two vocabularies that agree in meaning and disagree on the wire. They disagree here. list_enums' MANDVOLU group reports the single characters M, V and W; this field reports mandatory, voluntary and mandatory_voluntary. Not one code is shared, so a MandVolu here would reject every value the endpoint actually sends.

Code repeats the dictionary key, and nothing here relies on that. It held for all 60 events in the captured response, which is worth a test and is not worth a contract: ListEventsAsync(CancellationToken) keys by the string the server filed the document under, so an event whose Code is absent or disagrees still arrives under its own key.

Properties

CalendarDates

The dates this event carries, and what each is called on it, or null when the server sent none.

public IReadOnlyList<EventDocCalendarDates>? CalendarDates { get; init; }

Property Value

IReadOnlyList<EventDocCalendarDates>

Category

The event's category — distribution, proposals and six others — or default when the server sent none.

public EventCategory Category { get; init; }

Property Value

EventCategory

Code

The event's own code, or default when the server sent none. Normally the key this document arrived under.

public Event Code { get; init; }

Property Value

Event

Description

What the event is, in prose.

public string? Description { get; init; }

Property Value

string

Fields

The fields this event populates and which of CorporateAction's three open maps each lands in, or null when the server sent none.

public IReadOnlyList<EventDocField>? Fields { get; init; }

Property Value

IReadOnlyList<EventDocField>

Level

What the event applies to — country, issuer, listing or security.

public required EventLevel Level { get; init; }

Property Value

EventLevel

Remarks

The one code carrier here that upstream types without an Option (corporate.rs:498), so it is required: a document with no level fails to read rather than arriving with an absent one, which is what upstream's serde does with the same declaration.

Name

The event's human-readable name.

public required string Name { get; init; }

Property Value

string

Participation

Whether the event is mandatory, voluntary, or a mix — mandatory, voluntary or mandatory_voluntary.

public string? Participation { get; init; }

Property Value

string

Remarks

A string rather than a MandVolu, because the two vocabularies share no code. See this type's remarks.

Subtypes

The subtypes this event can be narrowed to, or null when it has none — which was the case for 41 of the 60 events the live endpoint returned.

public IReadOnlyList<EventDocSubType>? Subtypes { get; init; }

Property Value

IReadOnlyList<EventDocSubType>