Documentation
¶
Overview ¶
Package types provides shared type definitions for pulse.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Aggregation ¶
type Aggregation struct {
// Type is the aggregation operation to perform.
Type AggregationType `json:"type"`
// Field is the name of the data field to aggregate.
Field string `json:"field"`
// Label is an optional output label for the aggregation result.
Label string `json:"label,omitempty"`
}
Aggregation defines a single aggregation operation to apply to a field.
type AggregationType ¶
type AggregationType string
AggregationType identifies a specific aggregation operation.
const ( AGG_COUNT AggregationType = "AGG_COUNT" AGG_SUM AggregationType = "AGG_SUM" AGG_AVERAGE AggregationType = "AGG_AVERAGE" AGG_MIN AggregationType = "AGG_MIN" AGG_MAX AggregationType = "AGG_MAX" AGG_STDDEV AggregationType = "AGG_STDDEV" AGG_RANGE AggregationType = "AGG_RANGE" AGG_FREQUENCY AggregationType = "AGG_FREQUENCY" AGG_ZSCORE AggregationType = "AGG_ZSCORE" )
func AllAggregationTypes ¶
func AllAggregationTypes() []AggregationType
AllAggregationTypes returns all defined aggregation types.
type Attribute ¶
type Attribute struct {
// Type is the attribute computation to perform.
Type AttributeType `json:"type"`
// Field is the name of the source data field.
Field string `json:"field"`
// Label is the output name for the derived attribute.
Label string `json:"label,omitempty"`
// Expression is a runtime expression for ATTR_FORMULA type.
Expression string `json:"expression,omitempty"`
}
Attribute defines a derived attribute computation.
type AttributeType ¶
type AttributeType string
AttributeType identifies a specific derived-attribute computation.
const ( ATTR_ZSCORE AttributeType = "ATTR_ZSCORE" ATTR_TSCORE AttributeType = "ATTR_TSCORE" ATTR_NORMALIZED AttributeType = "ATTR_NORMALIZED" ATTR_FORMULA AttributeType = "ATTR_FORMULA" ATTR_PERCENTILE AttributeType = "ATTR_PERCENTILE" ATTR_RANK AttributeType = "ATTR_RANK" )
func AllAttributeTypes ¶
func AllAttributeTypes() []AttributeType
AllAttributeTypes returns all defined attribute types.
type Cohort ¶
type Cohort struct {
// Filename is the name of the .pulse file.
Filename string `json:"filename"`
// DataDir is the directory containing the cohort file.
DataDir string `json:"data_dir,omitempty"`
}
Cohort identifies a .pulse data file for processing.
type ComposedRequest ¶
type ComposedRequest struct {
// Requests is the list of individual requests to execute.
Requests []*Request `json:"requests"`
}
ComposedRequest bundles multiple requests for batch execution.
type FileRequest ¶
type FileRequest struct {
// Filename is the name of the file.
Filename string `json:"filename"`
// DataDir is the directory containing the file.
DataDir string `json:"data_dir,omitempty"`
}
FileRequest identifies a file for operations like inspect.
type FileResponse ¶
type FileResponse struct {
// Filename is the name of the file.
Filename string `json:"filename"`
// RecordCount is the number of records in the file.
RecordCount int64 `json:"record_count"`
// Fields is the list of field names in the file.
Fields []string `json:"fields,omitempty"`
}
FileResponse describes a file's metadata.
type Filterer ¶
type Filterer struct {
// Type is the filter operation to perform.
Type FiltererType `json:"type"`
// Field is the name of the data field to filter on.
// Not required for FILTER_EXPRESSION.
Field string `json:"field,omitempty"`
// Values is a list of values for include/exclude/range filters.
Values []string `json:"values,omitempty"`
// Expression is a runtime expression for FILTER_EXPRESSION type.
Expression string `json:"expression,omitempty"`
}
Filterer defines a filter to apply to records before processing.
type FiltererType ¶
type FiltererType string
FiltererType identifies a specific filter operation.
const ( FILTER_INCLUDE FiltererType = "FILTER_INCLUDE" FILTER_EXCLUDE FiltererType = "FILTER_EXCLUDE" FILTER_RANGE FiltererType = "FILTER_RANGE" FILTER_EXPRESSION FiltererType = "FILTER_EXPRESSION" )
func AllFiltererTypes ¶
func AllFiltererTypes() []FiltererType
AllFiltererTypes returns all defined filterer types.
type Group ¶
type Group struct {
// Type is the grouping operation to perform.
Type GroupType `json:"type"`
// Field is the name of the data field to group by.
Field string `json:"field"`
// Interval is used by GROUP_ROUNDED to define the rounding interval.
Interval float64 `json:"interval,omitempty"`
}
Group defines a grouping operation to partition results.
type GroupType ¶
type GroupType string
GroupType identifies a specific grouping operation.
func AllGroupTypes ¶
func AllGroupTypes() []GroupType
AllGroupTypes returns all defined group types.
type Output ¶
type Output struct {
// Format is the output format (e.g., "json", "csv").
Format string `json:"format"`
// Filename is an optional output file path.
Filename string `json:"filename,omitempty"`
// Pretty enables indented/formatted output.
Pretty bool `json:"pretty,omitempty"`
// IncludeNil controls whether nil/null values appear in output.
IncludeNil bool `json:"include_nil,omitempty"`
}
Output configures how processing results are formatted.
type Request ¶
type Request struct {
// Cohort identifies the .pulse file to process.
Cohort *Cohort `json:"cohort,omitempty"`
// Filterers is the list of filters to apply before processing.
Filterers []*Filterer `json:"filterers,omitempty"`
// Aggregations is the list of aggregation operations.
Aggregations []*Aggregation `json:"aggregations,omitempty"`
// Attributes is the list of derived attribute computations.
Attributes []*Attribute `json:"attributes,omitempty"`
// Groups is the list of grouping operations.
Groups []*Group `json:"groups,omitempty"`
// Outputs configures result formatting.
Outputs []*Output `json:"outputs,omitempty"`
}
Request is the primary processing request type. It specifies a cohort, filters, aggregations, attributes, groups, and output config.
type Response ¶
type Response struct {
// Data holds the result rows as key-value maps.
Data []map[string]any `json:"data,omitempty"`
// Metadata holds information about the processing run.
Metadata *ResponseMetadata `json:"metadata,omitempty"`
}
Response is the processing result type.
type ResponseMetadata ¶
type ResponseMetadata struct {
// TotalRows is the total number of records in the cohort.
TotalRows int64 `json:"total_rows"`
// FilteredRows is the number of records after filtering.
FilteredRows int64 `json:"filtered_rows"`
// CohortFile is the filename of the processed cohort.
CohortFile string `json:"cohort_file,omitempty"`
}
ResponseMetadata holds metadata about a processing result.
type VersionResponse ¶
type VersionResponse struct {
// Version is the semantic version string.
Version string `json:"version"`
// BuildDate is the build timestamp.
BuildDate string `json:"build_date,omitempty"`
// GoVersion is the Go compiler version used.
GoVersion string `json:"go_version,omitempty"`
}
VersionResponse provides build and version information.