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 Object → SeriesResolutionRequest
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
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
To
Exclusive end of the query window (UTC).
public DateTime To { get; set; }
Property Value
TargetPoints
The desired number of output points (pixel-driven, ~600 default). Must be positive.
public int TargetPoints { get; set; }
Property Value
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
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
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
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
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
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.