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