import { List, Long, Target } from "../model/model"; import { InAppMessageDto } from "./iam"; export interface WorkspaceConfigDto { workspace: WorkspaceDto; experiments: List; featureFlags: List; buckets: List; events: List; segments: List; containers: List; parameterConfigurations: List; remoteConfigParameters: List; inAppMessages: List; } interface WorkspaceDto { id: number; environment: { id: number; primary: boolean; }; attributes: Attributes; } export interface ExperimentDto { id: Long; key: Long; status: string; version: Long; bucketId: Long; variations: List; execution: ExecutionDto; containerId?: Long; winnerVariationId?: Long; identifierType: string; implementationType: string; } export interface VariationDto { id: Long; key: string; status: string; parameterConfigurationId?: Long; } export interface ExecutionTargetUrlsDto { match: Target[]; notMatch: Target[]; } export interface ExecutionDto { status: string; version: number; userOverrides: List; segmentOverrides: List; targetAudiences: List; targetRules: List; defaultRule: TargetActionDto; targetUrls: ExecutionTargetUrlsDto | null; } export interface UserOverrideDto { userId: string; variationId: Long; } export interface BucketDto { id: Long; seed: number; slotSize: number; slots: List; } export interface SlotDto { startInclusive: number; endExclusive: number; variationId: Long; } export interface EventTypeDto { id: Long; key: string; } export interface TargetDto { conditions: List; } export interface TargetConditionDto { key: TargetKeyDto; match: TargetMatchDto; } export interface TargetKeyDto { type: string; name: string; } export interface TargetMatchDto { type: string; operator: string; valueType: string; values: List; } export interface TargetActionDto { type: string; variationId?: number; bucketId?: number; } export interface TargetRuleDto { target: TargetDto; action: TargetActionDto; } export interface SegmentDto { id: Long; key: string; type: string; targets: List; } export interface ContainerDto { id: Long; bucketId: Long; groups: List; } export interface ContainerGroupDto { id: Long; experiments: List; } export interface ParameterConfigurationDto { id: Long; parameters: List; } export interface ParameterDto { key: string; value: any; } export interface RemoteConfigParameterDto { id: Long; key: string; type: string; identifierType: string; targetRules: List; defaultValue: RemoteConfigParameterValueDto; } export interface RemoteConfigTargetRuleDto { key: string; name: string; target: TargetDto; bucketId: Long; value: RemoteConfigParameterValueDto; } export interface RemoteConfigParameterValueDto { id: Long; value: any; } export interface Attributes { integration_ga_experiment?: true | null; [key: string]: any; } export interface SplitUrlConfigDto { needRedirect: boolean; properties: { type: string | null; value: string | null; }; } export {};