@statsig/pulumi-statsig
Version:
A Pulumi package for creating and managing Statsig resources.
402 lines (401 loc) • 12.9 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface EntityPropertyIdTypeMapping {
/**
* Column name linked to the ID.
*/
column: pulumi.Input<string>;
/**
* ID for the Statsig unit.
*/
statsigUnitId: pulumi.Input<string>;
}
export interface EntityPropertyOwner {
/**
* The email of the owner. This field is optional.
*/
ownerEmail?: pulumi.Input<string>;
/**
* ID of the owner
*/
ownerId?: pulumi.Input<string>;
/**
* The name of the owner. This field is optional.
*/
ownerName?: pulumi.Input<string>;
/**
* Type of the owner (e.g., SDK_KEY or USER)
*/
ownerType?: pulumi.Input<string>;
}
export interface ExperimentGroup {
description?: pulumi.Input<string>;
disabled?: pulumi.Input<boolean>;
foreignGroupId?: pulumi.Input<string>;
id?: pulumi.Input<string>;
name: pulumi.Input<string>;
parameterValues: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
size: pulumi.Input<number>;
}
export interface ExperimentLink {
/**
* The title of the link
*/
title?: pulumi.Input<string>;
/**
* The URL of the link
*/
url: pulumi.Input<string>;
}
export interface ExperimentPrimaryMetric {
direction?: pulumi.Input<string>;
hypothesizedValue?: pulumi.Input<number>;
name?: pulumi.Input<string>;
type?: pulumi.Input<string>;
}
export interface ExperimentSecondaryMetric {
direction?: pulumi.Input<string>;
hypothesizedValue?: pulumi.Input<number>;
name?: pulumi.Input<string>;
type?: pulumi.Input<string>;
}
export interface GateMonitoringMetric {
name?: pulumi.Input<string>;
type?: pulumi.Input<string>;
}
export interface GateRule {
/**
* The base ID of this rule, i.e. without any added metadata. Will remain the exact same throughout
*/
baseId?: pulumi.Input<string>;
/**
* An array of Condition objects.
*/
conditions: pulumi.Input<pulumi.Input<inputs.GateRuleCondition>[]>;
/**
* The environments this rule is enabled for.
*/
environments?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The Statsig ID of this rule.
*/
id?: pulumi.Input<string>;
/**
* The name of this rule.
*/
name: pulumi.Input<string>;
/**
* Of the users that meet the conditions of this rule, what percent should return true.
*/
passPercentage: pulumi.Input<number>;
/**
* The return value of the rule.
*/
returnValue?: pulumi.Input<inputs.GateRuleReturnValue>;
}
export interface GateRuleCondition {
customId?: pulumi.Input<string>;
field?: pulumi.Input<string>;
operator?: pulumi.Input<string>;
targetValues?: pulumi.Input<pulumi.Input<string>[]>;
type: pulumi.Input<string>;
}
export interface GateRuleReturnValue {
}
export interface MetricFunnelEventList {
/**
* The name of the funnel event used in the metric.
*/
name: pulumi.Input<string>;
/**
* The type of funnel event, specifying how the event is tracked.
*/
type: pulumi.Input<string>;
}
export interface MetricMetricComponentMetric {
name: pulumi.Input<string>;
type: pulumi.Input<string>;
}
export interface MetricMetricEvent {
/**
* Filtering criteria for the metric event, including conditions and values to refine the event data.
*/
criterias?: pulumi.Input<pulumi.Input<inputs.MetricMetricEventCriteria>[]>;
/**
* The key for associated metadata, if applicable.
*/
metadataKey?: pulumi.Input<string>;
/**
* The name of the metric event.
*/
name: pulumi.Input<string>;
/**
* The type of metric event. Allowed values include: count, count_distinct, value, and metadata.
*/
type?: pulumi.Input<string>;
}
export interface MetricMetricEventCriteria {
/**
* Optional column specifying which data attribute to filter on.
*/
column?: pulumi.Input<string>;
/**
* sql*filter, start*withs, ends*with, and after*exposure are only applicable in Warehouse Native
*/
condition: pulumi.Input<string>;
/**
* If true, overrides null values in criterion evaluation.
*/
nullVacuousOverride?: pulumi.Input<boolean>;
/**
* Type of event criterion for filtering metrics. Options include `value`, `metadata`, `user`, and `userCustom`; in Warehouse Native, this should always be `metadata`.
*/
type: pulumi.Input<string>;
/**
* Optional array of values for the criterion to match against.
*/
values?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface MetricSourceCustomFieldMapping {
/**
* The formula or expression used to compute the custom field value.
*/
formula: pulumi.Input<string>;
/**
* The identifier for the custom field mapping.
*/
key: pulumi.Input<string>;
}
export interface MetricSourceIdTypeMapping {
/**
* The corresponding column name in the source that relates to the Statsig unit ID.
*/
column: pulumi.Input<string>;
/**
* The identifier mapping for Statsig units.
*/
statsigUnitId: pulumi.Input<string>;
}
export interface MetricSourceOwner {
/**
* The email of the owner. This field is optional.
*/
ownerEmail?: pulumi.Input<string>;
/**
* ID of the owner
*/
ownerId?: pulumi.Input<string>;
/**
* The name of the owner. This field is optional.
*/
ownerName?: pulumi.Input<string>;
/**
* Type of the owner (e.g., SDK_KEY or USER)
*/
ownerType?: pulumi.Input<string>;
}
export interface MetricWarehouseNative {
/**
* Allowed: count┃sum┃mean┃daily*participation┃ratio┃funnel┃count*distinct┃percentile
*/
aggregation?: pulumi.Input<string>;
/**
* Include units which do not have a denominator. Only applicable to ratios.
*/
allowNullRatioDenominator?: pulumi.Input<boolean>;
/**
* Maximum cap for metric values.
*/
cap?: pulumi.Input<number>;
/**
* Filtering criteria for the metric source
*/
criterias?: pulumi.Input<pulumi.Input<inputs.MetricWarehouseNativeCriteria>[]>;
/**
* Attribution window for CUPED adjustments in days.
*/
cupedAttributionWindow?: pulumi.Input<number>;
/**
* Custom end date for rollup in days since exposure.
*/
customRollUpEnd?: pulumi.Input<number>;
/**
* Custom start date for rollup in days since exposure.
*/
customRollUpStart?: pulumi.Input<number>;
/**
* Allowed: count┃sum┃mean┃daily*participation┃ratio┃funnel┃count*distinct┃percentile
*/
denominatorAggregation?: pulumi.Input<string>;
/**
* Filtering criteria for the denominator metric source, if this metric is a ratio
*/
denominatorCriterias?: pulumi.Input<pulumi.Input<inputs.MetricWarehouseNativeDenominatorCriteria>[]>;
/**
* Custom end date for rollup in days since exposure.
*/
denominatorCustomRollupEnd?: pulumi.Input<number>;
/**
* Custom start date for rollup in days since exposure.
*/
denominatorCustomRollupStart?: pulumi.Input<number>;
/**
* Name of the metric source for the denominator.
*/
denominatorMetricSourceName?: pulumi.Input<string>;
/**
* Time window for the denominator metric. Specify "custom" for a custom window.
*/
denominatorRollupTimeWindow?: pulumi.Input<string>;
/**
* Column name for the denominator’s value.
*/
denominatorValueColumn?: pulumi.Input<string>;
/**
* Duration for counting funnel events in days.
*/
funnelCalculationWindow?: pulumi.Input<number>;
/**
* Allowed: users┃sessions for distinct count method in funnel events.
*/
funnelCountDistinct?: pulumi.Input<string>;
/**
* List of funnel events with associated criteria and identifiers.
*/
funnelEvents?: pulumi.Input<pulumi.Input<inputs.MetricWarehouseNativeFunnelEvent>[]>;
/**
* Allowed: start_event┃exposure to determine funnel start criteria.
*/
funnelStartCriteria?: pulumi.Input<string>;
/**
* Number of days for metric baking; specify duration for analysis.
*/
metricBakeDays?: pulumi.Input<number>;
/**
* Specify metadata columns for breaking down metric analysis.
*/
metricDimensionColumns?: pulumi.Input<pulumi.Input<string>[]>;
/**
* For Count, Sum, Mean, User Count aggregation types: the name of metric source
*/
metricSourceName?: pulumi.Input<string>;
/**
* Aggregation type for numerator; Allowed: count┃sum┃mean┃daily*participation┃ratio┃funnel┃count*distinct┃percentile.
*/
numeratorAggregation?: pulumi.Input<string>;
/**
* Flag to include only users with a conversion event in the metric.
*/
onlyIncludeUsersWithConversionEvent?: pulumi.Input<boolean>;
/**
* Percentile value for statistical calculations.
*/
percentile?: pulumi.Input<number>;
/**
* General time window for rollup; can specify custom settings.
*/
rollupTimeWindow?: pulumi.Input<string>;
/**
* Column name representing the metric’s value.
*/
valueColumn?: pulumi.Input<string>;
/**
* Threshold value for filtering metrics.
*/
valueThreshold?: pulumi.Input<number>;
waitForCohortWindow?: pulumi.Input<boolean>;
/**
* High threshold for winsorization; must be between 0 and 1.
*/
winsorizationHigh?: pulumi.Input<number>;
/**
* Low threshold for winsorization; must be between 0 and 1.
*/
winsorizationLow?: pulumi.Input<number>;
}
export interface MetricWarehouseNativeCriteria {
/**
* Optional column specifying which data attribute to filter on.
*/
column?: pulumi.Input<string>;
/**
* sql*filter, start*withs, ends*with, and after*exposure are only applicable in Warehouse Native
*/
condition: pulumi.Input<string>;
/**
* If true, overrides null values in criterion evaluation.
*/
nullVacuousOverride?: pulumi.Input<boolean>;
/**
* Type of event criterion for filtering metrics. Options include `value`, `metadata`, `user`, and `userCustom`; in Warehouse Native, this should always be `metadata`.
*/
type: pulumi.Input<string>;
/**
* Optional array of values for the criterion to match against.
*/
values?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface MetricWarehouseNativeDenominatorCriteria {
/**
* Optional column specifying which data attribute to filter on.
*/
column?: pulumi.Input<string>;
/**
* sql*filter, start*withs, ends*with, and after*exposure are only applicable in Warehouse Native
*/
condition: pulumi.Input<string>;
/**
* If true, overrides null values in criterion evaluation.
*/
nullVacuousOverride?: pulumi.Input<boolean>;
/**
* Type of event criterion for filtering metrics. Options include `value`, `metadata`, `user`, and `userCustom`; in Warehouse Native, this should always be `metadata`.
*/
type: pulumi.Input<string>;
/**
* Optional array of values for the criterion to match against.
*/
values?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface MetricWarehouseNativeFunnelEvent {
/**
* Optional array of criteria to filter the funnel events, defined by various types and conditions.
*/
criterias?: pulumi.Input<pulumi.Input<inputs.MetricWarehouseNativeFunnelEventCriteria>[]>;
/**
* Optional name of the metric source associated with the funnel event.
*/
metricSourceName?: pulumi.Input<string>;
/**
* Optional step name for the funnel event, can be null if not specified.
*/
name?: pulumi.Input<string>;
/**
* Name of column which being used as session identifier. Funnel event with the same metric source
*/
sessionIdentifierField?: pulumi.Input<string>;
}
export interface MetricWarehouseNativeFunnelEventCriteria {
/**
* Optional column specifying which data attribute to filter on.
*/
column?: pulumi.Input<string>;
/**
* sql*filter, start*withs, ends*with, and after*exposure are only applicable in Warehouse Native
*/
condition: pulumi.Input<string>;
/**
* If true, overrides null values in criterion evaluation.
*/
nullVacuousOverride?: pulumi.Input<boolean>;
/**
* Type of event criterion for filtering metrics. Options include `value`, `metadata`, `user`, and `userCustom`; in Warehouse Native, this should always be `metadata`.
*/
type: pulumi.Input<string>;
/**
* Optional array of values for the criterion to match against.
*/
values?: pulumi.Input<pulumi.Input<string>[]>;
}