Skip to main content

SeriesResolutionRequest

Namespace: Meshmakers.Octo.Runtime.Contracts.StreamData

Input to the resolution-aware series resolver (ISeriesResolutionService): a logical series (addressed by an archive family plus optional rtId / OBIS scope), a time range, and the target number of display points. The resolver picks the archive to query — it does not run the query. See concept-resolution-aware-series-queries.md §5.1.

public record SeriesResolutionRequest : IEquatable<SeriesResolutionRequest>

Inheritance ObjectSeriesResolutionRequest
Implements IEquatable<SeriesResolutionRequest>

Properties

BaseArchiveRtId

The base (raw / time-range) archive of the family. Mutually complementary with SeriesResolutionRequest.TargetCkTypeId: at least one must be supplied so the service can identify the family. When both are set, SeriesResolutionRequest.BaseArchiveRtId wins.

public Nullable<OctoObjectId> BaseArchiveRtId { get; set; }

Property Value

Nullable<OctoObjectId>

TargetCkTypeId

The archived CK type (e.g. Basic.Energy/EnergyMeasurement) used to locate the base archive when SeriesResolutionRequest.BaseArchiveRtId is not supplied.

public RtCkId<CkTypeId> TargetCkTypeId { get; set; }

Property Value

RtCkId<CkTypeId>

From

Inclusive start of the query window (UTC).

public DateTime From { get; set; }

Property Value

DateTime

To

Exclusive end of the query window (UTC).

public DateTime To { get; set; }

Property Value

DateTime

TargetPoints

The desired number of output points (pixel-driven, ~600 default). Must be positive.

public int TargetPoints { get; set; }

Property Value

Int32

RequiredAggregation

The aggregation function the series must be reduced with (decision O2: caller-supplied, never guessed — energy ⇒ CkRollupFunction.Sum, demand ⇒ CkRollupFunction.Max, etc.). A rollup rung is a valid source only when its stored function equals this; on the base archive it is the only semantic source and drives the downsampling reducer.

public CkRollupFunction RequiredAggregation { get; set; }

Property Value

CkRollupFunction

SourcePath

The logical CK attribute path of the measured column the series reduces (e.g. Amount.Value). Used to match a rollup's aggregation spec: a rollup rung is eligible only when it aggregates this path with SeriesResolutionRequest.RequiredAggregation.

public string SourcePath { get; set; }

Property Value

String

RtIds

Optional runtime scope override — the source entity rtIds the series is restricted to (AB#4236). Advisory to the resolver; forwarded by the caller to the downsampling query.

public IReadOnlyList<OctoObjectId> RtIds { get; set; }

Property Value

IReadOnlyList<OctoObjectId>

QueryTimeZone

Optional IANA time zone (e.g. Europe/Vienna) the query is resolved in (AB#4190, decision T1). Under SeriesComparisonPolicy.PerQuery it is applied uniformly so calendar (day/week/month/year) rungs are selected and aligned on this zone's DST-correct civil boundaries; a calendar rung whose stored zone differs holds a different zone's civil buckets and is excluded. null ⇒ UTC calendar boundaries (legacy behaviour). Sub-day fixed-size rungs are unaffected (decision T3). Ignored under SeriesComparisonPolicy.PerSeries, where each rung uses its own stored zone.

public string QueryTimeZone { get; set; }

Property Value

String

ComparisonPolicy

How civil boundaries are resolved when the series spans multiple reference time zones (AB#4190, decision T2). Defaults to SeriesComparisonPolicy.PerQuery.

public SeriesComparisonPolicy ComparisonPolicy { get; set; }

Property Value

SeriesComparisonPolicy

Constructors

SeriesResolutionRequest(Nullable<OctoObjectId>, RtCkId<CkTypeId>, DateTime, DateTime, Int32, CkRollupFunction, String)

Input to the resolution-aware series resolver (ISeriesResolutionService): a logical series (addressed by an archive family plus optional rtId / OBIS scope), a time range, and the target number of display points. The resolver picks the archive to query — it does not run the query. See concept-resolution-aware-series-queries.md §5.1.

public SeriesResolutionRequest(Nullable<OctoObjectId> BaseArchiveRtId, RtCkId<CkTypeId> TargetCkTypeId, DateTime From, DateTime To, int TargetPoints, CkRollupFunction RequiredAggregation, string SourcePath)

Parameters

BaseArchiveRtId Nullable<OctoObjectId>
The base (raw / time-range) archive of the family. Mutually complementary with SeriesResolutionRequest.TargetCkTypeId: at least one must be supplied so the service can identify the family. When both are set, SeriesResolutionRequest.BaseArchiveRtId wins.

TargetCkTypeId RtCkId<CkTypeId>
The archived CK type (e.g. Basic.Energy/EnergyMeasurement) used to locate the base archive when SeriesResolutionRequest.BaseArchiveRtId is not supplied.

From DateTime
Inclusive start of the query window (UTC).

To DateTime
Exclusive end of the query window (UTC).

TargetPoints Int32
The desired number of output points (pixel-driven, ~600 default). Must be positive.

RequiredAggregation CkRollupFunction
The aggregation function the series must be reduced with (decision O2: caller-supplied, never guessed — energy ⇒ CkRollupFunction.Sum, demand ⇒ CkRollupFunction.Max, etc.). A rollup rung is a valid source only when its stored function equals this; on the base archive it is the only semantic source and drives the downsampling reducer.

SourcePath String
The logical CK attribute path of the measured column the series reduces (e.g. Amount.Value). Used to match a rollup's aggregation spec: a rollup rung is eligible only when it aggregates this path with SeriesResolutionRequest.RequiredAggregation.