{
  "name": "statsig",
  "displayName": "Statsig",
  "version": "0.0.1",
  "description": "A Pulumi package for creating and managing Statsig resources.",
  "keywords": [
    "statsig",
    "category/cloud"
  ],
  "homepage": "https://www.statsig.com",
  "license": "Apache-2.0",
  "attribution": "This Pulumi package is based on the [`statsig` Terraform Provider](https://github.com/statsig-io/terraform-provider-statsig).",
  "repository": "https://github.com/statsig-io/pulumi-statsig",
  "logoUrl": "https://statsig-aws-marketplace-asset.s3.us-west-1.amazonaws.com/statsig-logo.png",
  "publisher": "Statsig",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "packageReferences": {
        "Pulumi": "3.*"
      },
      "namespaces": {
        "statsig": "Pulumi"
      },
      "compatibility": "tfbridge20",
      "rootNamespace": "Statsig",
      "respectSchemaVersion": true
    },
    "go": {
      "importBasePath": "github.com/statsig-io/pulumi-statsig/sdk/go/statsig",
      "generateResourceContainerTypes": true,
      "generateExtraInputTypes": true,
      "respectSchemaVersion": true
    },
    "nodejs": {
      "packageName": "@statsig/pulumi-statsig",
      "packageDescription": "A Pulumi package for creating and managing Statsig resources.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/statsig-io/terraform-provider-statsig)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-statsig` repo](https://github.com/statsig-io/pulumi-statsig/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-statsig` repo](https://github.com/statsig-io/terraform-provider-statsig/issues).",
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "respectSchemaVersion": true
    },
    "python": {
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/statsig-io/terraform-provider-statsig)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-statsig` repo](https://github.com/statsig-io/pulumi-statsig/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-statsig` repo](https://github.com/statsig-io/terraform-provider-statsig/issues).",
      "compatibility": "tfbridge20",
      "respectSchemaVersion": true,
      "pyproject": {
        "enabled": true
      }
    }
  },
  "config": {
    "variables": {
      "consoleApiKey": {
        "type": "string",
        "description": "A Statsig Console API Key\n",
        "secret": true
      }
    }
  },
  "types": {
    "statsig:index/EntityPropertyIdTypeMapping:EntityPropertyIdTypeMapping": {
      "properties": {
        "column": {
          "type": "string",
          "description": "Column name linked to the ID.\n"
        },
        "statsigUnitId": {
          "type": "string",
          "description": "ID for the Statsig unit.\n"
        }
      },
      "type": "object",
      "required": [
        "column",
        "statsigUnitId"
      ]
    },
    "statsig:index/EntityPropertyOwner:EntityPropertyOwner": {
      "properties": {
        "ownerEmail": {
          "type": "string",
          "description": "The email of the owner. This field is optional.\n"
        },
        "ownerId": {
          "type": "string",
          "description": "ID of the owner\n"
        },
        "ownerName": {
          "type": "string",
          "description": "The name of the owner. This field is optional.\n"
        },
        "ownerType": {
          "type": "string",
          "description": "Type of the owner (e.g., SDK_KEY or USER)\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "ownerEmail",
            "ownerId",
            "ownerName",
            "ownerType"
          ]
        }
      }
    },
    "statsig:index/ExperimentGroup:ExperimentGroup": {
      "properties": {
        "description": {
          "type": "string"
        },
        "disabled": {
          "type": "boolean"
        },
        "foreignGroupId": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "parameterValues": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "size": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "name",
        "parameterValues",
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "description",
            "disabled",
            "foreignGroupId",
            "id",
            "name",
            "parameterValues",
            "size"
          ]
        }
      }
    },
    "statsig:index/ExperimentLink:ExperimentLink": {
      "properties": {
        "title": {
          "type": "string",
          "description": "The title of the link\n"
        },
        "url": {
          "type": "string",
          "description": "The URL of the link\n"
        }
      },
      "type": "object",
      "required": [
        "url"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "title",
            "url"
          ]
        }
      }
    },
    "statsig:index/ExperimentPrimaryMetric:ExperimentPrimaryMetric": {
      "properties": {
        "direction": {
          "type": "string"
        },
        "hypothesizedValue": {
          "type": "number"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "direction",
            "hypothesizedValue",
            "name",
            "type"
          ]
        }
      }
    },
    "statsig:index/ExperimentSecondaryMetric:ExperimentSecondaryMetric": {
      "properties": {
        "direction": {
          "type": "string"
        },
        "hypothesizedValue": {
          "type": "number"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "direction",
            "hypothesizedValue",
            "name",
            "type"
          ]
        }
      }
    },
    "statsig:index/GateMonitoringMetric:GateMonitoringMetric": {
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "type"
          ]
        }
      }
    },
    "statsig:index/GateRule:GateRule": {
      "properties": {
        "baseId": {
          "type": "string",
          "description": "The base ID of this rule, i.e. without any added metadata. Will remain the exact same throughout\n"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FGateRuleCondition:GateRuleCondition"
          },
          "description": "An array of Condition objects.\n"
        },
        "environments": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The environments this rule is enabled for.\n"
        },
        "id": {
          "type": "string",
          "description": "The Statsig ID of this rule.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of this rule.\n"
        },
        "passPercentage": {
          "type": "number",
          "description": "Of the users that meet the conditions of this rule, what percent should return true.\n"
        },
        "returnValue": {
          "$ref": "#/types/statsig:index%2FGateRuleReturnValue:GateRuleReturnValue",
          "description": "The return value of the rule.\n"
        }
      },
      "type": "object",
      "required": [
        "conditions",
        "name",
        "passPercentage"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "baseId",
            "conditions",
            "environments",
            "id",
            "name",
            "passPercentage",
            "returnValue"
          ]
        }
      }
    },
    "statsig:index/GateRuleCondition:GateRuleCondition": {
      "properties": {
        "customId": {
          "type": "string"
        },
        "field": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "targetValues": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "customId",
            "field",
            "operator",
            "targetValues",
            "type"
          ]
        }
      }
    },
    "statsig:index/GateRuleReturnValue:GateRuleReturnValue": {
      "type": "object"
    },
    "statsig:index/MetricFunnelEventList:MetricFunnelEventList": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the funnel event used in the metric.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of funnel event, specifying how the event is tracked.\n"
        }
      },
      "type": "object",
      "required": [
        "name",
        "type"
      ]
    },
    "statsig:index/MetricMetricComponentMetric:MetricMetricComponentMetric": {
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name",
        "type"
      ]
    },
    "statsig:index/MetricMetricEvent:MetricMetricEvent": {
      "properties": {
        "criterias": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricMetricEventCriteria:MetricMetricEventCriteria"
          },
          "description": "Filtering criteria for the metric event, including conditions and values to refine the event data.\n"
        },
        "metadataKey": {
          "type": "string",
          "description": "The key for associated metadata, if applicable.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the metric event.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of metric event. Allowed values include: count, count_distinct, value, and metadata.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "criterias",
            "metadataKey",
            "name",
            "type"
          ]
        }
      }
    },
    "statsig:index/MetricMetricEventCriteria:MetricMetricEventCriteria": {
      "properties": {
        "column": {
          "type": "string",
          "description": "Optional column specifying which data attribute to filter on.\n"
        },
        "condition": {
          "type": "string",
          "description": "sql*filter, start*withs, ends*with, and after*exposure are only applicable in Warehouse Native\n"
        },
        "nullVacuousOverride": {
          "type": "boolean",
          "description": "If true, overrides null values in criterion evaluation.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of event criterion for filtering metrics. Options include `value`, `metadata`, `user`, and `user_custom`; in Warehouse Native, this should always be `metadata`.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional array of values for the criterion to match against.\n"
        }
      },
      "type": "object",
      "required": [
        "condition",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "column",
            "condition",
            "nullVacuousOverride",
            "type",
            "values"
          ]
        }
      }
    },
    "statsig:index/MetricSourceCustomFieldMapping:MetricSourceCustomFieldMapping": {
      "properties": {
        "formula": {
          "type": "string",
          "description": "The formula or expression used to compute the custom field value.\n"
        },
        "key": {
          "type": "string",
          "description": "The identifier for the custom field mapping.\n"
        }
      },
      "type": "object",
      "required": [
        "formula",
        "key"
      ]
    },
    "statsig:index/MetricSourceIdTypeMapping:MetricSourceIdTypeMapping": {
      "properties": {
        "column": {
          "type": "string",
          "description": "The corresponding column name in the source that relates to the Statsig unit ID.\n"
        },
        "statsigUnitId": {
          "type": "string",
          "description": "The identifier mapping for Statsig units.\n"
        }
      },
      "type": "object",
      "required": [
        "column",
        "statsigUnitId"
      ]
    },
    "statsig:index/MetricSourceOwner:MetricSourceOwner": {
      "properties": {
        "ownerEmail": {
          "type": "string",
          "description": "The email of the owner. This field is optional.\n"
        },
        "ownerId": {
          "type": "string",
          "description": "ID of the owner\n"
        },
        "ownerName": {
          "type": "string",
          "description": "The name of the owner. This field is optional.\n"
        },
        "ownerType": {
          "type": "string",
          "description": "Type of the owner (e.g., SDK_KEY or USER)\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "ownerEmail",
            "ownerId",
            "ownerName",
            "ownerType"
          ]
        }
      }
    },
    "statsig:index/MetricWarehouseNative:MetricWarehouseNative": {
      "properties": {
        "aggregation": {
          "type": "string",
          "description": "Allowed: count┃sum┃mean┃daily*participation┃ratio┃funnel┃count*distinct┃percentile\n"
        },
        "allowNullRatioDenominator": {
          "type": "boolean",
          "description": "Include units which do not have a denominator. Only applicable to ratios.\n"
        },
        "cap": {
          "type": "number",
          "description": "Maximum cap for metric values.\n"
        },
        "criterias": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricWarehouseNativeCriteria:MetricWarehouseNativeCriteria"
          },
          "description": "Filtering criteria for the metric source\n"
        },
        "cupedAttributionWindow": {
          "type": "number",
          "description": "Attribution window for CUPED adjustments in days.\n"
        },
        "customRollUpEnd": {
          "type": "number",
          "description": "Custom end date for rollup in days since exposure.\n"
        },
        "customRollUpStart": {
          "type": "number",
          "description": "Custom start date for rollup in days since exposure.\n"
        },
        "denominatorAggregation": {
          "type": "string",
          "description": "Allowed: count┃sum┃mean┃daily*participation┃ratio┃funnel┃count*distinct┃percentile\n"
        },
        "denominatorCriterias": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricWarehouseNativeDenominatorCriteria:MetricWarehouseNativeDenominatorCriteria"
          },
          "description": "Filtering criteria for the denominator metric source, if this metric is a ratio\n"
        },
        "denominatorCustomRollupEnd": {
          "type": "number",
          "description": "Custom end date for rollup in days since exposure.\n"
        },
        "denominatorCustomRollupStart": {
          "type": "number",
          "description": "Custom start date for rollup in days since exposure.\n"
        },
        "denominatorMetricSourceName": {
          "type": "string",
          "description": "Name of the metric source for the denominator.\n"
        },
        "denominatorRollupTimeWindow": {
          "type": "string",
          "description": "Time window for the denominator metric. Specify \"custom\" for a custom window.\n"
        },
        "denominatorValueColumn": {
          "type": "string",
          "description": "Column name for the denominator’s value.\n"
        },
        "funnelCalculationWindow": {
          "type": "number",
          "description": "Duration for counting funnel events in days.\n"
        },
        "funnelCountDistinct": {
          "type": "string",
          "description": "Allowed: users┃sessions for distinct count method in funnel events.\n"
        },
        "funnelEvents": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricWarehouseNativeFunnelEvent:MetricWarehouseNativeFunnelEvent"
          },
          "description": "List of funnel events with associated criteria and identifiers.\n"
        },
        "funnelStartCriteria": {
          "type": "string",
          "description": "Allowed: start_event┃exposure to determine funnel start criteria.\n"
        },
        "metricBakeDays": {
          "type": "number",
          "description": "Number of days for metric baking; specify duration for analysis.\n"
        },
        "metricDimensionColumns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specify metadata columns for breaking down metric analysis.\n"
        },
        "metricSourceName": {
          "type": "string",
          "description": "For Count, Sum, Mean, User Count aggregation types: the name of metric source\n"
        },
        "numeratorAggregation": {
          "type": "string",
          "description": "Aggregation type for numerator; Allowed: count┃sum┃mean┃daily*participation┃ratio┃funnel┃count*distinct┃percentile.\n"
        },
        "onlyIncludeUsersWithConversionEvent": {
          "type": "boolean",
          "description": "Flag to include only users with a conversion event in the metric.\n"
        },
        "percentile": {
          "type": "number",
          "description": "Percentile value for statistical calculations.\n"
        },
        "rollupTimeWindow": {
          "type": "string",
          "description": "General time window for rollup; can specify custom settings.\n"
        },
        "valueColumn": {
          "type": "string",
          "description": "Column name representing the metric’s value.\n"
        },
        "valueThreshold": {
          "type": "number",
          "description": "Threshold value for filtering metrics.\n"
        },
        "waitForCohortWindow": {
          "type": "boolean"
        },
        "winsorizationHigh": {
          "type": "number",
          "description": "High threshold for winsorization; must be between 0 and 1.\n"
        },
        "winsorizationLow": {
          "type": "number",
          "description": "Low threshold for winsorization; must be between 0 and 1.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "aggregation",
            "allowNullRatioDenominator",
            "cap",
            "criterias",
            "cupedAttributionWindow",
            "customRollUpEnd",
            "customRollUpStart",
            "denominatorAggregation",
            "denominatorCriterias",
            "denominatorCustomRollupEnd",
            "denominatorCustomRollupStart",
            "denominatorMetricSourceName",
            "denominatorRollupTimeWindow",
            "denominatorValueColumn",
            "funnelCalculationWindow",
            "funnelCountDistinct",
            "funnelEvents",
            "funnelStartCriteria",
            "metricBakeDays",
            "metricDimensionColumns",
            "metricSourceName",
            "numeratorAggregation",
            "onlyIncludeUsersWithConversionEvent",
            "percentile",
            "rollupTimeWindow",
            "valueColumn",
            "valueThreshold",
            "waitForCohortWindow",
            "winsorizationHigh",
            "winsorizationLow"
          ]
        }
      }
    },
    "statsig:index/MetricWarehouseNativeCriteria:MetricWarehouseNativeCriteria": {
      "properties": {
        "column": {
          "type": "string",
          "description": "Optional column specifying which data attribute to filter on.\n"
        },
        "condition": {
          "type": "string",
          "description": "sql*filter, start*withs, ends*with, and after*exposure are only applicable in Warehouse Native\n"
        },
        "nullVacuousOverride": {
          "type": "boolean",
          "description": "If true, overrides null values in criterion evaluation.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of event criterion for filtering metrics. Options include `value`, `metadata`, `user`, and `user_custom`; in Warehouse Native, this should always be `metadata`.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional array of values for the criterion to match against.\n"
        }
      },
      "type": "object",
      "required": [
        "condition",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "column",
            "condition",
            "nullVacuousOverride",
            "type",
            "values"
          ]
        }
      }
    },
    "statsig:index/MetricWarehouseNativeDenominatorCriteria:MetricWarehouseNativeDenominatorCriteria": {
      "properties": {
        "column": {
          "type": "string",
          "description": "Optional column specifying which data attribute to filter on.\n"
        },
        "condition": {
          "type": "string",
          "description": "sql*filter, start*withs, ends*with, and after*exposure are only applicable in Warehouse Native\n"
        },
        "nullVacuousOverride": {
          "type": "boolean",
          "description": "If true, overrides null values in criterion evaluation.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of event criterion for filtering metrics. Options include `value`, `metadata`, `user`, and `user_custom`; in Warehouse Native, this should always be `metadata`.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional array of values for the criterion to match against.\n"
        }
      },
      "type": "object",
      "required": [
        "condition",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "column",
            "condition",
            "nullVacuousOverride",
            "type",
            "values"
          ]
        }
      }
    },
    "statsig:index/MetricWarehouseNativeFunnelEvent:MetricWarehouseNativeFunnelEvent": {
      "properties": {
        "criterias": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricWarehouseNativeFunnelEventCriteria:MetricWarehouseNativeFunnelEventCriteria"
          },
          "description": "Optional array of criteria to filter the funnel events, defined by various types and conditions.\n"
        },
        "metricSourceName": {
          "type": "string",
          "description": "Optional name of the metric source associated with the funnel event.\n"
        },
        "name": {
          "type": "string",
          "description": "Optional step name for the funnel event, can be null if not specified.\n"
        },
        "sessionIdentifierField": {
          "type": "string",
          "description": "Name of column which being used as session identifier. Funnel event with the same metric source\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "criterias",
            "metricSourceName",
            "name",
            "sessionIdentifierField"
          ]
        }
      }
    },
    "statsig:index/MetricWarehouseNativeFunnelEventCriteria:MetricWarehouseNativeFunnelEventCriteria": {
      "properties": {
        "column": {
          "type": "string",
          "description": "Optional column specifying which data attribute to filter on.\n"
        },
        "condition": {
          "type": "string",
          "description": "sql*filter, start*withs, ends*with, and after*exposure are only applicable in Warehouse Native\n"
        },
        "nullVacuousOverride": {
          "type": "boolean",
          "description": "If true, overrides null values in criterion evaluation.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of event criterion for filtering metrics. Options include `value`, `metadata`, `user`, and `user_custom`; in Warehouse Native, this should always be `metadata`.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional array of values for the criterion to match against.\n"
        }
      },
      "type": "object",
      "required": [
        "condition",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "column",
            "condition",
            "nullVacuousOverride",
            "type",
            "values"
          ]
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the statsig package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
    "properties": {
      "consoleApiKey": {
        "type": "string",
        "description": "A Statsig Console API Key\n",
        "secret": true
      }
    },
    "type": "object",
    "inputProperties": {
      "consoleApiKey": {
        "type": "string",
        "description": "A Statsig Console API Key\n",
        "secret": true
      }
    },
    "methods": {
      "terraformConfig": "pulumi:providers:statsig/terraformConfig"
    }
  },
  "resources": {
    "statsig:index/entityProperty:EntityProperty": {
      "description": "This resource allows you to configure entity properties for your Statsig project.\n\nTo learn more about entity properties, see [Entity Properties Documentation](https://docs.statsig.com/statsig-warehouse-native/features/entity-properties/)\n\nTo learn more about the API powering this resource, see [Experiments API Documentation](https://docs.statsig.com/console-api/experiments)\n\n> Note: This resource is only available for [Warehouse Native](https://docs.statsig.com/statsig-warehouse-native/introduction/) projects\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  example:\n    type: statsig:EntityProperty\n    properties:\n      description: A short description of this entity property.\n      idTypeMappings:\n        - column: user_id\n          statsig_unit_id: userID\n      isReadOnly: false\n      sql: SELECT * FROM `shoppy-sales.kenny_dev.users`\n      tags:\n        - test-tag\n      timestampColumn: ts\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "description": {
          "type": "string",
          "description": "Optional detailed context for the entity property source.\n"
        },
        "idTypeMappings": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FEntityPropertyIdTypeMapping:EntityPropertyIdTypeMapping"
          },
          "description": "Mappings of Statsig units to their columns.\n"
        },
        "isReadOnly": {
          "type": "boolean",
          "description": "Specifies if the source can only be edited via the Console API.\n"
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the entity property source.\n"
        },
        "owner": {
          "$ref": "#/types/statsig:index%2FEntityPropertyOwner:EntityPropertyOwner",
          "description": "Schema for owner data including ID, type, name. Note that if Entity is created by CONSOLE API, owner will be undefined.\n"
        },
        "sql": {
          "type": "string",
          "description": "SQL query defining the data source.\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional tags for categorization.\n"
        },
        "timestampAsDay": {
          "type": "boolean",
          "description": "Indicates if the timestamp is treated as a day.\n"
        },
        "timestampColumn": {
          "type": "string",
          "description": "Optional column name for timestamp.\n"
        }
      },
      "type": "object",
      "required": [
        "description",
        "idTypeMappings",
        "isReadOnly",
        "name",
        "owner",
        "sql",
        "tags",
        "timestampAsDay",
        "timestampColumn"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Optional detailed context for the entity property source.\n"
        },
        "idTypeMappings": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FEntityPropertyIdTypeMapping:EntityPropertyIdTypeMapping"
          },
          "description": "Mappings of Statsig units to their columns.\n"
        },
        "isReadOnly": {
          "type": "boolean",
          "description": "Specifies if the source can only be edited via the Console API.\n"
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the entity property source.\n"
        },
        "sql": {
          "type": "string",
          "description": "SQL query defining the data source.\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional tags for categorization.\n"
        },
        "timestampAsDay": {
          "type": "boolean",
          "description": "Indicates if the timestamp is treated as a day.\n"
        },
        "timestampColumn": {
          "type": "string",
          "description": "Optional column name for timestamp.\n"
        }
      },
      "requiredInputs": [
        "idTypeMappings",
        "sql"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering EntityProperty resources.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Optional detailed context for the entity property source.\n"
          },
          "idTypeMappings": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FEntityPropertyIdTypeMapping:EntityPropertyIdTypeMapping"
            },
            "description": "Mappings of Statsig units to their columns.\n"
          },
          "isReadOnly": {
            "type": "boolean",
            "description": "Specifies if the source can only be edited via the Console API.\n"
          },
          "name": {
            "type": "string",
            "description": "Unique identifier for the entity property source.\n"
          },
          "owner": {
            "$ref": "#/types/statsig:index%2FEntityPropertyOwner:EntityPropertyOwner",
            "description": "Schema for owner data including ID, type, name. Note that if Entity is created by CONSOLE API, owner will be undefined.\n"
          },
          "sql": {
            "type": "string",
            "description": "SQL query defining the data source.\n"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional tags for categorization.\n"
          },
          "timestampAsDay": {
            "type": "boolean",
            "description": "Indicates if the timestamp is treated as a day.\n"
          },
          "timestampColumn": {
            "type": "string",
            "description": "Optional column name for timestamp.\n"
          }
        },
        "type": "object"
      }
    },
    "statsig:index/experiment:Experiment": {
      "description": "This resource allows you to configure experiments for your Statsig project.\n\nTo learn more about experiments, see [Experiments Documentation](https://docs.statsig.com/experiments-plus/)\n\nTo learn more about the API powering this resource, see [Experiments API Documentation](https://docs.statsig.com/console-api/experiments)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  simple:\n    type: statsig:Experiment\n    properties:\n      allocation: 10\n      description: A short description of what this Experiment is used for.\n      groups:\n        - name: Test\n          parameter_values:\n            - aString: test\n          size: 50\n        - name: Control\n          parameter_values:\n            - aString: control\n          size: 50\n      idType: userID\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "allocation": {
          "type": "number",
          "description": "Percent of layer allocated to this experiment\n"
        },
        "allocationDuration": {
          "type": "integer",
          "description": "Warehouse Native Only - Allocation duration in days\n"
        },
        "analysisEndTime": {
          "type": "string",
          "description": "Warehouse Native only - end time for analysis only experiments\n"
        },
        "analyticsType": {
          "type": "string",
          "description": "The mode of analysis for the experiment, e.g frequentist, bayesian, sprt\n"
        },
        "assignmentSourceExperimentName": {
          "type": "string",
          "description": "Name of the source experiment for assignment\n"
        },
        "assignmentSourceName": {
          "type": "string",
          "description": "Source name of the assignment\n"
        },
        "benjaminiHochbergPerMetric": {
          "type": "boolean",
          "description": "Is Benjamini-Hochberg procedure applied per metric?\n"
        },
        "benjaminiHochbergPerVariant": {
          "type": "boolean",
          "description": "Is Benjamini-Hochberg procedure applied per variant?\n"
        },
        "benjaminiPrimaryMetricsOnly": {
          "type": "boolean",
          "description": "Is Benjamini-Hochberg procedure applied for primary metrics only?\n"
        },
        "bonferroniCorrection": {
          "type": "boolean",
          "description": "Is Bonferroni correction applied per variant?\n"
        },
        "bonferroniCorrectionPerMetric": {
          "type": "boolean",
          "description": "Is Bonferroni correction applied per metric?\n"
        },
        "cohortWaitUntilEndToInclude": {
          "type": "boolean",
          "description": "Warehouse Native Only - Whether to filter to units whose experiment cohort analysis duration is complete, if cohortedAnalysisDuration exists\n"
        },
        "cohortedAnalysisDuration": {
          "type": "integer",
          "description": "Warehouse Native Only - Cohorted analysis duration in days\n"
        },
        "cohortedMetricsMatureAfterEnd": {
          "type": "boolean",
          "description": "Warehouse Native Only - Allow cohort metrics to mature after experiment end\n"
        },
        "controlGroupId": {
          "type": "string",
          "description": "Optional control group ID\n"
        },
        "creatorEmail": {
          "type": "string",
          "description": "The email of the creator of this experiment\n"
        },
        "creatorId": {
          "type": "string",
          "description": "The Statsig ID of the creator of this experiment\n"
        },
        "defaultConfidenceInterval": {
          "type": "string",
          "description": "Default error margin used for results\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the new experiment\n"
        },
        "duration": {
          "type": "integer",
          "description": "How long the experiment is expected to last in days\n"
        },
        "fixedAnalysisDuration": {
          "type": "integer",
          "description": "Fixed analysis duration in days\n"
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FExperimentGroup:ExperimentGroup"
          },
          "description": "The test groups for your experiment\n"
        },
        "hypothesis": {
          "type": "string",
          "description": "A statement that will be tested by this experiment\n"
        },
        "idType": {
          "type": "string",
          "description": "The idType the experiment will be performed on\n"
        },
        "isAnalysisOnly": {
          "type": "boolean",
          "description": "For Warehouse Native\n"
        },
        "launchedGroupId": {
          "type": "string",
          "description": "ID of the launched group, null otherwise\n"
        },
        "layerId": {
          "type": "string",
          "description": "Which layer to place the experiment into.\n"
        },
        "links": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FExperimentLink:ExperimentLink"
          },
          "description": "Links to relevant documentation or resources\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the new experiment\n"
        },
        "primaryMetricTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Primary metric tags for the experiment\n"
        },
        "primaryMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FExperimentPrimaryMetric:ExperimentPrimaryMetric"
          },
          "description": "Main metrics needed to evaluate your hypothesis\n"
        },
        "scheduledReloadHour": {
          "type": "integer",
          "description": "Warehouse Native only - UTC hour at which to run scheduled pulse loads\n"
        },
        "scheduledReloadType": {
          "type": "string",
          "description": "Warehouse Native only - reload type for scheduled reloads\n"
        },
        "secondaryIdtype": {
          "type": "string",
          "description": "The secondary ID type for the experiment used in WHN for ID resolution\n"
        },
        "secondaryMetricTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Secondary metric tags for the experiment\n"
        },
        "secondaryMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FExperimentSecondaryMetric:ExperimentSecondaryMetric"
          },
          "description": "Additional metrics to monitor that might impact the analysis or final decision of the experiment\n"
        },
        "sequentialTesting": {
          "type": "boolean",
          "description": "Apply sequential testing?\n"
        },
        "status": {
          "type": "string",
          "description": "The current status of the experiment\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags associated with the experiment\n"
        },
        "targetApps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Target apps assigned to this experiment\n"
        },
        "targetExposures": {
          "type": "integer",
          "description": "Target exposures for the experiment\n"
        },
        "targetingGateId": {
          "type": "string",
          "description": "Restrict your experiment to users passing the selected feature gate\n"
        },
        "team": {
          "type": "string",
          "description": "Enterprise only\n"
        }
      },
      "type": "object",
      "required": [
        "allocation",
        "allocationDuration",
        "analysisEndTime",
        "analyticsType",
        "assignmentSourceExperimentName",
        "assignmentSourceName",
        "benjaminiHochbergPerMetric",
        "benjaminiHochbergPerVariant",
        "benjaminiPrimaryMetricsOnly",
        "bonferroniCorrection",
        "bonferroniCorrectionPerMetric",
        "cohortWaitUntilEndToInclude",
        "cohortedAnalysisDuration",
        "cohortedMetricsMatureAfterEnd",
        "controlGroupId",
        "creatorEmail",
        "creatorId",
        "defaultConfidenceInterval",
        "description",
        "duration",
        "fixedAnalysisDuration",
        "groups",
        "hypothesis",
        "idType",
        "isAnalysisOnly",
        "launchedGroupId",
        "layerId",
        "links",
        "name",
        "primaryMetricTags",
        "primaryMetrics",
        "scheduledReloadHour",
        "scheduledReloadType",
        "secondaryIdtype",
        "secondaryMetricTags",
        "secondaryMetrics",
        "sequentialTesting",
        "status",
        "tags",
        "targetApps",
        "targetExposures",
        "targetingGateId",
        "team"
      ],
      "inputProperties": {
        "allocation": {
          "type": "number",
          "description": "Percent of layer allocated to this experiment\n"
        },
        "allocationDuration": {
          "type": "integer",
          "description": "Warehouse Native Only - Allocation duration in days\n"
        },
        "analysisEndTime": {
          "type": "string",
          "description": "Warehouse Native only - end time for analysis only experiments\n"
        },
        "analyticsType": {
          "type": "string",
          "description": "The mode of analysis for the experiment, e.g frequentist, bayesian, sprt\n"
        },
        "assignmentSourceExperimentName": {
          "type": "string",
          "description": "Name of the source experiment for assignment\n"
        },
        "assignmentSourceName": {
          "type": "string",
          "description": "Source name of the assignment\n"
        },
        "benjaminiHochbergPerMetric": {
          "type": "boolean",
          "description": "Is Benjamini-Hochberg procedure applied per metric?\n"
        },
        "benjaminiHochbergPerVariant": {
          "type": "boolean",
          "description": "Is Benjamini-Hochberg procedure applied per variant?\n"
        },
        "benjaminiPrimaryMetricsOnly": {
          "type": "boolean",
          "description": "Is Benjamini-Hochberg procedure applied for primary metrics only?\n"
        },
        "bonferroniCorrection": {
          "type": "boolean",
          "description": "Is Bonferroni correction applied per variant?\n"
        },
        "bonferroniCorrectionPerMetric": {
          "type": "boolean",
          "description": "Is Bonferroni correction applied per metric?\n"
        },
        "cohortWaitUntilEndToInclude": {
          "type": "boolean",
          "description": "Warehouse Native Only - Whether to filter to units whose experiment cohort analysis duration is complete, if cohortedAnalysisDuration exists\n"
        },
        "cohortedAnalysisDuration": {
          "type": "integer",
          "description": "Warehouse Native Only - Cohorted analysis duration in days\n"
        },
        "cohortedMetricsMatureAfterEnd": {
          "type": "boolean",
          "description": "Warehouse Native Only - Allow cohort metrics to mature after experiment end\n"
        },
        "controlGroupId": {
          "type": "string",
          "description": "Optional control group ID\n"
        },
        "creatorEmail": {
          "type": "string",
          "description": "The email of the creator of this experiment\n"
        },
        "creatorId": {
          "type": "string",
          "description": "The Statsig ID of the creator of this experiment\n"
        },
        "defaultConfidenceInterval": {
          "type": "string",
          "description": "Default error margin used for results\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the new experiment\n"
        },
        "duration": {
          "type": "integer",
          "description": "How long the experiment is expected to last in days\n"
        },
        "fixedAnalysisDuration": {
          "type": "integer",
          "description": "Fixed analysis duration in days\n"
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FExperimentGroup:ExperimentGroup"
          },
          "description": "The test groups for your experiment\n"
        },
        "hypothesis": {
          "type": "string",
          "description": "A statement that will be tested by this experiment\n"
        },
        "idType": {
          "type": "string",
          "description": "The idType the experiment will be performed on\n"
        },
        "isAnalysisOnly": {
          "type": "boolean",
          "description": "For Warehouse Native\n"
        },
        "launchedGroupId": {
          "type": "string",
          "description": "ID of the launched group, null otherwise\n"
        },
        "layerId": {
          "type": "string",
          "description": "Which layer to place the experiment into.\n"
        },
        "links": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FExperimentLink:ExperimentLink"
          },
          "description": "Links to relevant documentation or resources\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the new experiment\n"
        },
        "primaryMetricTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Primary metric tags for the experiment\n"
        },
        "primaryMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FExperimentPrimaryMetric:ExperimentPrimaryMetric"
          },
          "description": "Main metrics needed to evaluate your hypothesis\n"
        },
        "scheduledReloadHour": {
          "type": "integer",
          "description": "Warehouse Native only - UTC hour at which to run scheduled pulse loads\n"
        },
        "scheduledReloadType": {
          "type": "string",
          "description": "Warehouse Native only - reload type for scheduled reloads\n"
        },
        "secondaryIdtype": {
          "type": "string",
          "description": "The secondary ID type for the experiment used in WHN for ID resolution\n"
        },
        "secondaryMetricTags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Secondary metric tags for the experiment\n"
        },
        "secondaryMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FExperimentSecondaryMetric:ExperimentSecondaryMetric"
          },
          "description": "Additional metrics to monitor that might impact the analysis or final decision of the experiment\n"
        },
        "sequentialTesting": {
          "type": "boolean",
          "description": "Apply sequential testing?\n"
        },
        "status": {
          "type": "string",
          "description": "The current status of the experiment\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags associated with the experiment\n"
        },
        "targetApps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Target apps assigned to this experiment\n"
        },
        "targetExposures": {
          "type": "integer",
          "description": "Target exposures for the experiment\n"
        },
        "targetingGateId": {
          "type": "string",
          "description": "Restrict your experiment to users passing the selected feature gate\n"
        },
        "team": {
          "type": "string",
          "description": "Enterprise only\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Experiment resources.\n",
        "properties": {
          "allocation": {
            "type": "number",
            "description": "Percent of layer allocated to this experiment\n"
          },
          "allocationDuration": {
            "type": "integer",
            "description": "Warehouse Native Only - Allocation duration in days\n"
          },
          "analysisEndTime": {
            "type": "string",
            "description": "Warehouse Native only - end time for analysis only experiments\n"
          },
          "analyticsType": {
            "type": "string",
            "description": "The mode of analysis for the experiment, e.g frequentist, bayesian, sprt\n"
          },
          "assignmentSourceExperimentName": {
            "type": "string",
            "description": "Name of the source experiment for assignment\n"
          },
          "assignmentSourceName": {
            "type": "string",
            "description": "Source name of the assignment\n"
          },
          "benjaminiHochbergPerMetric": {
            "type": "boolean",
            "description": "Is Benjamini-Hochberg procedure applied per metric?\n"
          },
          "benjaminiHochbergPerVariant": {
            "type": "boolean",
            "description": "Is Benjamini-Hochberg procedure applied per variant?\n"
          },
          "benjaminiPrimaryMetricsOnly": {
            "type": "boolean",
            "description": "Is Benjamini-Hochberg procedure applied for primary metrics only?\n"
          },
          "bonferroniCorrection": {
            "type": "boolean",
            "description": "Is Bonferroni correction applied per variant?\n"
          },
          "bonferroniCorrectionPerMetric": {
            "type": "boolean",
            "description": "Is Bonferroni correction applied per metric?\n"
          },
          "cohortWaitUntilEndToInclude": {
            "type": "boolean",
            "description": "Warehouse Native Only - Whether to filter to units whose experiment cohort analysis duration is complete, if cohortedAnalysisDuration exists\n"
          },
          "cohortedAnalysisDuration": {
            "type": "integer",
            "description": "Warehouse Native Only - Cohorted analysis duration in days\n"
          },
          "cohortedMetricsMatureAfterEnd": {
            "type": "boolean",
            "description": "Warehouse Native Only - Allow cohort metrics to mature after experiment end\n"
          },
          "controlGroupId": {
            "type": "string",
            "description": "Optional control group ID\n"
          },
          "creatorEmail": {
            "type": "string",
            "description": "The email of the creator of this experiment\n"
          },
          "creatorId": {
            "type": "string",
            "description": "The Statsig ID of the creator of this experiment\n"
          },
          "defaultConfidenceInterval": {
            "type": "string",
            "description": "Default error margin used for results\n"
          },
          "description": {
            "type": "string",
            "description": "A description of the new experiment\n"
          },
          "duration": {
            "type": "integer",
            "description": "How long the experiment is expected to last in days\n"
          },
          "fixedAnalysisDuration": {
            "type": "integer",
            "description": "Fixed analysis duration in days\n"
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FExperimentGroup:ExperimentGroup"
            },
            "description": "The test groups for your experiment\n"
          },
          "hypothesis": {
            "type": "string",
            "description": "A statement that will be tested by this experiment\n"
          },
          "idType": {
            "type": "string",
            "description": "The idType the experiment will be performed on\n"
          },
          "isAnalysisOnly": {
            "type": "boolean",
            "description": "For Warehouse Native\n"
          },
          "launchedGroupId": {
            "type": "string",
            "description": "ID of the launched group, null otherwise\n"
          },
          "layerId": {
            "type": "string",
            "description": "Which layer to place the experiment into.\n"
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FExperimentLink:ExperimentLink"
            },
            "description": "Links to relevant documentation or resources\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the new experiment\n"
          },
          "primaryMetricTags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Primary metric tags for the experiment\n"
          },
          "primaryMetrics": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FExperimentPrimaryMetric:ExperimentPrimaryMetric"
            },
            "description": "Main metrics needed to evaluate your hypothesis\n"
          },
          "scheduledReloadHour": {
            "type": "integer",
            "description": "Warehouse Native only - UTC hour at which to run scheduled pulse loads\n"
          },
          "scheduledReloadType": {
            "type": "string",
            "description": "Warehouse Native only - reload type for scheduled reloads\n"
          },
          "secondaryIdtype": {
            "type": "string",
            "description": "The secondary ID type for the experiment used in WHN for ID resolution\n"
          },
          "secondaryMetricTags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Secondary metric tags for the experiment\n"
          },
          "secondaryMetrics": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FExperimentSecondaryMetric:ExperimentSecondaryMetric"
            },
            "description": "Additional metrics to monitor that might impact the analysis or final decision of the experiment\n"
          },
          "sequentialTesting": {
            "type": "boolean",
            "description": "Apply sequential testing?\n"
          },
          "status": {
            "type": "string",
            "description": "The current status of the experiment\n"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tags associated with the experiment\n"
          },
          "targetApps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Target apps assigned to this experiment\n"
          },
          "targetExposures": {
            "type": "integer",
            "description": "Target exposures for the experiment\n"
          },
          "targetingGateId": {
            "type": "string",
            "description": "Restrict your experiment to users passing the selected feature gate\n"
          },
          "team": {
            "type": "string",
            "description": "Enterprise only\n"
          }
        },
        "type": "object"
      }
    },
    "statsig:index/gate:Gate": {
      "description": "This resource allows you to configure gates for your Statsig project.\n\nTo learn more about gates, see [Gates Documentation](https://docs.statsig.com/feature-flags/)\n\nTo learn more about the API powering this resource, see [Gates API Documentation](https://docs.statsig.com/console-api/gates)\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  full:\n    type: statsig:Gate\n    properties:\n      description: A short description of what this Gate is used for.\n      idType: userID\n      isEnabled: true\n      rules:\n        - conditions:\n            - targetValue: []\n              type: public\n            - operator: any\n              targetValue:\n                - '1'\n                - '2'\n              type: user_id\n            - operator: str_contains_any\n              targetValue:\n                - '@outlook.com'\n                - '@gmail.com'\n              type: email\n            - field: age\n              operator: gt\n              targetValue:\n                - 31\n              type: custom_field\n            - operator: version_gt\n              targetValue:\n                - 1.1.1\n              type: app_version\n            - operator: any\n              targetValue:\n                - Firefox\n                - Chrome\n              type: browser_name\n            - operator: any\n              targetValue:\n                - 94.0.4606.81\n                - 94.0.4606.92\n              type: browser_version\n            - operator: none\n              targetValue:\n                - Android\n                - Windows\n              type: os_name\n            - operator: version_lte\n              targetValue:\n                - 11.0.0\n              type: os_version\n            - operator: any\n              targetValue:\n                - NZ\n                - US\n              type: country\n            - targetValue:\n                - my_gate_2\n              type: passes_gate\n            - targetValue:\n                - a_failing_gate\n              type: fails_gate\n            - operator: after\n              targetValue:\n                - 1.643070357193e+12\n              type: time\n            - operator: any\n              targetValue:\n                - production\n              type: environment_tier\n            - targetValue:\n                - growth_org\n              type: passes_segment\n            - targetValue:\n                - promo_id_list\n              type: fails_segment\n            - operator: any\n              targetValue:\n                - 1.1.1.1\n                - 8.8.8.8\n              type: ip_address\n          environments:\n            - production\n          name: All Conditions\n          pass_percentage: 10\n        - conditions:\n            - targetValue: []\n              type: public\n          environments:\n            - development\n          name: Development Conditions\n          pass_percentage: 10\n  simple:\n    type: statsig:Gate\n    properties:\n      description: A short description of what Another Gate is used for.\n      idType: userID\n      isEnabled: false\n      rules:\n        - conditions:\n            - type: public\n          name: All Conditions\n          pass_percentage: 10\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "creatorEmail": {
          "type": "string"
        },
        "creatorId": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "idType": {
          "type": "string"
        },
        "isEnabled": {
          "type": "boolean"
        },
        "measureMetricLifts": {
          "type": "boolean"
        },
        "monitoringMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FGateMonitoringMetric:GateMonitoringMetric"
          }
        },
        "name": {
          "type": "string",
          "description": "id\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FGateRule:GateRule"
          }
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "targetApps": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "team": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "creatorEmail",
        "creatorId",
        "description",
        "idType",
        "isEnabled",
        "measureMetricLifts",
        "monitoringMetrics",
        "name",
        "rules",
        "tags",
        "targetApps",
        "team",
        "type"
      ],
      "inputProperties": {
        "creatorEmail": {
          "type": "string"
        },
        "creatorId": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "idType": {
          "type": "string"
        },
        "isEnabled": {
          "type": "boolean"
        },
        "measureMetricLifts": {
          "type": "boolean"
        },
        "monitoringMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FGateMonitoringMetric:GateMonitoringMetric"
          }
        },
        "name": {
          "type": "string",
          "description": "id\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FGateRule:GateRule"
          }
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "targetApps": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "team": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Gate resources.\n",
        "properties": {
          "creatorEmail": {
            "type": "string"
          },
          "creatorId": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "idType": {
            "type": "string"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "measureMetricLifts": {
            "type": "boolean"
          },
          "monitoringMetrics": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FGateMonitoringMetric:GateMonitoringMetric"
            }
          },
          "name": {
            "type": "string",
            "description": "id\n"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FGateRule:GateRule"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "targetApps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "team": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "statsig:index/keys:Keys": {
      "description": "This resource allows you to configure API keys for your Statsig project.\n\nTo learn more about API keys, see [API Keys Documentation](https://docs.statsig.com/sdk-keys/api-keys/)\n\nTo learn more about the API powering this resource, see [Keys API Documentation](https://docs.statsig.com/console-api/keys)\n\n> Note: This resource requires a Console API Key with the following scope: `can access other keys`\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as statsig from \"@statsig/pulumi-statsig\";\n\nconst serverKey = new statsig.Keys(\"serverKey\", {\n    description: \"A short description of what this server key is used for.\",\n    environments: [\"production\"],\n    type: \"SERVER\",\n});\nconst clientKey = new statsig.Keys(\"clientKey\", {\n    description: \"A short description of what this client key is used for.\",\n    environments: [\"production\"],\n    scopes: [\"client_download_config_specs\"],\n    type: \"CLIENT\",\n});\nconst consoleKey = new statsig.Keys(\"consoleKey\", {\n    description: \"A short description of what this console key is used for.\",\n    scopes: [\"omni_read_only\"],\n    type: \"CONSOLE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_statsig as statsig\n\nserver_key = statsig.Keys(\"serverKey\",\n    description=\"A short description of what this server key is used for.\",\n    environments=[\"production\"],\n    type=\"SERVER\")\nclient_key = statsig.Keys(\"clientKey\",\n    description=\"A short description of what this client key is used for.\",\n    environments=[\"production\"],\n    scopes=[\"client_download_config_specs\"],\n    type=\"CLIENT\")\nconsole_key = statsig.Keys(\"consoleKey\",\n    description=\"A short description of what this console key is used for.\",\n    scopes=[\"omni_read_only\"],\n    type=\"CONSOLE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Pulumi = Statsig.Pulumi;\n\nreturn await Deployment.RunAsync(() => \n{\n    var serverKey = new Pulumi.Keys(\"serverKey\", new()\n    {\n        Description = \"A short description of what this server key is used for.\",\n        Environments = new[]\n        {\n            \"production\",\n        },\n        Type = \"SERVER\",\n    });\n\n    var clientKey = new Pulumi.Keys(\"clientKey\", new()\n    {\n        Description = \"A short description of what this client key is used for.\",\n        Environments = new[]\n        {\n            \"production\",\n        },\n        Scopes = new[]\n        {\n            \"client_download_config_specs\",\n        },\n        Type = \"CLIENT\",\n    });\n\n    var consoleKey = new Pulumi.Keys(\"consoleKey\", new()\n    {\n        Description = \"A short description of what this console key is used for.\",\n        Scopes = new[]\n        {\n            \"omni_read_only\",\n        },\n        Type = \"CONSOLE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/statsig-io/pulumi-statsig/sdk/go/statsig\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := statsig.NewKeys(ctx, \"serverKey\", &statsig.KeysArgs{\n\t\t\tDescription: pulumi.String(\"A short description of what this server key is used for.\"),\n\t\t\tEnvironments: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"production\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"SERVER\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = statsig.NewKeys(ctx, \"clientKey\", &statsig.KeysArgs{\n\t\t\tDescription: pulumi.String(\"A short description of what this client key is used for.\"),\n\t\t\tEnvironments: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"production\"),\n\t\t\t},\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"client_download_config_specs\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"CLIENT\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = statsig.NewKeys(ctx, \"consoleKey\", &statsig.KeysArgs{\n\t\t\tDescription: pulumi.String(\"A short description of what this console key is used for.\"),\n\t\t\tScopes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"omni_read_only\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"CONSOLE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.statsig.Keys;\nimport com.pulumi.statsig.KeysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var serverKey = new Keys(\"serverKey\", KeysArgs.builder()\n            .description(\"A short description of what this server key is used for.\")\n            .environments(\"production\")\n            .type(\"SERVER\")\n            .build());\n\n        var clientKey = new Keys(\"clientKey\", KeysArgs.builder()\n            .description(\"A short description of what this client key is used for.\")\n            .environments(\"production\")\n            .scopes(\"client_download_config_specs\")\n            .type(\"CLIENT\")\n            .build());\n\n        var consoleKey = new Keys(\"consoleKey\", KeysArgs.builder()\n            .description(\"A short description of what this console key is used for.\")\n            .scopes(\"omni_read_only\")\n            .type(\"CONSOLE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  serverKey:\n    type: statsig:Keys\n    properties:\n      description: A short description of what this server key is used for.\n      environments:\n        - production\n      type: SERVER\n  clientKey:\n    type: statsig:Keys\n    properties:\n      description: A short description of what this client key is used for.\n      environments:\n        - production\n      scopes:\n        - client_download_config_specs\n      type: CLIENT\n  consoleKey:\n    type: statsig:Keys\n    properties:\n      description: A short description of what this console key is used for.\n      scopes:\n        - omni_read_only\n      type: CONSOLE\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "description": {
          "type": "string"
        },
        "environments": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "key": {
          "type": "string"
        },
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "secondaryTargetAppIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "targetAppId": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "description",
        "environments",
        "key",
        "scopes",
        "secondaryTargetAppIds",
        "targetAppId",
        "type"
      ],
      "inputProperties": {
        "description": {
          "type": "string"
        },
        "environments": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "key": {
          "type": "string"
        },
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "secondaryTargetAppIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "targetAppId": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      },
      "requiredInputs": [
        "description",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Keys resources.\n",
        "properties": {
          "description": {
            "type": "string"
          },
          "environments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "key": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "secondaryTargetAppIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "targetAppId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "statsig:index/metric:Metric": {
      "description": "This resource allows you to configure metrics for your Statsig project.\n\nTo learn more about metrics, see [Metrics Documentation](https://docs.statsig.com/metrics/101)\n\nTo learn more about the API powering this resource, see [Metrics API Documentation](https://docs.statsig.com/console-api/metrics)\n\n> Note: [Warehouse Native](https://docs.statsig.com/statsig-warehouse-native/introduction/) metrics can only be used in Warehouse Native projects\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  customEventCountMetric:\n    type: statsig:Metric\n    properties:\n      customRollUpEnd: 14\n      customRollUpStart: 0\n      description: A short description of this metric.\n      directionality: decrease\n      isPermanent: false\n      isReadOnly: false\n      isVerified: false\n      metricEvents:\n        - criteria: []\n          name: test_event_1\n      rollupTimeWindow: custom\n      tags:\n        - test-tag\n      type: event_count_custom\n      unitTypes:\n        - userID\n  warehouseNativeMetric:\n    type: statsig:Metric\n    properties:\n      description: A short description of this metric.\n      directionality: increase\n      isPermanent: false\n      isReadOnly: false\n      isVerified: false\n      tags:\n        - test-tag\n      type: user_warehouse\n      unitTypes:\n        - userID\n      warehouseNative:\n        aggregation: count\n        cap: 150\n        criteria:\n          - column: event\n            condition: =\n            type: metadata\n            values:\n              - add_to_cart\n        cuped_attribution_window: 7\n        metric_source_name: shoppy_events\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "customRollUpEnd": {
          "type": "number",
          "description": "Custom time window end date in days since exposure.\n"
        },
        "customRollUpStart": {
          "type": "number",
          "description": "Custom time window start date in days since exposure.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the new metric, providing context and purpose.\n"
        },
        "directionality": {
          "type": "string",
          "description": "Indicates the desired change direction for the metric. Use \"increase\" for positive changes and \"decrease\" for negative changes.\n"
        },
        "dryRun": {
          "type": "boolean",
          "description": "Skips persisting the metric (used to validate that inputs are correct)\n"
        },
        "funnelCountDistinct": {
          "type": "string",
          "description": "Specifies whether to count events or distinct users for the funnel metric.\n"
        },
        "funnelEventLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricFunnelEventList:MetricFunnelEventList"
          },
          "description": "List of events used to create funnel metrics.\n"
        },
        "isPermanent": {
          "type": "boolean",
          "description": "Indicates whether the metric is permanent and should not be deleted.\n"
        },
        "isReadOnly": {
          "type": "boolean",
          "description": "Set to true to make the metric definition editable only from the Console API.\n"
        },
        "isVerified": {
          "type": "boolean",
          "description": "Marks the metric as verified for internal trustworthiness.\n"
        },
        "metricComponentMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricMetricComponentMetric:MetricMetricComponentMetric"
          },
          "description": "List of input metrics used to calculate the new metric for composite types.\n"
        },
        "metricEvents": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricMetricEvent:MetricMetricEvent"
          },
          "description": "An array of event definitions used to compute the metric.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the new metric, which identifies it within the system.\n"
        },
        "rollupTimeWindow": {
          "type": "string",
          "description": "Time window for the metric rollup. Specify \"custom\" for a customized time window.\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags associated with the metric for categorization and searchability.\n"
        },
        "team": {
          "type": "string",
          "description": "The team associated with the metric, applicable for enterprise environments.\n"
        },
        "teamId": {
          "type": "string",
          "description": "The team ID associated with the metric, applicable for enterprise environments.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of the metric. Allowed values include sum, ratio, mean, event*count*sum, composite, composite*sum, undefined, funnel, user*warehouse.\n"
        },
        "unitTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of unit types associated with the metric, such as stableID or userID.\n"
        },
        "warehouseNative": {
          "$ref": "#/types/statsig:index%2FMetricWarehouseNative:MetricWarehouseNative",
          "description": "Defines warehouse native metrics for advanced configurations.\n"
        }
      },
      "type": "object",
      "required": [
        "customRollUpEnd",
        "customRollUpStart",
        "description",
        "directionality",
        "dryRun",
        "funnelCountDistinct",
        "funnelEventLists",
        "isPermanent",
        "isReadOnly",
        "isVerified",
        "metricComponentMetrics",
        "metricEvents",
        "name",
        "rollupTimeWindow",
        "tags",
        "team",
        "teamId",
        "type",
        "unitTypes",
        "warehouseNative"
      ],
      "inputProperties": {
        "customRollUpEnd": {
          "type": "number",
          "description": "Custom time window end date in days since exposure.\n"
        },
        "customRollUpStart": {
          "type": "number",
          "description": "Custom time window start date in days since exposure.\n"
        },
        "description": {
          "type": "string",
          "description": "A description of the new metric, providing context and purpose.\n"
        },
        "directionality": {
          "type": "string",
          "description": "Indicates the desired change direction for the metric. Use \"increase\" for positive changes and \"decrease\" for negative changes.\n"
        },
        "dryRun": {
          "type": "boolean",
          "description": "Skips persisting the metric (used to validate that inputs are correct)\n"
        },
        "funnelCountDistinct": {
          "type": "string",
          "description": "Specifies whether to count events or distinct users for the funnel metric.\n"
        },
        "funnelEventLists": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricFunnelEventList:MetricFunnelEventList"
          },
          "description": "List of events used to create funnel metrics.\n"
        },
        "isPermanent": {
          "type": "boolean",
          "description": "Indicates whether the metric is permanent and should not be deleted.\n"
        },
        "isReadOnly": {
          "type": "boolean",
          "description": "Set to true to make the metric definition editable only from the Console API.\n"
        },
        "isVerified": {
          "type": "boolean",
          "description": "Marks the metric as verified for internal trustworthiness.\n"
        },
        "metricComponentMetrics": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricMetricComponentMetric:MetricMetricComponentMetric"
          },
          "description": "List of input metrics used to calculate the new metric for composite types.\n"
        },
        "metricEvents": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricMetricEvent:MetricMetricEvent"
          },
          "description": "An array of event definitions used to compute the metric.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the new metric, which identifies it within the system.\n"
        },
        "rollupTimeWindow": {
          "type": "string",
          "description": "Time window for the metric rollup. Specify \"custom\" for a customized time window.\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Tags associated with the metric for categorization and searchability.\n"
        },
        "team": {
          "type": "string",
          "description": "The team associated with the metric, applicable for enterprise environments.\n"
        },
        "teamId": {
          "type": "string",
          "description": "The team ID associated with the metric, applicable for enterprise environments.\n"
        },
        "type": {
          "type": "string",
          "description": "The type of the metric. Allowed values include sum, ratio, mean, event*count*sum, composite, composite*sum, undefined, funnel, user*warehouse.\n"
        },
        "unitTypes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of unit types associated with the metric, such as stableID or userID.\n"
        },
        "warehouseNative": {
          "$ref": "#/types/statsig:index%2FMetricWarehouseNative:MetricWarehouseNative",
          "description": "Defines warehouse native metrics for advanced configurations.\n"
        }
      },
      "requiredInputs": [
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Metric resources.\n",
        "properties": {
          "customRollUpEnd": {
            "type": "number",
            "description": "Custom time window end date in days since exposure.\n"
          },
          "customRollUpStart": {
            "type": "number",
            "description": "Custom time window start date in days since exposure.\n"
          },
          "description": {
            "type": "string",
            "description": "A description of the new metric, providing context and purpose.\n"
          },
          "directionality": {
            "type": "string",
            "description": "Indicates the desired change direction for the metric. Use \"increase\" for positive changes and \"decrease\" for negative changes.\n"
          },
          "dryRun": {
            "type": "boolean",
            "description": "Skips persisting the metric (used to validate that inputs are correct)\n"
          },
          "funnelCountDistinct": {
            "type": "string",
            "description": "Specifies whether to count events or distinct users for the funnel metric.\n"
          },
          "funnelEventLists": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FMetricFunnelEventList:MetricFunnelEventList"
            },
            "description": "List of events used to create funnel metrics.\n"
          },
          "isPermanent": {
            "type": "boolean",
            "description": "Indicates whether the metric is permanent and should not be deleted.\n"
          },
          "isReadOnly": {
            "type": "boolean",
            "description": "Set to true to make the metric definition editable only from the Console API.\n"
          },
          "isVerified": {
            "type": "boolean",
            "description": "Marks the metric as verified for internal trustworthiness.\n"
          },
          "metricComponentMetrics": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FMetricMetricComponentMetric:MetricMetricComponentMetric"
            },
            "description": "List of input metrics used to calculate the new metric for composite types.\n"
          },
          "metricEvents": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FMetricMetricEvent:MetricMetricEvent"
            },
            "description": "An array of event definitions used to compute the metric.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the new metric, which identifies it within the system.\n"
          },
          "rollupTimeWindow": {
            "type": "string",
            "description": "Time window for the metric rollup. Specify \"custom\" for a customized time window.\n"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tags associated with the metric for categorization and searchability.\n"
          },
          "team": {
            "type": "string",
            "description": "The team associated with the metric, applicable for enterprise environments.\n"
          },
          "teamId": {
            "type": "string",
            "description": "The team ID associated with the metric, applicable for enterprise environments.\n"
          },
          "type": {
            "type": "string",
            "description": "The type of the metric. Allowed values include sum, ratio, mean, event*count*sum, composite, composite*sum, undefined, funnel, user*warehouse.\n"
          },
          "unitTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Array of unit types associated with the metric, such as stableID or userID.\n"
          },
          "warehouseNative": {
            "$ref": "#/types/statsig:index%2FMetricWarehouseNative:MetricWarehouseNative",
            "description": "Defines warehouse native metrics for advanced configurations.\n"
          }
        },
        "type": "object"
      }
    },
    "statsig:index/metricSource:MetricSource": {
      "description": "This resource allows you to configure metric sources for your Statsig project.\n\nTo learn more about metric sources, see [Metric Source Documentation](https://docs.statsig.com/statsig-warehouse-native/configuration/metric-sources)\n\nTo learn more about the API powering this resource, see [Metrics API Documentation](https://docs.statsig.com/console-api/metrics)\n\n> Note: This resource is only available for [Warehouse Native](https://docs.statsig.com/statsig-warehouse-native/introduction/) projects\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  query:\n    type: statsig:MetricSource\n    properties:\n      description: A short description of this metric source.\n      idTypeMappings:\n        - column: user_id\n          statsig_unit_id: userID\n      isReadOnly: false\n      sourceType: query\n      sql: SELECT * FROM `shoppy-sales.kenny_dev.shoppy-events`\n      tags:\n        - test-tag\n      timestampColumn: ts\n  table:\n    type: statsig:MetricSource\n    properties:\n      customFieldMappings:\n        - formula: price_usd/100\n          key: price_usd_cents\n      description: A short description of this metric source.\n      idTypeMappings:\n        - column: user_id\n          statsig_unit_id: userID\n      isReadOnly: false\n      sourceType: table\n      sql: \"\"\n      tableName: '`shoppy-sales.kenny_dev.shoppy-events`'\n      tags:\n        - test-tag\n      timestampColumn: ts\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "customFieldMappings": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricSourceCustomFieldMapping:MetricSourceCustomFieldMapping"
          },
          "description": "Optional array defining mappings for custom fields using specific formulas.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description for the metric source, providing context and details about its purpose and usage.\n"
        },
        "idTypeMappings": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricSourceIdTypeMapping:MetricSourceIdTypeMapping"
          },
          "description": "Array defining the mapping between Statsig unit IDs and their respective source columns.\n"
        },
        "isReadOnly": {
          "type": "boolean",
          "description": "Specifies if the source can only be edited via the Console API.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the metric source, serving as its primary identifier.\n"
        },
        "owner": {
          "$ref": "#/types/statsig:index%2FMetricSourceOwner:MetricSourceOwner",
          "description": "Schema for owner data including ID, type, name. Note that if Entity is created by CONSOLE API, owner will be undefined.\n"
        },
        "sourceType": {
          "type": "string",
          "description": "The type of source, indicating whether it is a database table or a custom query.\n"
        },
        "sql": {
          "type": "string",
          "description": "The SQL query or statement used to extract data from the metric source.\n"
        },
        "tableName": {
          "type": "string",
          "description": "The name of the database table if the source type is \"table\".\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional array of tags to categorize the metric source, facilitating easier organization and retrieval.\n"
        },
        "timestampAsDay": {
          "type": "boolean",
          "description": "Indicates whether the timestamp should be treated as a day-level granularity.\n"
        },
        "timestampColumn": {
          "type": "string",
          "description": "The name of the column containing timestamp data for the metric source.\n"
        }
      },
      "type": "object",
      "required": [
        "customFieldMappings",
        "description",
        "idTypeMappings",
        "isReadOnly",
        "name",
        "owner",
        "sourceType",
        "sql",
        "tableName",
        "tags",
        "timestampAsDay",
        "timestampColumn"
      ],
      "inputProperties": {
        "customFieldMappings": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricSourceCustomFieldMapping:MetricSourceCustomFieldMapping"
          },
          "description": "Optional array defining mappings for custom fields using specific formulas.\n"
        },
        "description": {
          "type": "string",
          "description": "An optional description for the metric source, providing context and details about its purpose and usage.\n"
        },
        "idTypeMappings": {
          "type": "array",
          "items": {
            "$ref": "#/types/statsig:index%2FMetricSourceIdTypeMapping:MetricSourceIdTypeMapping"
          },
          "description": "Array defining the mapping between Statsig unit IDs and their respective source columns.\n"
        },
        "isReadOnly": {
          "type": "boolean",
          "description": "Specifies if the source can only be edited via the Console API.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the metric source, serving as its primary identifier.\n"
        },
        "owner": {
          "$ref": "#/types/statsig:index%2FMetricSourceOwner:MetricSourceOwner",
          "description": "Schema for owner data including ID, type, name. Note that if Entity is created by CONSOLE API, owner will be undefined.\n"
        },
        "sourceType": {
          "type": "string",
          "description": "The type of source, indicating whether it is a database table or a custom query.\n"
        },
        "sql": {
          "type": "string",
          "description": "The SQL query or statement used to extract data from the metric source.\n"
        },
        "tableName": {
          "type": "string",
          "description": "The name of the database table if the source type is \"table\".\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional array of tags to categorize the metric source, facilitating easier organization and retrieval.\n"
        },
        "timestampAsDay": {
          "type": "boolean",
          "description": "Indicates whether the timestamp should be treated as a day-level granularity.\n"
        },
        "timestampColumn": {
          "type": "string",
          "description": "The name of the column containing timestamp data for the metric source.\n"
        }
      },
      "requiredInputs": [
        "idTypeMappings",
        "sql",
        "timestampColumn"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MetricSource resources.\n",
        "properties": {
          "customFieldMappings": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FMetricSourceCustomFieldMapping:MetricSourceCustomFieldMapping"
            },
            "description": "Optional array defining mappings for custom fields using specific formulas.\n"
          },
          "description": {
            "type": "string",
            "description": "An optional description for the metric source, providing context and details about its purpose and usage.\n"
          },
          "idTypeMappings": {
            "type": "array",
            "items": {
              "$ref": "#/types/statsig:index%2FMetricSourceIdTypeMapping:MetricSourceIdTypeMapping"
            },
            "description": "Array defining the mapping between Statsig unit IDs and their respective source columns.\n"
          },
          "isReadOnly": {
            "type": "boolean",
            "description": "Specifies if the source can only be edited via the Console API.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the metric source, serving as its primary identifier.\n"
          },
          "owner": {
            "$ref": "#/types/statsig:index%2FMetricSourceOwner:MetricSourceOwner",
            "description": "Schema for owner data including ID, type, name. Note that if Entity is created by CONSOLE API, owner will be undefined.\n"
          },
          "sourceType": {
            "type": "string",
            "description": "The type of source, indicating whether it is a database table or a custom query.\n"
          },
          "sql": {
            "type": "string",
            "description": "The SQL query or statement used to extract data from the metric source.\n"
          },
          "tableName": {
            "type": "string",
            "description": "The name of the database table if the source type is \"table\".\n"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional array of tags to categorize the metric source, facilitating easier organization and retrieval.\n"
          },
          "timestampAsDay": {
            "type": "boolean",
            "description": "Indicates whether the timestamp should be treated as a day-level granularity.\n"
          },
          "timestampColumn": {
            "type": "string",
            "description": "The name of the column containing timestamp data for the metric source.\n"
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "pulumi:providers:statsig/terraformConfig": {
      "description": "This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.",
      "inputs": {
        "properties": {
          "__self__": {
            "$ref": "#/resources/pulumi:providers:statsig"
          }
        },
        "type": "object",
        "required": [
          "__self__"
        ]
      },
      "outputs": {
        "properties": {
          "result": {
            "additionalProperties": {
              "$ref": "pulumi.json#/Any"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ],
        "type": "object"
      }
    }
  }
}
