The time window and data availability of the results.
Fields
time_basis(required)timezone(required)interval(required)from(required): Start of the window read, aligned down to the alignment grain.to(required): Exclusive end of the window, aligned up to the alignment grain.effective_to(required): Exclusive end of the counted data: to, or generated_at while the window is ongoing.alignment(required): Grain the requested boundaries were widened to: whole UTC hours, or whole UTC days for personal-data dimensions. Counts cover exactly from to effective_to.generated_at(required)available_since(required)partial(required)ongoing(required)collection_completeness(required)last_ingested_at(required, nullable): Latest ingestion among matching rollup rows. This is not a completeness watermark.metric_definition_version(required)ranked_group_limit(required)comparison(optional)
Absent fields are :unset; nil is JSON null. extra holds response fields that this version of the SDK does not know.
Summary
Types
@type t() :: %Lettermint.Types.AnalyticsMeta{ alignment: Lettermint.Types.AnalyticsMetaAlignment.t(), available_since: String.t(), collection_completeness: Lettermint.Types.AnalyticsMetaCollectionCompleteness.t(), comparison: Lettermint.Types.AnalyticsMetaComparison.t() | :unset, effective_to: String.t(), extra: %{optional(String.t()) => term()}, from: String.t(), generated_at: String.t(), interval: Lettermint.Types.AnalyticsInterval.t(), last_ingested_at: String.t() | nil, metric_definition_version: String.t(), ongoing: boolean(), partial: boolean(), ranked_group_limit: integer(), time_basis: Lettermint.Types.AnalyticsMetaTimeBasis.t(), timezone: String.t(), to: String.t() }